0

当我运行以下查询时,我什么也得不到。不是空值,但什么都没有图像在(没有列名)之后没有被截断,那里什么都没有(图像在(没有列名)之后没有被截断,那里什么都没有)。

如果我去掉最后一个 AND 子句,我会得到一个数字(即使该数字为零),如果我在 NOT IN 括号内运行查询,我会得到预期的结果。如果我将 NOT IN 括号内的查询替换为从该查询中获得的结果,它将给我正确的数字。

我希望它说 0 而不是什么都没有。COALESCE 和 ISNULL 不起作用,因为没有返回空值,似乎没有返回任何内容。

SELECT count(*)
FROM groups g  
    INNER JOIN item_group ig ON g.groupid = ig.groupid  
    INNER JOIN item_materiel im ON ig.itemid = im.item_id  
WHERE g.groupid = 4933  
     AND im.ItemMateriel_ID NOT IN (  
                         SELECT oim.ItemMaterielID  
                         FROM groups g  
                         INNER JOIN item_group ig ON g.groupid = ig.groupid  
                         INNER JOIN orderitem oi ON ig.itemid = oi.itemid  
                         INNER JOIN OrderItemMateriel oim ON oi.OrderItemID 
                                      = oim.OrderItemID  
                         WHERE g.groupid = 4933  
                                    )  
GROUP BY g.groupid 
4

1 回答 1

2

您需要删除GROUP BY g.groupid. 由于您只选择一个 groupid,因此无论如何对其进行分组是没有意义的。

于 2018-02-08T10:09:14.397 回答