0

我真的想不出这个问题的好标题,但我有一个问题,我相信你可以帮助我!

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

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价格,因为所有其他数据都是一样的。我以为我可以用SUMand来做到这一点GROUP BY,但我不知道该怎么做,或者至少它没有输出正确的结果。

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

4

2 回答 2

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 的一部分,或者是 group 中所有行的聚合函数

添加了一个小提琴..主要是因为我不知道他向 DDL 功能发短信并想对其进行测试;-)(感谢 Michael Buen)

http://sqlfiddle.com/#!3/35c1c/1

请注意 where 子句是占位符..

于 2012-05-05T10:07:17.820 回答
0
select month, year, subcategory, privatelabel, sum(price)
  from (put your query in here) dummyName
 group by month, year, subcategory, privatelabel

基本思想是它将运行您当前的查询以获得高于输出的结果,然后对结果进行求和和分组。您的查询必须在括号中,并且您必须给它一些名称,例如 dummyName。只要它在sql中是唯一的,最好不是关键字,它是什么都无所谓。

可能有一种方法可以一次性完成所有这些操作,但是如果没有用于查询的 sql,我们将无能为力。

于 2012-05-05T10:22:21.817 回答