我有两个表,一个有项目,第二个有库存。 我想选择没有库存的物品。 在这种情况下,第二个表中没有数据。
表1
ID Item
01 Car
02 Bike
03 Motorbike
表2
ID Amount
01 1
02 -1
所以第03项目前没有库存。
我的SQL看起来像这样
SELECT
ITEM.ITEMNR,
LAGERBESTAND.AMOUNT
FROM
ITEM
INNER JOIN STOCKAMOUNT ON STOCKAMOUNT.ITEMLFDNR = ITEM.LFDNR
GROUP BY
ITEM.ITEMNR,
STOCKAMOUNT.AMOUNT
HAVING
STOCKAMOUNT.AMOUNT = 0
原因“库存量= 0”不起作用。
答案 0 :(得分:3)
您需要左外连接,内连接仅返回满足连接条件的行。
我认为你不需要为此进行分组。
答案 1 :(得分:2)
这可以通过使用左连接来实现。
SELECT
ITEM.ITEMNR,
coalesce(STOCKAMOUNT.AMOUNT,0) amount
FROM ITEM
LEFT JOIN STOCKAMOUNT
ON STOCKAMOUNT.ITEMLFDNR = ITEM.LFDNR
WHERE STOCKAMOUNT.ITEMLFDNR IS NULL