在SQL和SUM中进行比较

时间:2012-05-05 09:59:51

标签: sql sql-server sum

我真的无法找到这个问题的好标题,但我有一个问题,我相信你可以帮助我!

我有一个查询输出如下内容:

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,因为所有其他数据都相同。我以为我可以使用SUMGROUP BY执行此操作,但我无法弄清楚如何执行此操作,或者至少它无法输出正确的结果。

查询是两个表之间的内部联接,如果有帮助的话。

2 个答案:

答案 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,我们无法提供帮助。