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

118 lines
3.9 KiB
Transact-SQL
Raw Blame History

-- Schema: C6Mart
-- Stored Procedure: PL_S75GradoCopertura
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
-- [C6Mart].[PL_S75GradoCopertura] 'F','SMPSMN76C26L157Y'
CREATE procedure [C6Mart].[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 Banca Fideuram'
WHEN 'S' THEN 'Patrimonio Sanpaolo 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 C6Mart.vPatrimoniobfAggregato patrBF
LEFT OUTER JOIN C6Mart.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
--AND patrBF.PatrimonioSenzaCC > 0
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 C6Mart.PATRIMONIO_TERZI patrTerzi
LEFT OUTER JOIN C6Mart.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 OUTER JOIN C6Mart.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 COPERTURA WHEN 0 THEN 'n.c.' ELSE NULL END AS varString,
-- CASE COPERTURA WHEN 0 THEN 'n.c.' ELSE NULL END AS coperturaString
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 No