Hallo,
ich bin recht frisch mit SQL und habe hier nen Statement geschrieben, wo ich euch einfach mal fragen wollte, ob man es so löst. Die Ergebnisse scheinen richtig zu sein.
Ich habe eine Tabelle "Aktienkurse", wo fast zu jedem Tag der jeweilige Tageswert drin steht, nun brauche ich den heutigen Stand, den vor 6 und den vor 12 Monaten von einem bestimmten Kurs. Hierbei ist die Performance sehr sehr wichtig, daher schreibe ich auch nicht 3 Statements, sondern nur 1.
Über Verbesserungsvorschläge würde ich mich sehr freuen.
Gruß, Tommy
ich bin recht frisch mit SQL und habe hier nen Statement geschrieben, wo ich euch einfach mal fragen wollte, ob man es so löst. Die Ergebnisse scheinen richtig zu sein.
Ich habe eine Tabelle "Aktienkurse", wo fast zu jedem Tag der jeweilige Tageswert drin steht, nun brauche ich den heutigen Stand, den vor 6 und den vor 12 Monaten von einem bestimmten Kurs. Hierbei ist die Performance sehr sehr wichtig, daher schreibe ich auch nicht 3 Statements, sondern nur 1.
Code:
SELECT day, value FROM aktienkurse WHERE id_kurs = $id AND day <= $vor12Monaten
UNION ALL
(SELECT day, value FROM aktienkurse WHERE id_kurs = $id AND day <= $vor6Monaten ORDER BY day DESC LIMIT 1)
UNION ALL
(SELECT day, value FROM aktienkurse WHERE id_kurs = $id AND day <= $heute ORDER BY day DESC LIMIT 1)
ORDER BY day DESC LIMIT 3
Über Verbesserungsvorschläge würde ich mich sehr freuen.
Gruß, Tommy