sabato 9 gennaio 2010

Query Riepilogo Cespiti

-- Riepilogo cespiti con base ammortizzabile, ammortizzato nell'anno, residuo

select ````||CESPITI.CATEGORIA CAT,
````||CESPITI.CODICE CODICE,DESCRIZION,ALIENAT_SN ALIEN,
INTAMM_SN INT_AMM,
CASE
WHEN DATA_ALI IS NULL THEN ``
ELSE
SUBSTR(DATA_ALI,1,4)||`/`||SUBSTR(DATA_ALI,5,2)||`/`||SUBSTR(DATA_ALI,7,2)
END DATA_ALI,
SUBSTR(CESPITI.DATAFATFOR,1,4)||`/`||SUBSTR(CESPITI.DATAFATFOR,5,2)||`/`||SUBSTR(CESPITI.DATAFATFOR,7,2) DATA_FAT,
cespiti.NUMNSFATT NUM_FATT,
EVALOREINI VALORE_INI,
CESPITI.ETOTALEAMM TOT_AMM,
CESPITI.ERESIDUOAM RESIDUO,
MOVCE.EIMPORTO AMM_+[Esercizio],
CESPITI.ERESIDUOAM-MOVCE.EIMPORTO DA_AMM
from CESPITI LEFT OUTER JOIN MOVCE ON CESPITI.CATEGORIA=MOVCE.CATEGORIA
AND CESPITI.CODICE=MOVCE.CODCESPITE
AND ESEREG=`+[Esercizio]`
AND TIPOMOV=`M`
LEFT OUTER JOIN (
select CATEGORIA,CODCESPITE,DATAREG DATA_ALI from MOVCE WHERE TIPOMOV=`L`
) ALIENATI ON CESPITI.CATEGORIA=ALIENATI.CATEGORIA
AND CESPITI.CODICE=ALIENATI.CODCESPITE
ORDER BY CESPITI.CATEGORIA,CESPITI.CODICE

Query chiusura ordine

-- Query per chiudere le testate degli ordini che hanno tutte le righe evase

UPDATE TESDOCUM
SET EVASO_SN='S'
WHERE NUMERO IN (
select TESDOCUM.NUMERO from TESDOCUM
WHERE ESERPROTOC >='2008'
AND TIPOPROTOC='OC'
AND EVASO_SN='N'
AND NOT EXISTS ( SELECT 1 FROM MOVIMAG M
WHERE TESDOCUM.NUMERO=M.NUMERO
AND EVASION_SN='N'
)
)

Query chiusura righe ordine

-- Chiusura di righe ordine aperte con articolo '.' e ordine aperto solo per quella riga
UPDATE MOVIMAG
SET EVASION_SN='S'
WHERE NUMERO IN
(select TESDOCUM.NUMERO from MOVIMAG,TESDOCUM
WHERE ESERCIZIO >='2008'
AND ARTICOLO='.'
AND TIPOPROT='OC'
AND EVASION_SN='N'
AND EVASO_SN='N'
AND TESDOCUM.NUMERO=MOVIMAG.NUMERO
AND NOT EXISTS ( SELECT 1 FROM MOVIMAG M
WHERE M.NUMERO=MOVIMAG.NUMERO
AND EVASION_SN='N'
AND ARTICOLO<>'.' )
)
AND ARTICOLO='.'