PDC_REPORT_CreazioneDB/sql/storedProduzione/C6MartPeriodico_PL_MP_FD147SintesiValute.sql
2025-06-06 19:02:52 +02:00

45 lines
1.3 KiB
Transact-SQL

--[C6MartPeriodico].[PL_MP_FD147SintesiValute] 'F','PLKHNJ76R09H514E'
CREATE procedure [C6MartPeriodico].[PL_MP_FD147SintesiValute]
@Rete char(1),
@CodiceFiscale varchar(16)
as
begin
declare @ctvNoCoperto as decimal(18,3)
declare @ctvCoperto as decimal(18,3)
declare @copertura as decimal(18,3)
SELECT @ctvNoCoperto = isnull(sum(ctv),0)
FROM c6martperiodico.ANAG_PRODOTTI_VALUTE a
RIGHT JOIN c6martperiodico.patrimonio_bf c
ON a.cod_prodotto = c.cod_prodotto
WHERE
cod_fiscale = @CodiceFiscale
and rete = @Rete
and a.cod_prodotto is null
and id_area <> 'Cc'
select @copertura = (patrimonioSenzaCC - @ctvNoCoperto)/patrimonioSenzaCC ,
@ctvCoperto = patrimonioSenzaCC - @ctvNoCoperto
from c6martperiodico.vPatrimonioBfAggregato
where
cod_fiscale = @CodiceFiscale
and rete = @Rete
--select @copertura
--FC 16/04/20104
--Inserito controllo per evitare problemi di divid by zero nella select successiva
IF @ctvCoperto < 1
begin
set @ctvCoperto =1
End
SELECT
sum(peso*ctv) / @ctvCoperto as percentuale,
abs(sum(peso*ctv)) as valoreAssoluto,
a.Divisa,
@copertura as copertura
FROM c6martperiodico.ANAG_PRODOTTI_VALUTE a
join c6martperiodico.patrimonio_bf c
ON a.cod_prodotto = c.cod_prodotto
where
cod_fiscale = @CodiceFiscale
and rete = @Rete
group by a.Divisa
order by valoreAssoluto desc
end