Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Без UNION ALL-ов / 8 сообщений из 8, страница 1 из 1
17.12.2007, 12:56
    #35014329
Rust()
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Без UNION ALL-ов
Либо сильно торможу, либо чего-то недопонимаю:
хочу упростить запрос
Код: 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
17.12.2007, 13:43
    #35014540
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Без UNION ALL-ов
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
17.12.2007, 13:50
    #35014563
Rust()
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Без UNION ALL-ов
такое решение оптимальнее?
...
Рейтинг: 0 / 0
17.12.2007, 13:59
    #35014602
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Без UNION ALL-ов
Rust()такое решение оптимальнее?Планы запросов смотреть надо.
...
Рейтинг: 0 / 0
17.12.2007, 14:51
    #35014828
Rust()
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Без UNION ALL-ов
Спасибо большое, и еще маленький вопросик: почему выходит ошибка при запросе
Код: plaintext
1.
2.
select p.id, p.value from db2admin.status_processes p 
union values ( 1 ,"xxx")
...
Рейтинг: 0 / 0
17.12.2007, 14:54
    #35014849
TORT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Без UNION ALL-ов
может потому что строки в DB2 выделяются одинарными кавычками?
...
Рейтинг: 0 / 0
17.12.2007, 14:58
    #35014868
Rust()
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Без UNION ALL-ов
не корректно запрос задал:

Код: 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
17.12.2007, 15:54
    #35015088
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Без UNION ALL-ов
Код: 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
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Без UNION ALL-ов / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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