根据两列动态值计算一列的总和

3

我有以下的mysql表格:

item code | warehouse | qty
---------------------------  
itm001    |    abc    |10  
itm002    |    xyz    |20  
itm003    |    pqr    |20  
itm004    |    pqr    |15  
itm001    |    abc    |60  
itm002    |    xyz    |10  
itm004    |    tqr    |20  
itm003    |    www    |20  
itm001    |    ppp    |15  

我希望得到“当商品代码和仓库重复时它们的数量总和”的总和: 例如: itm001 abc 重复两次,它们的总和显示 itm001 = 70 以同样的方式 itm002 并显示总和 itm002 = 30。
我不想要静态的 where 子句(where item code = 'itm001' and warehouse = 'abc' or item code ='itm002' and warehouse = 'xyz')。

请问您是否希望将具有相同“itemcode,warehouse”和汇总数量的行分组为一个新行,还是希望重复原始行(可能带有其他列),并附加重复的汇总数量。 - StuartLC
5个回答

7
你应该使用 GROUP BYHAVING
SELECT itemcode,warehouse,SUM(qty) FROM yourtable
GROUP BY itemcode,warehouse
HAVING COUNT(*) > 1;

HAVING过滤仓库中只出现一次的物品。


2

试试这个:

  SELECT itemcode,warehouse,SUM(qty) FROM table1 GROUP BY warehouse,itemcode;

1
使用这个:
SELECT item_code, warehouse,sum(qty)
FROM your_table
GROUP BY item_code, warehouse

1
你可以在group by子句中使用havin子句。
select item_code, warehous, sum(qty), count(*)
group by item_code, warehouse 
having count(*) > 1

0
如果我理解正确,您可以使用以下代码: SELECT item_code, warehouse , SUM(qty) FROM yourTable WHERE (...) GROUP BY item_code, warehouse;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接