PDC_REPORT_CreazioneDB/sql/storedCollaudo/C6MartPeriodico_PL_S75GradoCopertura.sql
2025-06-06 19:02:52 +02:00

135 lines
3.8 KiB
Transact-SQL
Raw Blame History

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