powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / запрос с sum и left join
4 сообщений из 4, страница 1 из 1
запрос с sum и left join
    #37437369
Андрей Васильевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Народ, помогите разъяснить мое непонимание. Опишу проблему на примере. Есть 2 таблицы связаные по суррогатному ключу, в первой указана дата(дата всегда есть!!!) и ссылка на другие таблицы(пятна в северном полушарии и южном) где хранятся пятна и их размер. За определенную дату может не быть пятен на солнце, а может быть и не одно.
SUN
ID_SUNDATID_NID_S106.09.2011207.09.20111307.09.20112307.09.20111

SPOT_N
ID_SPOT_NSIZ10.620.3

SPOT_S
ID_SPOT_SSIZ10.2

Проблема в том, что нужно иногда выбирать общую площадь пятен за день, то биш сумму, но связывать таблицы SPOT_N и SPOT_S с таблицей SUN обязательно нужно через left join(это кусочек моей проблемы в примере, поэтому просто так нужно). То есть:

Код: plaintext
1.
2.
3.
4.
5.
6.
 
select DAT, sum(N.SIZ) as NR,sum(S.SIZ) as SR,sum(N.SIZ)+sum(S.SIZ) as AL
from SUN
left join SPOT_N N on ID_SPOT_N=ID_N
left join SPOT_S S on ID_SPOT_S=ID_S
group by DAT

По понятной причине могут быть пустые ячейки. И тогда в итоговом столбце AL будет пусто, если в одном предыдущем пусто, а в другом есть сумма. А нужно, по логике, не учитывать эти пустые.
Подскажите как решить проблему? Чувствую, что нужно смотреть в сторону case, но чего-то не получается. Видимо где-то идеологические моменты не усвоил. Поделитесь мыслью.
...
Рейтинг: 0 / 0
запрос с sum и left join
    #37437375
Андрей Васильевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Васильевич...Есть 2 таблицы связаные по суррогатному ключу... Понятно, что их 3, просто ошибся.
...
Рейтинг: 0 / 0
запрос с sum и left join
    #37437478
Андрей Васильевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Короче все проще, чем я думал, хотя так же через case.
Код: plaintext
1.
2.
3.
4.
5.
6.
select DAT, case when sum(N.SIZ) is null then  0  else sum(N.SIZ) end as NR,case when sum(S.SIZ) is null then  0  else sum(S.SIZ) end as SR,case when sum(N.SIZ) is null then  0  else sum(N.SIZ) end + case when sum(S.SIZ) is null then  0  else sum(S.SIZ) end as AL
from SUN
left join SPOT_N N on ID_SPOT_N=ID_N
left join SPOT_S S on ID_SPOT_S=ID_S
group by DAT

...
Рейтинг: 0 / 0
запрос с sum и left join
    #37437490
golsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Функцией COALESCE преобразовать NULL в 0
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / запрос с sum и left join
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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