135 lines
3.8 KiB
Transact-SQL
135 lines
3.8 KiB
Transact-SQL
-- Schema: C6MartPeriodico
|
||
-- Stored Procedure: PL_S75GradoCopertura
|
||
|
||
|
||
|
||
-- =============================================
|
||
-- Author: <Author,,Name>
|
||
-- Create date: <Create Date,,>
|
||
-- Description: <Description,,>
|
||
-- =============================================
|
||
-- [C6MartPeriodico].[PL_S75GradoCopertura] 'F','GRNNTN55B07I158D'
|
||
CREATE procedure [C6MartPeriodico].[PL_S75GradoCopertura]
|
||
-- Add the parameters for the stored procedure here
|
||
@Rete char(1),
|
||
@CodiceFiscale varchar(16)
|
||
AS
|
||
BEGIN
|
||
-- SET NOCOUNT ON added to prevent extra result sets from
|
||
-- interfering with SELECT statements.
|
||
|
||
DECLARE @varCompl decimal(15,3)
|
||
DECLARE @coperturaCompl decimal(15,3)
|
||
DECLARE @ctvCompl decimal(15,3)
|
||
DECLARE @saldoCC decimal(15,3)
|
||
|
||
--CALCOLO PATRIMONI E ESTRAZIONE VAR
|
||
SELECT
|
||
@Rete AS Rete,
|
||
@CodiceFiscale as CodiceFiscale,
|
||
CASE @Rete
|
||
WHEN 'F' THEN 'Patrimonio Fideuram'
|
||
WHEN 'S' THEN 'Patrimonio San Paolo Invest'
|
||
ELSE ' Patrimonio IW Private Inv.'
|
||
END AS NomePatrimonio,
|
||
-- MAX(patrBF.CTV - patrBF.ContoCorrente) AS Controvalore,
|
||
-- MAX(patrBF.ContoCorrente) AS ControvaloreCC,
|
||
-- MAX(RISCHIO.VAR_PERC_PTF) AS VarPatrimonio,
|
||
-- MAX(RISCHIO.COPERTURA) AS Copertura,
|
||
patrBF.PatrimonioSenzaCC AS Controvalore,
|
||
--patrBF.CTV - patrBF.ContoCorrente AS Controvalore,
|
||
patrBF.ContoCorrente AS ControvaloreCC,
|
||
RISCHIO.VAR_PERC_PTF AS VarPatrimonio,
|
||
RISCHIO.COPERTURA AS Copertura,
|
||
1 AS ORDINE INTO #TEMP75
|
||
|
||
FROM
|
||
C6MartPeriodico.vPatrimoniobfAggregato patrBF
|
||
LEFT JOIN
|
||
C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO
|
||
ON
|
||
RISCHIO.RETE = patrBF.RETE
|
||
AND RISCHIO.COD_FISCALE = patrBF.COD_FISCALE
|
||
AND RISCHIO.COD_AGGREG = 'COMPLESSIVO|BF'
|
||
WHERE
|
||
patrBF.Rete = @Rete
|
||
AND patrBF.Cod_Fiscale = @CodiceFiscale
|
||
|
||
UNION ALL
|
||
|
||
SELECT
|
||
A.Rete,
|
||
A.CodiceFiscale,
|
||
A.NomePatrimonio,
|
||
A.Controvalore,
|
||
A.ControvaloreCC,
|
||
A.VarPatrimonio,
|
||
A.Copertura,
|
||
A.ORDINE
|
||
FROM(
|
||
SELECT
|
||
@Rete AS Rete,
|
||
@CodiceFiscale as CodiceFiscale,
|
||
'Patrimonio Altri Istituti' AS NomePatrimonio,
|
||
SUM(ROUND(CASE WHEN patrTerzi.TIPO_PRODOTTO = 'Conti correnti' THEN 0 ELSE CTV END,2)) AS Controvalore,
|
||
SUM(ROUND(CASE WHEN patrTerzi.TIPO_PRODOTTO = 'Conti correnti' THEN patrTerzi.CTV ELSE 0 END,2)) AS ControvaloreCC,
|
||
MAX(RISCHIO.VAR_PERC_PTF) as VarPatrimonio,
|
||
MAX(RISCHIO.COPERTURA) as Copertura,
|
||
2 AS ORDINE
|
||
FROM
|
||
C6MartPeriodico.PATRIMONIO_TERZI patrTerzi
|
||
LEFT JOIN
|
||
C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO
|
||
ON
|
||
RISCHIO.RETE = patrTerzi.RETE
|
||
AND RISCHIO.COD_FISCALE = patrTerzi.COD_FISCALE
|
||
AND RISCHIO.COD_AGGREG = 'COMPLESSIVO|TERZI'
|
||
WHERE
|
||
patrTerzi.Rete = @Rete
|
||
and patrTerzi.COD_FISCALE = @CodiceFiscale
|
||
) A
|
||
WHERE ISNULL(A.CONTROVALORE,0)>0
|
||
|
||
-- SE IL PATRIMONIO <20> SOLO 1 NON VA CALCOLATO IL COMPLESSIVO
|
||
IF @@ROWCOUNT > 1
|
||
BEGIN
|
||
|
||
--CALCOLO IL PATRIMONIO COMPLESSIVO ED ESTRAGGO IL VAR
|
||
SELECT
|
||
@ctvCompl=SUM(patr.CONTROVALORE),
|
||
@saldoCC=SUM(patr.CONTROVALORECC),
|
||
@varCompl=MAX(RISCHIO.VAR_PERC_PTF),
|
||
@coperturaCompl=MAX(RISCHIO.COPERTURA)
|
||
FROM
|
||
#TEMP75 patr
|
||
LEFT JOIN
|
||
C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO
|
||
ON
|
||
RISCHIO.RETE = patr.RETE
|
||
AND RISCHIO.COD_FISCALE = patr.CodiceFiscale
|
||
AND RISCHIO.COD_AGGREG = 'COMPLESSIVO'
|
||
|
||
--RESTITUISCO I PATRIMONI
|
||
SELECT
|
||
Ordine,
|
||
Nomepatrimonio,
|
||
Controvalore,
|
||
CASE WHEN @saldoCC > 0 THEN 1 ELSE 0 END AS CCPresente,
|
||
(CONTROVALORE/@CTVCompl)*100 AS Percentuale,
|
||
VARPATRIMONIO AS VAR,
|
||
Copertura,
|
||
CASE
|
||
WHEN COPERTURA IS NULL THEN 'n.c.'
|
||
WHEN COPERTURA = 0 THEN 'n.c.'
|
||
ELSE NULL
|
||
END AS varString,
|
||
CASE
|
||
WHEN COPERTURA IS NULL THEN 'n.c.'
|
||
WHEN COPERTURA = 0 THEN 'n.c.'
|
||
ELSE NULL
|
||
END AS coperturaString,
|
||
|
||
-- aggiunta per valutare la presenza di controcorrente
|
||
CASE WHEN @saldoCC <> 0 THEN 1 ELSE 0 END as NotaCCNetto
|
||
-- fine aggiunta per valutare la presenza
|