select count(*) 什么都不显示(不是空值,什么都没有)

select count(*) showing nothing (not null value, just nothing)

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

如果去掉最后一个 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 

您需要删除 GROUP BY g.groupid。由于您只选择了一个 groupid,因此无论如何都无法对其进行分组。