Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как сложить 2 запроса, чтобы не получилось NULL при отсутствии строк в одном из них? / 4 сообщений из 4, страница 1 из 1
29.06.2017, 16:25
    #39479820
svnvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сложить 2 запроса, чтобы не получилось NULL при отсутствии строк в одном из них?
Например
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SELECT c.id, 

((SELECT COALESCE(SUM(a.sum_rub), 0)
FROM a
WHERE a.id = c.id)
+
(SELECT COALESCE(SUM(b.sum_rub), 0)
FROM b
WHERE b.id = c.id)) AS total_sum

FROM c


При отсутствии строк в одном из подзапросов результат получается NULL, не смотря на COALESCE внутри запроса. И сумма NULL с числом дает NULL.
...
Рейтинг: 0 / 0
29.06.2017, 18:41
    #39479925
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сложить 2 запроса, чтобы не получилось NULL при отсутствии строк в одном из них?
Если записей нет - весь подзапрос даёт Null. Оберни в COALESCE сами подзапросы.
...
Рейтинг: 0 / 0
30.06.2017, 00:35
    #39480049
svnvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сложить 2 запроса, чтобы не получилось NULL при отсутствии строк в одном из них?
AkinaЕсли записей нет - весь подзапрос даёт Null. Оберни в COALESCE сами подзапросы.
Я пробовал, выдает ошибку.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
SELECT c.id, 
(
(COALESCE(SELECT COALESCE(SUM(a.sum_rub), 0)
FROM a
WHERE a.id = c.id), 0)
+
(COALESCE(SELECT COALESCE(SUM(b.sum_rub), 0)
FROM b
WHERE b.id = c.id), 0)
) AS total_sum

FROM c
...
Рейтинг: 0 / 0
30.06.2017, 04:54
    #39480080
svnvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сложить 2 запроса, чтобы не получилось NULL при отсутствии строк в одном из них?
Akina, все получилось, с количеством скобок была ошибка.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как сложить 2 запроса, чтобы не получилось NULL при отсутствии строк в одном из них? / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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