mellowcrew
Lt. Commander
- Registriert
- Mai 2007
- Beiträge
- 1.091
Hello,
ich stehe gerade auf der Leitung bei einem kleinen Select. Wahrscheinlich ist das für den ein oder die andere ein Klacks.
Folgendes:
Ich errechne ein Delta für bestimmte Werte zwischen zwei Monaten einer Tabelle durch 2 Views (siehe Beispiel unten). Immer der Vormonat - VorVormonat. Allerdings habe ich immer erst zur Mitte des Monats Daten vom Vormonat. Z.B. Mai - Juni....Wenn ich jetzt aber am 1.August meine Selects laufen lasse, dann zählt nicht mehr Mai-Juni, sondern logischerweise Juni-Juli (aber für Juli habe ich noch keine Daten-> kommen erst im Laufe des Folgemonats August).
Ich suche also nach einer Lösung, dass immer nur die verfügbaren Daten vom Vor- und dem VoVormonat genommen werden (aber eigentlich ohne Bezug zum akuelln Monat, wei sonst noch keine Daten da sind).
Bin mir nicht sicher, ob ich das verständlich erklären konnte
.
So schaut es aktuell aus:
View für den letzten Monat:
Select * From Table WHERE Monat = (Select Max(Monat) From table);
View für den Vorletzen Monat:
Select * From Table WHERE Monat =ADD_MONTHS (TRUNC(SYSDATE, 'MM'), -2);
Müsste es nicht sowas wie Max(Monat,-1) geben? Dann hätte ich mit MAX(Monat) immer den letzt verfügbaren + Max -1 (den maximalsten Monat davor).
MfG Mellow
ich stehe gerade auf der Leitung bei einem kleinen Select. Wahrscheinlich ist das für den ein oder die andere ein Klacks.
Folgendes:
Ich errechne ein Delta für bestimmte Werte zwischen zwei Monaten einer Tabelle durch 2 Views (siehe Beispiel unten). Immer der Vormonat - VorVormonat. Allerdings habe ich immer erst zur Mitte des Monats Daten vom Vormonat. Z.B. Mai - Juni....Wenn ich jetzt aber am 1.August meine Selects laufen lasse, dann zählt nicht mehr Mai-Juni, sondern logischerweise Juni-Juli (aber für Juli habe ich noch keine Daten-> kommen erst im Laufe des Folgemonats August).
Ich suche also nach einer Lösung, dass immer nur die verfügbaren Daten vom Vor- und dem VoVormonat genommen werden (aber eigentlich ohne Bezug zum akuelln Monat, wei sonst noch keine Daten da sind).
Bin mir nicht sicher, ob ich das verständlich erklären konnte

So schaut es aktuell aus:
View für den letzten Monat:
Select * From Table WHERE Monat = (Select Max(Monat) From table);
View für den Vorletzen Monat:
Select * From Table WHERE Monat =ADD_MONTHS (TRUNC(SYSDATE, 'MM'), -2);
Müsste es nicht sowas wie Max(Monat,-1) geben? Dann hätte ich mit MAX(Monat) immer den letzt verfügbaren + Max -1 (den maximalsten Monat davor).
MfG Mellow