Выберите количество (*), ничего не показывая (не нулевое значение, просто ничего)
Когда я запускаю следующий запрос, я ничего не получаю. Не нулевое значение, но ничего (изображение не обрезается сразу после (без имени столбца) там ничего нет).
Если я избавлюсь от последнего предложения 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, в любом случае нет смысла группировать его.