我真的无法找到这个问题的好标题,但我有一个问题,我相信你可以帮助我!
我有一个查询输出如下内容:
Month | Year | Subcategory | PrivateLabel | Price
-------------------------------------------------
1 | 2010 | 666 | No | -520
1 | 2010 | 666 | No | -499,75
1 | 2010 | 666 | No | -59,95
1 | 2010 | 666 | No | -49,73
1 | 2010 | 666 | No | -32,95
我希望价格为SUM
,因为所有其他数据都相同。我以为我可以使用SUM
和GROUP BY
执行此操作,但我无法弄清楚如何执行此操作,或者至少它无法输出正确的结果。
查询是两个表之间的内部联接,如果有帮助的话。
答案 0 :(得分:3)
select
month
,year
,subcategory
,privatelabel
,sum(price) as [total sales]
from
a inner join b ...
where
any where clauses
group by
month
,year
,subcategory
,privatelabel
如果我正确理解你,应该有用.. select中的每个列都需要成为group by的一部分或者是组中所有行的聚合函数
添加了一个小提琴..主要是因为我不知道他的文本到DDL功能并想测试它;-)(感谢Michael Buen)
http://sqlfiddle.com/#!3/35c1c/1
请注意where子句是占位符..
答案 1 :(得分:0)
select month, year, subcategory, privatelabel, sum(price)
from (put your query in here) dummyName
group by month, year, subcategory, privatelabel
基本思想是它将运行您当前的查询以获得高于输出,然后对结果执行求和和分组。 您的查询必须在括号中,您必须给它一些名称,例如dummyName。只要它在sql中是唯一的,并且最好不是关键词,它并不重要。
可能有一种方法可以一次完成所有这些操作,但如果没有用于查询的sql,我们无法提供帮助。