Dopo la stampa definitiva, la query deve essere rivista.
La query estrae i dati dettagliati per cespite. E' sufficiente utilizzare i subtotali di Excel per totalizzare per Categoria
PS. La query è fatta per ORACLE ( la variazioni per altri db sono semplici )
------------- Inizio Testo Query -----------------------------------------------
select
c.categoria,cat.descrizion,c. codice,c.descrizion,
substr(datainiamm,7,2)||'/'|| substr(datainiamm,5,2)||'/'|| substr(datainiamm,1,4) Data_Ini_Amm,
case
when acq.datareg is not null then
substr(acq.datareg,7,2)||'/'|| substr(acq.datareg,5,2)||'/'|| substr(acq.datareg,1,4)
end
Data_Acq,
c.numfatfor,
substr(c.datafatfor,7,2)||'/'| |substr(c.datafatfor,5,2)||'/' ||substr(c.datafatfor,1,4) data_fatt_for,
nvl(acq.eimporto,0) imp_acq,
c.evaloreini costo_sto,c.ebaseammor base_amm,
c.eresiduoam-nvl(amm.eimporto, 0) residuo_amm, c.eimpnonamm non_amm,
c.etotaleamm+nvl(amm.eimporto, 0) fondo_amm,
nvl(ali.eimporto,0) ali_anno,
nvl(amm.eimporto,0) amm_anno,
c.eplusval-c.eminusval plus_min,
c.eresiduocv-nvl(amm. eimpammciv,0) residuo_amm_civ,
c.eplusciv-c.eminusciv plus_min_civ,
c.efondociv+nvl(amm. eimpammciv,0) fondo_civ,
nvl(amm.eimpammciv,0) amm_civ_anno,
nvl(ali.etotaleamm,0) ali_anno_tot_fondo,
nvl(ali.eimpammort,0) ali_tot_costo_storico,
nvl(ali.etotammciv,0) ali_anno_tot_fondo_civ,
c.evaloreini-nvl(ali. eimpammort,0) netto_ali_costo_sto,
c.etotaleamm+nvl(amm.eimporto, 0)-nvl(ali.etotaleamm,0) netto_ali_fondo_amm,
c.efondociv+nvl(amm. eimpammciv,0)-nvl(ali. etotammciv,0) netto_ali_fondo_amm_civ,
nvl(amm.eimporto,0) importo_amm,
nvl(amm.eimpammciv,0) importo_amm_civ,
nvl(AMm.Percamm,0) pct_amm,
nvl(AMm.Perc_civ,0) pct_civ
from
( select * from cespiti
where 1=1
and codice is not null
and (
(datainiamm < '2012')
or
(exists ( select 1 from movce m1 where m1.categoria=cespiti.categoria and m1.codcespite=cespiti.codice and tipomov='A' and esereg='2011')
))
and (
(alienat_sn='N') or
( alienat_sn='S' and exists ( select 1 from movce m1 where m1.categoria=cespiti.categoria and m1.codcespite=cespiti.codice and tipomov='L' and esereg='2011')
)
)
) c
inner join siglapp.catbeni cat on c.categoria=cat.codice
left outer join (
select * from movce where esereg='2011'
and tipomov='M') amm
on c.categoria=amm.categoria
and c.codice=amm.codcespite
left outer join (
select * from movce where esereg='2011'
and tipomov='L') ali
on c.categoria=ali.categoria
and c.codice=ali.codcespite
left outer join (
select * from movce where esereg='2011'
and tipomov='A') acq
on c.categoria=acq.categoria
and c.codice=acq.codcespite
order by c.categoria,c.codice
------------- Fine Testo Query -----------------------------------------------