Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / запросы / 3 сообщений из 3, страница 1 из 1
20.10.2011, 17:43
    #37491135
lubava1991
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запросы
из прошлого вопроса вытек следующий. я добавляю данные следующим запросом:
Код: 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.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
UPDATE LETD.PRED t1
set (ID_UKR) = (
SELECT U.UKP_KOD 
     FROM LETD.VAG_UKP U
     LEFT OUTER JOIN 
                (SELECT DISTINCT R.UKP_KOD ,
                   CASE
                         WHEN P1.ZAV_TIP_ID= 11733 
                           THEN V.V_ID
                         ELSE R.PRED_ID
                           END PRED_ID
                FROM 	LETD.PRED_REM R
               LEFT OUTER JOIN LETD.VERTSV V
                       on R.PRED_ID = V.N_ID 
               LEFT OUTER JOIN LETD.PRED_CNSI P1
                       on R.PRED_ID = P1.PRED_ID 
              LEFT OUTER JOIN LETD.PRED_CNSI P2
                      on V.V_ID = P2.PRED_ID 
                  WHERE R.ACTIV ='Y'
                          and V.ACTIV ='Y'
                          and V.VID_PODCH_PRIZ =- 1 
                          and P1.ACTIV ='Y' 
                ) as 	KL
              on U.UKP_KOD=KL.UKP_KOD
     LEFT OUTER JOIN 	LETD.PRED_CNSI 	PL
             on KL.PRED_ID = PL.PRED_ID
    LEFT OUTER JOIN LETD.STAN 	ST
             on PL.STAN_M_ID = ST.STAN_ID
    LEFT OUTER JOIN LETD.VERTSV VR
            on VR.N_ID= KL.PRED_ID
                and VR.VID_PODCH_PRIZ = - 1  
                and VR.ACTIV ='Y'
    LEFT OUTER JOIN LETD.PRED_CNSI	PR
                on VR.V_ID = PR.PRED_ID 
                     and PL.GR_ID <>  3  
    LEFT OUTER JOIN LETD.VERTSV VC
               on VC.N_ID= PR.PRED_ID
                  and VC.VID_PODCH_PRIZ = - 1  
                  and VC.ACTIV ='Y'
    LEFT OUTER JOIN LETD.PRED_CNSI	PC
              on VC.V_ID = PC.PRED_ID 
              WHERE U.ACTIV ='Y' and U.STRAN_KOD =  20  
                   and PL.PRED_ID =t1.id)
WHERE TYPE= 2 

внутренний запрос работает правильно. данные тоже верно добавляет кроме одного ньюанса при каком то t1.id данный запрос выдает больше 1-й записи, а значит данные перестают добавлятся и возражаются все уже измененые значения
мне нужно узнать при каких t1.id выдается больше 1-й записи и какие это записи. для начала просто узнать.
Попытка сделать поверх основного запроса еще один не удалась. Как правильно найти такие значения? то есть нужно найти такие t1.id при которых U.UKP_KOD более одного значения
...
Рейтинг: 0 / 0
20.10.2011, 18:05
    #37491173
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запросы
lubava1991,

Код: 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.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
SELECT T1.ID, COUNT( 1 )
FROM LETD.PRED t1
, TABLE (
SELECT U.UKP_KOD 
     FROM LETD.VAG_UKP U
     LEFT OUTER JOIN 
                (SELECT DISTINCT R.UKP_KOD ,
                   CASE
                         WHEN P1.ZAV_TIP_ID= 11733 
                           THEN V.V_ID
                         ELSE R.PRED_ID
                           END PRED_ID
                FROM 	LETD.PRED_REM R
               LEFT OUTER JOIN LETD.VERTSV V
                       on R.PRED_ID = V.N_ID 
               LEFT OUTER JOIN LETD.PRED_CNSI P1
                       on R.PRED_ID = P1.PRED_ID 
              LEFT OUTER JOIN LETD.PRED_CNSI P2
                      on V.V_ID = P2.PRED_ID 
                  WHERE R.ACTIV ='Y'
                          and V.ACTIV ='Y'
                          and V.VID_PODCH_PRIZ =- 1 
                          and P1.ACTIV ='Y' 
                ) as 	KL
              on U.UKP_KOD=KL.UKP_KOD
     LEFT OUTER JOIN 	LETD.PRED_CNSI 	PL
             on KL.PRED_ID = PL.PRED_ID
    LEFT OUTER JOIN LETD.STAN 	ST
             on PL.STAN_M_ID = ST.STAN_ID
    LEFT OUTER JOIN LETD.VERTSV VR
            on VR.N_ID= KL.PRED_ID
                and VR.VID_PODCH_PRIZ = - 1  
                and VR.ACTIV ='Y'
    LEFT OUTER JOIN LETD.PRED_CNSI	PR
                on VR.V_ID = PR.PRED_ID 
                     and PL.GR_ID <>  3  
    LEFT OUTER JOIN LETD.VERTSV VC
               on VC.N_ID= PR.PRED_ID
                  and VC.VID_PODCH_PRIZ = - 1  
                  and VC.ACTIV ='Y'
    LEFT OUTER JOIN LETD.PRED_CNSI	PC
              on VC.V_ID = PC.PRED_ID 
              WHERE U.ACTIV ='Y' and U.STRAN_KOD =  20  
                   and PL.PRED_ID =t1.id) T2
WHERE t1.TYPE= 2 
GROUP BY T1.ID
HAVING COUNT( 1 )> 1 
...
Рейтинг: 0 / 0
21.10.2011, 11:01
    #37491816
lubava1991
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запросы
Mark Barinstein, спасибо огромное. не первый раз выручаешь)))
...
Рейтинг: 0 / 0
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / запросы / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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