Hallo,

eine Frage an SQL-Experten:

Ich habe eine Datei in der cronologisch Preisänderungen gespeichert werden. In dieser Datei sind Artikel, Preis und Änderungsdatum enthalten. Ich habe nun unter SQL das Problem, den richtigen Preis zu einem bestimmten Datum zu ermitteln.

Beispiel:

Die Datei hat folgenden Inhalt:

Artikel Datum Preis
0815 01.01.2005 100€
0815 13.02.2005 90€
0815 24.03 2005 80€

Wenn ich nun den Preis des Artikel 0815 am 01.03.2005 ermitteln soll, würde ich das in RPG folgendermaßen machen:

settgt (0815:d'01.03.2005') datei;
readpe (0815) datei;

und würde dann 90€ erhalten.

Für SQL habe ich zwar auch ein Lösung gefunden, die aber nicht sehr performant ist:

SELECT preis
FROM datei
WHERE artikel=0815 AND datum=(SELECT MAX(datum) FROM datei AS tt WHERE tt.artikel=datei.artikel AND tt.datum<='01.03.2005')

Für eine einzelne Abfrage ist die Geschwindigkeit noch in Ordnung aber wenn ich den Wert eines ganzen Lagerbestandes zu einem bestimmten Zeitpunkt ermitteln will, dauert das sehr lange.

Hat hier jemand einen besseren Lösungsvorschlag?

Danke im voraus.
M.Withake