Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / sql запрос / 3 сообщений из 3, страница 1 из 1
12.02.2008, 14:40
    #35127113
Rust()
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sql запрос
Помогите сформировать следующий хитрый запрос:
есть 2 таблицы

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
 CREATE TABLE "DB2ADMIN"."USERS"  (
		  "ID_USER" VARCHAR( 10 ) NOT NULL , 
		  "MAIL_USER" VARCHAR( 128 ) , 
		  "IP_USER" VARCHAR( 128 ) )   
		 IN "USERSPACE1" ; 

CREATE TABLE "DB2ADMIN"."USERS_HISTORY"  (
		  "ID_ACTION" BIGINT NOT NULL , 
		  "ID_TRANSACTION" BIGINT NOT NULL , 
		  "TYPE_SQL" SMALLINT NOT NULL , 
		  "ID_USER" VARCHAR( 10 ) , 
		  "MAIL_USER" VARCHAR( 128 ) , 
		  "IP_USER" VARCHAR( 128 ) )   
		 IN "USERSPACE1" ; 



Пусть есть значения
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
USERS:
"ID_USER"    "MAIL_USER"   "IP_USER" 
id1           mail1          ip1
id2           mail2          ip2

USERS_HISTORY:
"ID_ACTION"  "ID_TRANSACTION"	  "TYPE_SQL"  "ID_USER"  "MAIL_USER"  "IP_USER"
 1                      1                  2            id1       mail0        ip0
 2                      5                  3            id2       mail1        ip1
 3                      2                  1            id3       mail3        ip3
 4                      3                  1            id4       mail4        ip4
 5                      4                  1            id5       mail5        ip5
Необходимо сделать выборку
Код: plaintext
1.
select u.TYPE_SQL, u.ID_USER, u.MAIL_USER, u.IP_USER  from DB2ADMIN.USERS_HISTORY u where u.ID_TRANSACTION= 1 
и к этой выборке необходимо добавить строку из таблицы USERS с добавленным полем TYPE_SQL=0, для которой выполняется условие USERS_HISTORY.ID_USER=USERS.ID_USER. То есть должен быть такой результат:
Код: plaintext
1.
2.
3.
"TYPE_SQL"  "ID_USER"  "MAIL_USER"  "IP_USER"
    2            id1       mail0        ip0
    0            id1       mail1        ip1
...
Рейтинг: 0 / 0
12.02.2008, 15:19
    #35127316
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sql запрос
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
with h as
(
select TYPE_SQL, ID_USER, MAIL_USER, IP_USER  
from DB2ADMIN.USERS_HISTORY 
where ID_TRANSACTION= 1 
)
select TYPE_SQL, ID_USER, MAIL_USER, IP_USER  
from h
  union all
select  0  TYPE_SQL, u.ID_USER, u.MAIL_USER, u.IP_USER  
from h 
join DB2ADMIN.USERS u on u.ID_USER=h.ID_USER
...
Рейтинг: 0 / 0
12.02.2008, 15:48
    #35127471
Rust()
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sql запрос
огромнейшее СПАСИБО, избавил писать нудную хранимую процедуру.
...
Рейтинг: 0 / 0
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / sql запрос / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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