Выберите количество (*), ничего не показывая (не нулевое значение, просто ничего)

Когда я запускаю следующий запрос, я ничего не получаю. Не нулевое значение, но ничего изображение не обрезается сразу после (без имени столбца) там ничего нет (изображение не обрезается сразу после (без имени столбца) там ничего нет).

Если я избавлюсь от последнего предложения 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 

1 ответ

Решение

Вы должны удалить GROUP BY g.groupid, Поскольку вы выбираете только один groupid, в любом случае нет смысла группировать его.

Другие вопросы по тегам