powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / COALESCE. Почему возвращается null
7 сообщений из 7, страница 1 из 1
COALESCE. Почему возвращается null
    #38581283
PunK_HS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток!
Не могу понять, почему в результате выполнения данного запроса возвращается null. Должно быть 0
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT
    COALESCE(SUM(lom.mat_qty), 0)
  FROM list_orders lo
    INNER JOIN list_order_details lod ON lod.order_id = lo.id
    INNER JOIN list_order_det_oper lodo ON lodo.order_det_id = lod.id
    INNER JOIN list_oper_materials lom ON lom.list_oper_id = lodo.id
    INNER JOIN di_materials dm ON dm.id = lom.mat_id
  WHERE lo.id = :par_order_id AND dm.mat_type_id IN (4)
  GROUP BY dm.name
...
Рейтинг: 0 / 0
COALESCE. Почему возвращается null
    #38581287
m7m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PunK_HS,
Нет записей удовлетворяющих условию
...
Рейтинг: 0 / 0
COALESCE. Почему возвращается null
    #38581300
PunK_HS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
m7m, спасибо!

А как в таком случае вернуть 0 ?
...
Рейтинг: 0 / 0
COALESCE. Почему возвращается null
    #38581322
PunK_HS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Отвечаю сам себе
[SQL]select
coalesce(sum(lom.mat_qty), 0)
from list_orders lo
inner join list_order_details lod on lod.order_id = lo.id
inner join list_order_det_oper lodo on lodo.order_det_id = lod.id
inner join list_oper_materials lom on lom.list_oper_id = lodo.id
inner join di_materials dm on dm.id = lom.mat_id
where lo.id = 8 and dm.mat_type_id = 4[/SQL]
...
Рейтинг: 0 / 0
COALESCE. Почему возвращается null
    #38581384
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PunK_HSОтвечаю сам себе
И не смущает же тебя, что это совсем другой запрос, выдающий совсем другие результаты...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
COALESCE. Почему возвращается null
    #38581393
m7m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovPunK_HSОтвечаю сам себе
И не смущает же тебя, что это совсем другой запрос, выдающий совсем другие результаты...

Позволю себе добавить,
и который тоже может вернуть NULL
...
Рейтинг: 0 / 0
COALESCE. Почему возвращается null
    #38581422
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PunK_HSА как в таком случае вернуть 0 ?
Код: sql
1.
2.
3.
recreate table tm(x int, y int); commit;
insert into tm select rand()*10, rand()*10 from rdb$types;
commit;

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
select coalesce(sum_y,0) sum_y
from rdb$database -- эта таблица содержит одну строку
 left  -- а этот вариант соединения заставит вернуть  как минимум  одну строку
join (select sum(y) sum_y from tm where x=-9999 group by x) on 1=1;

           SUM_Y
================
               0
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / COALESCE. Почему возвращается null
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]