Datum um Laufzeit erhöhen und zurück?!

ny_unity

SQL-Guru
Beiträge
185
Hallo,

das Thema ist etwas unglücklich gewählt, weiß aber nicht wie ich es beschreiben soll....

Was ich habe: Ich habe eine Tabelle, in der Rechnungen für Medienbudget eingetragen ist. Pro Datensatz wird das Startdatum der Kampagne und die Laufzeit angegeben, außerdem der komplette Nettobetrag. Die Mitarbeiter haben ein monatliches Budget, dies möchte ich jetzt auswerten, ob sich alle an die Vorgaben halten.

Beispiel eines Datensatzen:
ID: 1
LAND: DE
RENR: 123
VON: 01.01.2020
Laufzeit: 3 (Monate)
BIS 31.12.2020
NETTO: 750 €

ID: 2
LAND: DE
RENR: 123
VON: 01.02.2020
Laufzeit: 1 (Monate)
BIS 29.02.2020
NETTO: 50 €

Ich möchte jetzt folgendes angezeigt bekommen:
LAND: DE
VON: 01.02.2020
NETTO: 250 € (750 durch 3 Monate)

LAND: DE
VON: 01.02.2020
NETTO: 50 €

Was ich bisher habe:
Ich habe die Gesamtnettowerte für jedes Land mit jedem Datum korrekt angezeigt. Aber ich möchte eine Untermenge des einzelnen Monate, ich komme halt nicht von den Gesamtwerten zurück zu den Monatswerten.

Ich möchte jetzt die Werte für Februar angezeigt bekommen, erhalte aber nur den Datensatz mit der ID2, nicht den mit ID1, weil dessen ursprüngliches Startdatum ja der 01.01.2020 ist...

Wisst ihr was ich will? :-D Mir fehlt irgendwie das richtige "WHERE"..

Danke,

Erik
 
Werbung:
als ich den Text geschrieben habe, ist mir eine Idee gekommen... hier meine Lösung für wen es noch interessant ist...
SELECT
*
FROM
dbo.medienbudget_detail
WHERE land = 'DE' AND laufzeit_bis <= DATEADD(MONTH,CAST(laufzeit AS INT)-1,CAST('2020-02-01' AS DATE)) AND laufzeit_bis >= CAST('2020-02-01' AS DATE) AND DATEADD(MONTH,CAST(laufzeit AS INT)-1,laufzeit_von) >= CAST('2020-02-01' AS DATE)
order by land, laufzeit_von
 
Zurück
Oben