PDC_REPORT_CreazioneDB/sql/Testbes/procedure/C6Mart_PL_MP_FD147SintesiValute.sql
2025-06-10 15:29:40 +02:00

45 lines
1.2 KiB
Transact-SQL

--[c6mart].[PL_MP_S147SintesiValute] 'F','DCSCRJ80H24Z602C'
CREATE procedure [C6Mart].[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 c6mart.ANAG_PRODOTTI_VALUTE a
RIGHT JOIN c6mart.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 c6mart.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,
divisa,
@copertura as copertura
FROM c6mart.ANAG_PRODOTTI_VALUTE a
join c6mart.patrimonio_bf c
ON a.cod_prodotto = c.cod_prodotto
where
cod_fiscale = @CodiceFiscale
and rete = @Rete
group by divisa
order by valoreAssoluto desc
end