我有一堆表,我left join
和Group 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。
我该怎么做?
谢谢!
答案 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。