Ich habe ein wenig toruble mit dem Ausfüllen einiger Werte in SQL. Hier ist ein Beispiel für die Art und Weise, wie meine Daten strukturiert sind.Füllen Sie den Wert auf ein bestimmtes Datum nach Gruppe
ID Date Value EndDate
A 1/1/17 500 6/1/17
A 2/1/17 489 6/1/17
A 3/1/17 480 6/1/17
A 4/1/17 475 6/1/17
A 5/1/17 460 6/1/17
A 6/1/17 0 6/1/17
A 7/1/17 0 6/1/17
B 4/1/17 784 8/1/17
B 5/1/17 801 8/1/17
B 6/1/17 0 8/1/17
B 7/1/17 0 8/1/17
B 8/1/17 0 8/1/17
B 9/1/17 0 8/1/17
B 10/1/17 0 8/1/17
C 2/1/17 980 7/1/17
C 3/1/17 564 7/1/17
C 4/1/17 647 7/1/17
C 5/1/17 500 7/1/17
C 6/1/17 0 7/1/17
C 7/1/17 0 7/1/17
C 8/1/17 0 7/1/17
Für jede Gruppe möchte ich die Wertspalte bis zu dem Punkt ausfüllen, an dem das Datum EndDate entspricht. Die gewünschte Ausgabe würde so aussehen:
ID Date Value EndDate
A 1/1/17 500 6/1/17
A 2/1/17 489 6/1/17
A 3/1/17 480 6/1/17
A 4/1/17 475 6/1/17
A 5/1/17 460 6/1/17
A 6/1/17 460 6/1/17
A 7/1/17 0 6/1/17
B 4/1/17 784 8/1/17
B 5/1/17 801 8/1/17
B 6/1/17 801 8/1/17
B 7/1/17 801 8/1/17
B 8/1/17 801 8/1/17
B 9/1/17 0 8/1/17
B 10/1/17 0 8/1/17
C 2/1/17 980 7/1/17
C 3/1/17 564 7/1/17
C 4/1/17 647 7/1/17
C 5/1/17 500 7/1/17
C 6/1/17 500 7/1/17
C 7/1/17 500 7/1/17
C 8/1/17 0 7/1/17
Irgendwelche Vorschläge? Vielen Dank!
'Fall, wenn Datum <= EndDate dann Wert else 0 Ende als Wert' – xQbert
HI xQbert. Ich brauche speziell den letzten Wert ungleich null, der ausgefüllt werden soll, wenn die Ergebnismenge nach ID und Datum geordnet ist. Berücksichtigt das die Reihenfolge? –
Oh 1 sek. Ich sehe jetzt, dass wir den vorherigen Wert weiterleiten, aber nur wenn das Datum <= Enddatum ist. Ich dachte, Wert enthält den gewünschten Wert. – xQbert