powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Упростить запрос
3 сообщений из 3, страница 1 из 1
Упростить запрос
    #35630616
Semen Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте всем!

Хочу одним запросом вытащить несколько значений с таблицы. Каждое значение вычисляется с различными условиями. Например:
Код: plaintext
select * from table(values((select count(*) from TAB1),(select max(FIELD1) from TAB1),(select sum(FIELD2) from TAB1 where FIELD3> 0 ))) as b(v1,v2,v3)
Как можно упростить этот запрос? Хотел бы обратить внимание, что 1 и 2 подзапрос выполняются с одинаковыми условиями. Было бы разумно объединить их в один подзапрос -
Код: plaintext
select count(*), max(FIELD1) from TAB1
Но как поправить исходный запрос - не знаю.

С уважением, Семен Попов
...
Рейтинг: 0 / 0
Упростить запрос
    #35630751
IT-Shaman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Semen PopovЗдравствуйте всем!

Хочу одним запросом вытащить несколько значений с таблицы. Каждое значение вычисляется с различными условиями. Например:
Код: plaintext
select * from table(values((select count(*) from TAB1),(select max(FIELD1) from TAB1),(select sum(FIELD2) from TAB1 where FIELD3> 0 ))) as b(v1,v2,v3)
Как можно упростить этот запрос? Хотел бы обратить внимание, что 1 и 2 подзапрос выполняются с одинаковыми условиями. Было бы разумно объединить их в один подзапрос -
Код: plaintext
select count(*), max(FIELD1) from TAB1
Но как поправить исходный запрос - не знаю.

С уважением, Семен Попов

можно попробовать так:
Код: plaintext
1.
2.
3.
4.
5.
select 
count(*), 
max(FIELD1) ,
sum(case when FIELD3 >  0  THEN FIELD2 ELSE  0  END)
from TAB1
...
Рейтинг: 0 / 0
Упростить запрос
    #35630819
Semen Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IT-Shamanможно попробовать так:
Код: plaintext
1.
2.
3.
4.
5.
select 
count(*), 
max(FIELD1) ,
sum(case when FIELD3 >  0  THEN FIELD2 ELSE  0  END)
from TAB1
Спасибо. А я всё думал, как в отбираемый элемент запихнуть условный оператор, типа как в ява, си и др. - (FIELD3>0) ? FIELD2:0 . Вы мне помогли.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Упростить запрос
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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