Hallo euch allen,
ich will eine Abfrage erstellen die in den Zeilen unsere SKU und in den Spalten die Anzahl der Verkäufe dieser Artikel nach Plattform sowie in verschiedenen Zeitenräumen anzeigt.
Meine Abfrage sieht so aus (als Beispiel nur den Part für Amazon.de):
Wenn ich die Spalte dErstellt in die GROUP BY Klausel einbinde, bekomme ich die selbe SKU mehrmals angezeigt (für jede verkaufte Position ein mal), was nicht Sinn und Zweck der Sache ist.
Mir gehen langsam die Ideen aus. Bin für jede Hilfe dankbar!
MfG
ich will eine Abfrage erstellen die in den Zeilen unsere SKU und in den Spalten die Anzahl der Verkäufe dieser Artikel nach Plattform sowie in verschiedenen Zeitenräumen anzeigt.
Meine Abfrage sieht so aus (als Beispiel nur den Part für Amazon.de):
Jede Gesamtabfrage, die kein Datum abfrägt, funktioniert einwandfrei. Nun zu meinem Problem. Das Management Studio gibt mir den Fehler "Die tBestellung.dErstellt-Spalte ist in der Auswahlliste ungültig, da sie nicht in einer Aggregatfunktion und nicht in der GROUP BY-Klausel enthalten ist." aus. Zu Beginn hatte ich das selbe Problem mit der Spalte nPlatform, doch dieses konnte ich dank MIN() umgehen. Eben jenes kann ich aber nicht bei einem Datum verwenden.USE eazybusiness
SELECT tbestellpos.cArtNr AS SKU
,case when tBestellung.dErstellt > DATEADD(DAY, -7, getdate()) and MIN(tBestellung.nPlatform) = 51 then convert(int,sum(tbestellpos.nAnzahl)) else 0 end AS AmazonDeWoche
,case when tBestellung.dErstellt > DATEADD(DAY, -30, getdate()) and MIN(tBestellung.nPlatform) = 51 then convert(int,sum(tbestellpos.nAnzahl)) else 0 end AS AmazonDe30
,case when tBestellung.dErstellt > DATEADD(DAY, -90, getdate()) and MIN(tBestellung.nPlatform) = 51 then convert(int,sum(tbestellpos.nAnzahl)) else 0 end AS AmazonDe90
,case when tBestellung.dErstellt > DATEADD(DAY, -365, getdate()) and MIN(tBestellung.nPlatform) = 51 then convert(int,sum(tbestellpos.nAnzahl)) else 0 end AS AmazonDe365
,case when MIN(tBestellung.nPlatform) = 51 then convert(int,sum(tbestellpos.nAnzahl)) else 0 end AS AmazonDeGes
FROM tBestellung
JOIN tbestellpos
ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
WHERE ISNULL(tbestellung.cType,'') = 'B'
AND ISNULL(tbestellpos.cArtNr,' ') <> ' '
GROUP BY cArtNr
ORDER BY cArtNr asc
Wenn ich die Spalte dErstellt in die GROUP BY Klausel einbinde, bekomme ich die selbe SKU mehrmals angezeigt (für jede verkaufte Position ein mal), was nicht Sinn und Zweck der Sache ist.
Mir gehen langsam die Ideen aus. Bin für jede Hilfe dankbar!
MfG