-- Schema: C6MartPeriodico
-- Stored Procedure: PL_MP_FD147SintesiValute






--[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




