powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Без UNION ALL-ов
8 сообщений из 8, страница 1 из 1
Без UNION ALL-ов
    #35014329
Rust()
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Либо сильно торможу, либо чего-то недопонимаю:
хочу упростить запрос
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
select  'Дата инициализации процесса',  VARCHAR_FORMAT(P.DATEOFCOMMING, 'YYYY-MM-DD HH24:MI:SS '),'data'
FROM DB2ADMIN.PROCESSES AS P 
INNER JOIN DB2ADMIN.STATUS_PROCESSES AS SP ON (SP.ID_STATUS = P.ID_STATUS) 
INNER JOIN DB2ADMIN.TYPE_PROCESS AS TP ON (TP.ID_TYPE_PROCESS = P.ID_TYPE_PROCESS)
WHERE P.ID_PROCESS = I_ID_PROCESS;  

UNION ALL

select  'Дата завершения процесса',  VARCHAR_FORMAT(P.DATEOFCOMPLETED, 'YYYY-MM-DD HH24:MI:SS '),'data'
FROM DB2ADMIN.PROCESSES AS P 
INNER JOIN DB2ADMIN.STATUS_PROCESSES AS SP ON (SP.ID_STATUS = P.ID_STATUS) 
INNER JOIN DB2ADMIN.TYPE_PROCESS AS TP ON (TP.ID_TYPE_PROCESS = P.ID_TYPE_PROCESS)
WHERE P.ID_PROCESS = I_ID_PROCESS; 

UNION ALL

select  'Статус процесса',  SP.DESCRIPTION_STATUS,'string'
FROM DB2ADMIN.PROCESSES AS P 
INNER JOIN DB2ADMIN.STATUS_PROCESSES AS SP ON (SP.ID_STATUS = P.ID_STATUS) 
INNER JOIN DB2ADMIN.TYPE_PROCESS AS TP ON (TP.ID_TYPE_PROCESS = P.ID_TYPE_PROCESS)
WHERE P.ID_PROCESS = I_ID_PROCESS; 

UNION ALL

select  'Тип процесса',  TP.DESCRIPTION_PROCESS,'string'
FROM DB2ADMIN.PROCESSES AS P 
INNER JOIN DB2ADMIN.STATUS_PROCESSES AS SP ON (SP.ID_STATUS = P.ID_STATUS) 
INNER JOIN DB2ADMIN.TYPE_PROCESS AS TP ON (TP.ID_TYPE_PROCESS = P.ID_TYPE_PROCESS)
WHERE P.ID_PROCESS = I_ID_PROCESS; 



Как сделать это одним запросом, без UNION ALL-ов?
(INNER JION-ы сделал во всех запросах специально, дабы показать, что это схожие запросы)
...
Рейтинг: 0 / 0
Без UNION ALL-ов
    #35014540
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
with t (n) as (
values 1
union all
select n+1
from t
where n<4
)
SELECT
case t.n
when 1 then 'Дата инициализации процесса'
when 2 then 'Дата завершения процесса'
when 3 then 'Статус процесса'
when 4 then 'Тип процесса'
end c1
, case t.n
when 1 then VARCHAR_FORMAT(P.DATEOFCOMMING, 'YYYY-MM-DD HH24:MI:SS ')
when 2 then VARCHAR_FORMAT(P.DATEOFCOMPLETED, 'YYYY-MM-DD HH24:MI:SS ')
when 3 then SP.DESCRIPTION_STATUS
when 4 then TP.DESCRIPTION_PROCESS
end c2
, case t.n
when 1 then 'data'
when 2 then 'data'
when 3 then 'string'
when 4 then 'string'
end c3
FROM DB2ADMIN.PROCESSES AS P
INNER JOIN DB2ADMIN.STATUS_PROCESSES AS SP ON (SP.ID_STATUS = P.ID_STATUS)
INNER JOIN DB2ADMIN.TYPE_PROCESS AS TP ON (TP.ID_TYPE_PROCESS = P.ID_TYPE_PROCESS)
join t on 1=1
WHERE P.ID_PROCESS = I_ID_PROCESS
...
Рейтинг: 0 / 0
Без UNION ALL-ов
    #35014563
Rust()
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
такое решение оптимальнее?
...
Рейтинг: 0 / 0
Без UNION ALL-ов
    #35014602
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Rust()такое решение оптимальнее?Планы запросов смотреть надо.
...
Рейтинг: 0 / 0
Без UNION ALL-ов
    #35014828
Rust()
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо большое, и еще маленький вопросик: почему выходит ошибка при запросе
Код: plaintext
1.
2.
select p.id, p.value from db2admin.status_processes p 
union values ( 1 ,"xxx")
...
Рейтинг: 0 / 0
Без UNION ALL-ов
    #35014849
TORT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может потому что строки в DB2 выделяются одинарными кавычками?
...
Рейтинг: 0 / 0
Без UNION ALL-ов
    #35014868
Rust()
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
не корректно запрос задал:

Код: plaintext
1.
2.
select p.id_status, p.description_status from db2admin.status_processes p 
union values ( 1  as id_status,'xxx' as description_status)

необходимо именованные столбцы иметь на выходе
...
Рейтинг: 0 / 0
Без UNION ALL-ов
    #35015088
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
select p.id_status, p.description_status 
from db2admin.status_processes p 
  union 
select id_status, description_status 
from table(values ( 1 , 'xxx')) t (id_status, description_status)
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Без UNION ALL-ов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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