[MsSQL] fehlende Monate befüllen

Termos

Mitglied
Hallo zusammen,

mein aktuelles Problem dreht sich um eine Zeit Dimension bzw. um eine Historientabelle.

Ich habe den folgenden Zustand in einer Tabelle:

|Objekt | Zustand | Datum
|1000 | x | 09-2017
|1000 | y | 10-2017
|1000 | x | 03-2018


Um die Objekte und deren Zustände im lauf der Zeit anzuzeigen benötige ich nun die folgende Darstellung.

|Objekt | Zustand | Datum
|1000 | x | 09-2017
|1000 | y | 10-2017
|1000 | y | 11-2017
|1000 | y | 12-2017
|1000 | y | 01-2017
|1000 | y | 02-2017

|1000 | x | 03-2018
|1000 | x | 04-2018
|1000 | x | 05-2018
|1000 | x | 06-2018
|1000 | x | 07-2018
|1000 | x | 08-2018
|1000 | x | 09-2018


Aktuell bin ich wie folgt an das Problem gegangen. Ich habe mir eine View geschaffen welche mir, ausgehen vom aktuellen Datum bis 2 Jahre in der Vergangenheit alle Werte im Format MM.YYYY anzeigt. Wenn ich diese nun mir meinen Werten Joine bekomme ich die Zeit und entsprechend viele leere Zellen, welche ich einfach mit dem vorhandenen Wert auffüllen möchte.


Habt Ihr eine Idee wie ich diese zwischenzellen füllen kann, oder habt ihr eine ganz andere Herangehensweise an dieses Problem?

Sowas wie Dateadd(+x<nächstes Datum) kann ich leider nicht nutzen da ich niemals das aktuelle Datum in der [DATUM] Spalte finde.


Ich bin für jeden Hinweis dankbar.

Viele Grüße
 
Wieso soll DateAdd nutzlos sein? nimm doch "Month" anstatt "day", und benutz den Monats-Ersten als Dummy
 
Hallo Zvoni,

ich müsste vorher wissen in welche Richtung ich wie viele Monate addieren möchte und in welche Richtung ich wie viele Monate subtrahieren möchte. Das ist meines erachten nach so nicht möglich.


Am Ende soll die Liste 2 Jahre abbilden mit 24 Monaten und zu jedem Monat die Anzahl an X und Anzahl an Y Werten ausgegeben werden:
DATUM | X | Y
01.2018 110x 220y
02.2018 130x 190y
.....


Danke für deinen Beitrag.
 
Ist mir schon klar, nur wieso rückwärts rechnen?
Wenn ich dein Setup richtig verstehe: Falls Monat fehlt, erzeuge Monat und nimm Objekt und Zustand des Vormonats, korrekt?
 
Zurück