这是一个SQL查询:

SELECT SUM(a.quantity)-SUM(IF(ISNULL(b.quantity),0,b.quantity)) AS stock
FROM wp_wpsp_inventory_items a, wp_wpsp_assigned_inventory b
WHERE a.master_id='9' AND
     (CASE WHEN ISNULL(b.quantity)
           THEN '' ELSE a.master_id=b.master_id
      END)


有两个表ab。表a存储所有流入,而表b存储所有流出。在这里,我试图通过从流入中减去流出来计算库存。但是在某些情况下,表b中没有任何条目,则查询将返回NULL。我尝试使用IF()ISNULL(),但没有任何效果。请帮忙

最佳答案

您应该使用左外部联接。

SELECT SUM(a.quantity - coalesce(b.quantity, 0)) AS stock
FROM wp_wpsp_inventory_items a
LEFT JOIN
wp_wpsp_assigned_inventory b
ON a.master_id = b.master_id
WHERE a.master_id = '9'

关于mysql - SQL查询返回空的Mysql,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50249733/

10-13 04:46