La query è per SqlServer
Per gli altri db basta spostituire il funzione ISNULL con VALUE,NVL,IFNULL a seconda del db
INSERT INTO TASALSOT
SELECT CODICE,PIACON.SOTTOCONTO,
ISNULL(LIRE.DARE,0) DARE,
ISNULL(LIRE.AVERE,0) AVERE,
ISNULL(LIRE.DAREINIT,0) DAREINIT,
ISNULL(LIRE.AVEREINIT,0) AVEREINIT,
ISNULL(LIRE.EDARE,0) EDARE,
ISNULL(LIRE.EAVERE,0) EAVERE,
ISNULL(LIRE.EDAREINIT,0) EDAREINIT,
ISNULL(LIRE.EAVEREINIT,0) EAVEREINIT,
DATULTMOV,
NUMULTMOV
FROM PIACON INNER JOIN ESC ON 1=1
LEFT OUTER JOIN (SELECT ESECOMPET,SOTTOCONTO,
SUM(CASE WHEN SEGNO='D' THEN IMPORTO ELSE 0 END) DARE,
SUM(CASE WHEN SEGNO='A' THEN IMPORTO ELSE 0 END) AVERE,
SUM(CASE WHEN SEGNO='D' AND TIPOCAUSAL='A' THEN IMPORTO ELSE 0 END) DAREINIT,
SUM(CASE WHEN SEGNO='A' AND TIPOCAUSAL='A' THEN IMPORTO ELSE 0 END) AVEREINIT,
SUM(CASE WHEN SEGNO='D' THEN EIMPORTO ELSE 0 END) EDARE,
SUM(CASE WHEN SEGNO='A' THEN EIMPORTO ELSE 0 END) EAVERE,
SUM(CASE WHEN SEGNO='D' AND TIPOCAUSAL='A' THEN EIMPORTO ELSE 0 END) EDAREINIT,
SUM(CASE WHEN SEGNO='A' AND TIPOCAUSAL='A' THEN EIMPORTO ELSE 0 END) EAVEREINIT,
MAX(DATAREG) DATULTMOV,
MAX(NUMERO) NUMULTMOV
FROM MOVCO
WHERE SOSPESO_SN='N'
AND TEMPORA_SN='N'
AND SIMULAZ_SN='N'
AND SOLOANA_SN<>'S'
GROUP BY ESECOMPET,SOTTOCONTO) LIRE ON ESC.CODICE=LIRE.ESECOMPET AND PIACON.SOTTOCONTO=LIRE. SOTTOCONTO
ORDER BY ESC.CODICE,PIACON.SOTTOCONTO
Nessun commento:
Posta un commento