Abfrage über habe ich eine Funktion, die Ebene Lager gibt:mehr Daten aus der Funktion in PostgreSQL
select * from stocklevel(ID)
Diese Funktion Lager leverl pro ID gibt. Zum Beispiel:
select * from stocklevel(23)
Ergebnis ist:
ID datelevel stocklevel
23 01.01.17 15
23 02.01.17 18
23 05.01.17 20
Dies ist der Lagerbestand für ID=23
.
Nicht alle Daten erscheinen, es hängt von vielen Dingen ab.
Ich möchte diese Funktion verwenden, um die Lagerbestände für alle Teile von meinem System
im Grunde so etwas zu bekommen:
select *,(select stocklevel from stocklevel(parts.partid) where datelevel = ???)
from parts
OR:
select *
from parts
left join (select stocklevel from stocklevel(parts.partid) where datelevel = ???) using (ID)
Nun ist die Frage ist mit der WHERE
Bedingung möchte ich ein bestimmtes Datum wie '04 .01.17 'angeben, aber wenn das Datum nicht existiert, möchte ich es das Datum vor dem so nehmen:
für die ID=23
und das Datum '04.01.17'
sollte es 18
, '02.01.17'
zeigen.
für die ID=23
und das Datum '15.01.13'
sollte es nichts zeigen.
für die ID=23
und das Datum '05.01.17'
sollte es 20
, '05.01.17'
zeigen.
Wie kann ich das tun?
Ich bin mir nicht sicher, ob ich die Notiz verstehen ... Date nie null ist. Wenn das Datum übersprungen wurde, hat es keinen Eintrag. – avi
@avi. . . Ich meine, wenn Ihr Datum früher ist als irgendein Lagerbestand für diesen Teil, dann wird das Teil nicht zurückgegeben. Der 'NULL' kommt von der äußeren Verknüpfung. –
brauche ich nicht verwenden oder in der Join? – avi