MySQL:如果子Table的QtyIn之和大于QtyOut之和,则从Parent Table获取数据

MySQL: Retrieve data from Parent Table if it's Child Table's sum of QtyIn is greater than the sum of QtyOut

这是我的场景:

Table A     Table B 
IDa = 1     IDb = 1 | IDa = 1 | QtyIn = 2 | QtyOut = 0
IDa = 2     IDb = 2 | IDa = 1 | QTyIn = 0 | QtyOut = 1 
            IDb = 3 | IDa = 2 | QtyIn = 1 | QtyOut = 0
            IDb = 4 | IDa = 2 | QtyIn = 0 | QtyOut = 1

如果 Table A 的 QtyIn 总和大于其 QtyOut 总和,我想从 Table A 中检索行。 Table B 将按 IDa 列分组。在此示例中,IDa = 1 of Table A 是唯一要检索的行,因为它是剩余库存。我该如何实现?

首先你需要select你需要的列,所以在这种情况下

SELECT COLUMN_NAME 

接下来你需要决定你需要什么 table 所以在这种情况下你还需要 table B:

SELECT COLUMN_NAME 
FROM TABLEA, TABLEB

接下来你应该弄清楚你在这种情况下的加入条件:

SELECT COLUMN_NAME 
FROM TABLEA, TABLEB
WHERE TABLEA.IDa = TABLEB.IDa

最后你想转到聚合函数并进行计算你 sql 应该如下所示:

SELECT COLUMN_NAME 
FROM TABLEA, TABLEB
WHERE TABLEA.IDa = TABLEB.IDa
Group by TABLEB.IDa
Having SUM(QtyIn - QtyOut) > 0

所以是的,应该是全部...