Salve, partendo da una tabella come questa:
Ogni giorno viene aggiunto un record, quindi abbiamo ogni giorno un valore per SDATE diverso, dove viene aggiornato il valore di SPOT ed il valore di SETTLEMENT riferito a STRIKE.Codice PHP:CREATE TABLE IF NOT EXISTS `OPT_FTSEMIB` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`SDATE` date NOT NULL,
`SPOT` float NOT NULL,
`EXPIRY` char(5) NOT NULL,
`TYPE` char(1) NOT NULL,
`STRIKE` int(11) NOT NULL,
`SETTLEMENT` int(11) NOT NULL,
PRIMARY KEY (`ID`)
);
Quindi, oggi per STRIKE=10000 & TYPE="C" & EXPIRY="DEC15" avremo SETTLEMENT=12345 e per STRIKE=11000 avremo SETTLEMENT=54321 etc...
domani magari per STRIKE=10000 & TYPE="C" & EXPIRY="DEC15" avremo SETTLEMENT=23456 e per STRIKE=11000 avremo SETTLEMENT=65432 etc...
Infatti la query che faccio in lettura è spesso:
così mi viene listato ogni giorno, il valore quotidiano dello SPOT ma soprattutto il valore di SETTLEMENT per quello STRIKE, per quel determinato tipo (TYPE) e scadenza (EXPIRY); in questo caso strike=10000 tipo=C e scadenza="DEC15" voglio sapere tutti i valori di SETTLEMENT che sono presenti in database, in ordine di inserimento (quindi order by date).Codice PHP:SELECT SDATE, SPOT, SETTLEMENT
FROM OPT_FTSEMIB
WHERE STRIKE=10000 AND TYPE="C" AND EXPIRY="DEC15";
Poi magari faccio:
e ottengo lo stesso, per lo strike=11000Codice PHP:SELECT SDATE, SPOT, SETTLEMENT
FROM OPT_FTSEMIB
WHERE STRIKE=11000 AND TYPE="C" AND EXPIRY="DEC15";
Ora però vorrei fondere tutto in un unica query, in modo da ottenere in un unica SELECT i valori di SETTLEMENT per lo STRIKE=10000, STRIKE=11000 e altri ancora (in teoria fino a STRIKE=30000 a step di 500) per quella EXPIRY e TYPE.
qualcosa che mi mosttri tipo nomi dei campi così e poi via via tutti i record:
SDATE, SPOT, C10000,C11000,C12000
...,...,....,....,....
...,...,....,....,....
...,...,....,....,....
etc...
Secondo voi è possibile con una semplice SELECT oppure devo passare tutto in un array associativo (hash) multidimensionale in php e fare tutto da li?
GrazieCodice PHP:$settlement->{"2012-08-20"}->{"DEC15"}->{"C"}->{"10000"} = 12345

Rispondi quotando