73 lines
1.3 KiB
Transact-SQL
73 lines
1.3 KiB
Transact-SQL
-- Schema: C6Mart
|
|
-- Stored Procedure: PL_MP_FD147SintesiValute
|
|
|
|
|
|
|
|
|
|
|
|
|
|
--[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
|
|
|
|
|
|
|
|
|