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 47 48 49 50 51
|
MERGE INTO testdbruevn A
USING (
SELECT a.datsitu||a.cdfili||a.idestd ID,
(select nvl( (select '1' from dual where 0=(select count(*) from tfixsyr where a.coddev=tfixsyr.coddev)),'0') from dual) WK_STATUT1,
(select nvl( (select '1' from dual where 0=(select count(*) from tguisyr where a.codgui=tguisyr.codgui)),'0') from dual) WK_STATUT2,
(select nvl( (select '1' from dual where 0=(select count(*) from tpcisyr where a.numpci=tpcisyr.numpci)),'0') from dual) WK_STATUT3,
(select nvl( (select '1' from dual where (a.natinst = '50' AND a.codsec IN ('12','13','14','22','23','24')
OR a.natinst = '51' AND a.codsec IN ('11','12','14','21','22','24')
OR a.natinst = '52' AND a.codsec IN ('12','22')
OR a.natinst = '53' AND a.codsec IN ('12','22')
OR a.natinst = '54' AND a.codsec IN ('12','22')
OR a.natinst = '55' AND a.codsec IN ('12','13','22','23')
OR a.natinst = '56' AND a.codsec IN ('11','13','21','23'))), '0') from dual) WK_STATUT4,
(select nvl( (select '1' from dual where a.natid NOT IN ('I', 'S', 'R', 'C')), '0') from dual) WK_STATUT5,
(select numpcemar from tpcisyr where a.numpci=numpci) WK_NUMPCEMAR,
b.codtit WK_CODTIT,
c.valtyptit WK_CODSEDOL,
d.codtyppdt WK_TYPPDT,
(SELECT b.crsdev from tfixsyr b where b.coddev = a.coddev and to_char(b.datsitu,'YYYYMM') like substr(a.datsitu,1,6)) WK_CRSDEV,
(SELECT b.nbrdec from tfixsyr b where b.coddev = a.coddev and to_char(b.datsitu,'YYYYMM') like substr(a.datsitu,1,6)) WK_NBRDEC,
case d.codtyppdt
when 'A' then 0
else a.valfac
end WK_VALFAC
FROM testdbruevn a, ttitbdr b, ttitcodbdr c, ttyptitbdr d
WHERE substr(a.datsitu,1,6)='&1'
AND a.cdfili = '&2'
AND a.idtitre=b.codisn
AND a.coddev = b.ca3isodevcot
AND b.codtit = c.codtit
AND c.codtyptit=7
AND b.codtyptit = d.codtyptit
) B
ON ((select A.datsitu||A.cdfili||A.idestd from testdbruevn A)=B.ID)
WHEN MATCHED THEN
UPDATE SET A.statut1=B.WK_STATUT1
UPDATE SET A.statut2=B.WKSTATUT2
UPDATE SET A.statut3=B.WKSTATUT3
UPDATE SET A.statut4=B.WKSTATUT4
UPDATE SET A.statut5=B.WKSTATUT5
UPDATE SET A.numpcemar=B.WKNUMPCEMAR
UPDATE SET A.codtit=B.WKCODTIT
UPDATE SET A.codsedol=B.WKCODSEDOL
UPDATE SET A.typpdt=B.WKTYPPDT
UPDATE SET A.crsdev=B.WKCRSDEV
UPDATE SET A.nbrdec=B.WKNBRDEC
UPDATE SET A.valfac=B.WKVALFAC
WHEN NOT MATCHED THEN
UPDATE SET A.statut1=B.WK_STATUT1
; |
Partager