Ich habe eine komplexe Abfrage, die ich in eine temporäre Tabelle ausgegeben habe.GROUP BY mit aggregiertem SQL Server
Innerhalb dieses Datensatzes habe ich verschiedene Arten von Angeboten: Filme, COD, Funktionen, Andere.
Alle Angebote, die COD und andere sind und eine totalrev_YTD ZWISCHEN 10K und 15K haben, sollten in einer einzigen Zeile mit dem Deal-Namen als "TOTAL COD" summiert werden, ansonsten sollte es eine eigene Linie haben.
Wie würde ich das tun. Ich kann nicht scheinen GROUP BY
mit SUM(totalrev_YTD)
BETWEEN 10 und 15k zu tun.
Kann jemand bitte helfen:
SELECT
location, locationid, dealtype,
(CASE
WHEN dealtype = 'OTHER (COD, ETC)' and totalrev_YTD BETWEEN 10000 AND 15000
THEN 'OTHER (COD, ETC)'
ELSE deal
END) as deal,
rental_PW, rental_MTD, rental_QTD, rental_YTD,
sales_PW, sales_MTD, sales_QTD, sales_YTD,
otherrev_PW, otherrev_MTD, otherrev_QTD, otherrev_YTD,
totalrev_PW, totalrev_MTD, totalrev_QTD, totalrev_YTD
FROM
#temp_rev t1
WHERE
dealtype = 'OTHER (COD, ETC)'
GROUP BY
(CASE
WHEN dealtype = 'OTHER (COD, ETC)' and totalrev_YTD BETWEEN 10000 AND 15000
THEN 'OTHER (COD, ETC)'
ELSE deal
END),
location, locationid, dealtype,
rental_PW, rental_MTD, rental_QTD, rental_YTD,
sales_PW, sales_MTD, sales_QTD, sales_YTD,
otherrev_PW, otherrev_MTD, otherrev_QTD, otherrev_YTD,
totalrev_PW, totalrev_MTD, totalrev_QTD, totalrev_YTD
Ein Beispiel hierfür 10 COD, andere Angebote wäre ich habe. Wo 1 des Geschäfts eine totalrev_YTD
> 15K hat. In diesem Fall sollte das mit einer eigenen Zeile erscheinen und das andere sollte nur aggregiert werden.
Hier ist ein großartiger Ort zu starten. http://spaghettidba.com/2015/04/24/how-to-post-a-t-sql-question-on-a-public-forum/ –
Wenn Sie sagen, Sie können nicht, erhalten Sie einen Fehler? Die Verwendung von case-Anweisung in group by ist gültig, Sie haben jedoch in der ursprünglichen Spalte dealtype in der Gruppe nach belassen und auswählen. Die selbe Groß-/Kleinschreibung sollte in select sein. Auch bei all diesen Spalten versammeln Sie wahrscheinlich nicht das, was Sie wirklich wollen. – Matt