如何在T-SQL中汇总不同组中的字段

时间:2011-10-21 06:57:28

标签: sql tsql sum

我有一堆表,我left joinGroup By子句对一堆列进行分组。

但是,有一列是group-by,但仍保持不同(productNumber)。

我需要总结下面的数量列:

salesID  historyID  productID  name  productNumber  quantity
      1        123          1     A         234554        10
      1        123          1     A         666666        10

我只想第一条记录,但数量为10 + 10 = 20。

第一个记录的标志mainNumber = 1,第二个记录的mainNumber = 0,但该列不会出现在SELECT中。

换句话说,我想总结数量,但只显示mainNumber = 1的productNumber。

我该怎么做?

谢谢!

2 个答案:

答案 0 :(得分:1)

如果我正确理解了这个问题,这可能会对您有所帮助:

SELECT salesID, historyID, productID, name, productNumber, total.quantity
FROM table1
JOIN (
     SELECT salesID, SUM(quantity) AS quantity FROM table1 GROUP BY salesID
     ) AS total
ON table1.salesID = total.salesID
WHERE mainNumber=1

答案 1 :(得分:0)

我不完全确定理解...在结果集中,您只想要第一行但是哪个值应该在productNumber列中?

如果几乎​​任何值都可以,那么你必须不是GROUP BY productNumber(它使行保持不同),而是聚合它,例如使用MIN或MAX。