我必须表 ProdBiscuit As tb 和 StockData As sd ,我必须获得 StockData (quantite) 中的数量总和,条件为 if (sd.status>0 AND sd.prodid = tb.id AND sd .matcuisine = 3)
这是我的sql查询
SELECT tb.id, tb.nom, tb.proddate, tb.qty, tb.stockrecno
FROM ProdBiscuit AS tb
JOIN
(SELECT id, prodid, matcuisine, status, SUM(quantite) AS rq FROM StockData) AS sd
ON (tb.id = sd.prodid AND sd.status > 0 AND sd.matcuisine = 3) LIMIT 25 OFFSET @Myid
这根本没有给我任何行?
ProdBiscuit 中只有 3 行,Stockdata 中只有 11 行,StockData 中只有 2 行符合条件。
如图所示,只有两行给出了条件。
我的查询有什么问题?
PS:图像上的绿线显示了我查询中的条件。
最佳答案
请检查一下。如果您没有获得想要的结果,请访问 SQLFiddle.com 并创建包含数据的示例表,以便更轻松地找出您想要的结果。
SELECT tb.id, tb.nom, tb.proddate, tb.qty, tb.stockrecno, SUM(sd.quanite)
FROM ProdBiscuit AS tb
JOIN StockData AS sd
ON tb.id = sd.prodid
WHERE sd.status > 0 AND sd.matcuisine = 3
GROUP BY tb.id, tb.nom, tb.proddate, tb.qty, tb.stockrecno
关于mysql - 通过比较两个表获得总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19916680/