我有一個複雜的查詢,我已經轉儲到臨時表中。GROUP BY與聚合SQL Server
在這個數據集中,我有不同類型的交易:電影,COD,功能,其他。
所有的交易,是COD和其他,並有一個totalrev_YTD BETWEEN 10K和15K應彙總成一個單一的行,交易名稱爲「總COD」 其他方面,它應該有它自己的路線。
我該怎麼做。我似乎無法使用SUM(totalrev_YTD)
在10和15k之間執行GROUP BY
。
任何人都可以請幫助:
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
這方面的一個例子是,我有10個COD,其他交易。其中1筆交易的交易價格爲totalrev_YTD
> 15K。在這種情況下,它應該與自己的行一起出現,另一個應該被聚合。
這裏是一個偉大的地方開始。 http://spaghettidba.com/2015/04/24/how-to-post-a-t-sql-question-on-a-public-forum/ –
當你說你不能得到一個錯誤? group by中的case語句的使用是有效的,但您留在group by中的原始列dealtype中並進行選擇。選擇相同的案例陳述。此外,對於所有這些列,您可能不會彙總您真正想要的內容。 – Matt