Обновить идентификатор с использованием двух или более таблиц - PullRequest
0 голосов
/ 18 июня 2011

У меня есть таблица с именем UID, и данные выглядят как:

U_ID   Urgent  Impact  Severe  Priority
1      1       1       NULL    1
2      1       2       NULL    1
3      1       3       NULL    1
4      3       4       NULL    3
5      2       2       NULL    2
6      NULL    NULL    1       NULL
7      NULL    NULL    NULL    1
8      NULL    NULL    NULL    2
9      NULL    NULL    NULL    3
10     NULL    NULL    NULL    4
11     1       NULL    NULL    NULL
12     1       1       NULL    NULL
13     1       2       NULL    NULL
14     1       2       1       NULL
15     1       3       1       NULL

, а также у меня есть еще одна таблица с именем STID, и данные выглядят следующим образом:

Priority    Impact  Urgent   ID
    3            4  3        1
    3            4  3        1
    2            2  2        1
    2            2  2        1
    2            2  2        1

, а также яу меня есть другая таблица с именем PRID, и данные выглядят так:

Priority   ID
1          2
2          2
2          2
3          2
4          2

У меня есть таблица с именем FID, и она содержит столбцы U_ID и ID, поэтому я пытаюсь вставить эти столбцы, используя U_ID из таблицы UID и идентификатор изТаблица STID и PRID. Как я могу это сделать?

Моя окончательная таблица FID должна выглядеть следующим образом:

U_ID   ID
4      1
4      1
5      1
5      1
5      1
7      2
8      2
8      2
9      2
10     2

Ответы [ 2 ]

0 голосов
/ 18 июня 2011
select u.U_ID, s.ID
into #temp
from UID as u
  inner join STID as s on (u.Priority=s.Priority and u.Impact=s.Impact)
and s.Priority is not null

insert into #temp
select u.U_ID, p.ID
from UID as u
  inner join PRID as p on (u.Priority=p.Priority)
and u.U_ID not in (select U_ID from #temp)

Select * from #temp
order by U_ID

Drop Table #Temp
0 голосов
/ 18 июня 2011
select U_ID, S.ID
from UID as U
  inner join STID as S
    on S.Pr = U.PR and
       S.Im = U.IM and
       S.Ur = U.UR
union all
select U_ID, P.ID
from UID as U
  inner join PRID as P
    on U.PR = P.PR and
       U.IM is null and
       U.UR is null
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...