Vasquez155
Aktiver Benutzer
- Beiträge
- 29
Sorry, vergessen reinzukopieren. So habe ich das jetzt gemachT!
WITH t(first_of_month) AS (
SELECT dateadd(month,datediff(month,0,getdate()),0)
UNION ALL
SELECT dateadd(month,-1,first_of_month)
FROM t
WHERE dateadd(month,-1,first_of_month) >= dateadd(year,-2,getdate())
)
SELECT sum(erlöse), d.monat_jahr
right('0' + cast(datepart(month,first_of_month) AS VARCHAR(6)),2) +
cast(datepart(year,first_of_month) AS VARCHAR(6))
FROM t left outer join datum d on
d.Monat_Jahr = right('0' + cast(datepart(month,first_of_month) AS VARCHAR(6)),2) +
cast(datepart(year,first_of_month) AS VARCHAR(6))
join auftrag a on a.datum_id = d.id
group by
d.monat_jahr
Das heißt, ich muss ein "with" für Kunde, Land ... erstellen, wie mit dem Datum?
Das Ergebnis sollte sein, das es für alle Kombinationen in Auftrag (Kunde, Land, Datum], bei denen eine Monatslücke herrscht, auch gefüllt werden muss, mit einem Dummy DS. Also nicht für Kombinationen, die es in der Tabelle Auftrag nicht gibt.
Danke!!!!
WITH t(first_of_month) AS (
SELECT dateadd(month,datediff(month,0,getdate()),0)
UNION ALL
SELECT dateadd(month,-1,first_of_month)
FROM t
WHERE dateadd(month,-1,first_of_month) >= dateadd(year,-2,getdate())
)
SELECT sum(erlöse), d.monat_jahr
right('0' + cast(datepart(month,first_of_month) AS VARCHAR(6)),2) +
cast(datepart(year,first_of_month) AS VARCHAR(6))
FROM t left outer join datum d on
d.Monat_Jahr = right('0' + cast(datepart(month,first_of_month) AS VARCHAR(6)),2) +
cast(datepart(year,first_of_month) AS VARCHAR(6))
join auftrag a on a.datum_id = d.id
group by
d.monat_jahr
Das heißt, ich muss ein "with" für Kunde, Land ... erstellen, wie mit dem Datum?
Kurzer Tipp...wie würde das aussehen .. "Du würdest alle Kombinationen mit Kunde, Land und Datum generieren und zu Deinem Umsatz joinen".
Das Ergebnis sollte sein, das es für alle Kombinationen in Auftrag (Kunde, Land, Datum], bei denen eine Monatslücke herrscht, auch gefüllt werden muss, mit einem Dummy DS. Also nicht für Kombinationen, die es in der Tabelle Auftrag nicht gibt.
Danke!!!!