我有一个复杂的查询,我已经转储到临时表中。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