0
我遇到了将两个表加在一起的问题,它不断增加我的值“qtyFulfillable”。MySQL加入结果乘以
月1日,当我运行此查询,我得到正确的结果:sumQF = 85
SELECT fbai.id,
fbai.sku,
CASE WHEN SUM(fbai.qtyFulfillable) > 0 THEN SUM(fbai.qtyFulfillable) ELSE 0 END AS sumQF
FROM FBAInventory fbai
WHERE fbai.fbaInventoryReport_id = 62010
AND fbai.sku = 'ELO-250030'
GROUP BY fbai.id
ORDER BY sumQF DESC
但是当我开始添加的加盟,我现在得到:sumQF = 14110
SELECT fbai.id,
fbai.sku,
CASE WHEN SUM(fbai.qtyFulfillable) > 0 THEN SUM(fbai.qtyFulfillable) ELSE 0 END AS sumQF,
CASE WHEN SUM(fbas.quantityShipped) > 0 THEN SUM(fbas.quantityShipped) ELSE 0 END as sumQS
FROM FBAInventory fbai
LEFT JOIN FBAShipment fbas
ON fbai.sku = fbas.sku
WHERE fbai.fbaInventoryReport_id = 62010
AND fbai.sku = 'ELO-250030'
GROUP BY fbai.id
ORDER BY sumQF DESC
出于某种原因,SQL采取的行中的“FBAS”表的总数目(连接表),166行,和乘法85×166 = 14110。
我需要做什么才能够加入这个表格,但是不能将我的结果乘以连接表格中的总行数。谢谢!
您使用的是MySQL还是SQL Server?请不要使用两个完全不同的数据库平台进行标记,除非您真的使用两种方法。 – 2014-09-30 16:54:29
如果FBAInventory有85条记录,SKU ='ELO-250030',那么对于这85行中的每一行,它都会尝试加入FBAShipment中具有相同sku的行。在连接的“ON”子句中,必须有一些其他字段对。 – 2014-09-30 16:55:57
是否将fbas.sku添加到'GROUP BY'子句修复它?即'GROUP BY fbai.id,fbas.sku' – Ruslan 2014-09-30 16:56:14