在MySQL中按列值进行SUM

时间:2018-03-06 16:19:44

标签: mysql sum

我有这张桌子“a”:

ID | NUMORD | ITEMID
---------------------
1  |   1    |  4
2  |   1    |  5
3  |   1    |  6

而不是这张表“b”

ID | NUMORD | ITEMID | QT
--------------------------
1  |   1    |  4     | 2
2  |   1    |  4     | 1
3  |   1    |  5     | 3
4  |   1    |  6     | 1
5  |   1    |  5     | 2

我需要这样的结果:

ID | NUMORD | ITEMID | QT
--------------------------
1  |   1    |  4     | 3
2  |   1    |  5     | 5
3  |   1    |  6     | 1

如果我在第一个表上按NUMORD分组然后按SUM,则显示SUM OF“QT”。 我怎么能得到我的结果? 感谢

1 个答案:

答案 0 :(得分:0)

首先你想要一些按NUMORD和ITEMID:

SELECT NUMORD,ITEMID, SUM(QT)
FROM tableB
GROUP BY NUMORD,ITEMID

然后使用JOIN:

SELECT a.ID, b.NUMORD, b.ITEMID, b.QT
FROM tableA a
INNER JOIN (
 SELECT NUMORD,ITEMID, SUM(QT)
 FROM tableB
 GROUP BY NUMORD,ITEMID
) AS b ON b.NUMORD = a.NUMORD AND b.ITEMID = a.ITEMID

NOTA:您的数据库架构似乎有点奇怪为什么2个表的列几乎相同?