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

136 lines
3.9 KiB
Transact-SQL

-- Schema: C6MartPeriodico
-- Stored Procedure: PL_MP_S128ProfiloRischioAdeguatezza
-- =============================================
-- Author: <DMO>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
--[C6MartPeriodico].[PL_MP_S128ProfiloRischioAdeguatezza] 'F', 'PVRPGS53C25G388A'
CREATE procedure [C6MartPeriodico].[PL_MP_S128ProfiloRischioAdeguatezza] --'S','FGGMSM57H28G999D'
-- 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.
SET NOCOUNT ON;
DECLARE @varBF DECIMAL(12,2)
DECLARE @coperturaBF DECIMAL(12,2)
DECLARE @codiceProfilo SMALLINT
DECLARE @dataProfilo DATETIME
DECLARE @varProfilo DECIMAL(5,2)
DECLARE @nomeProfilo VARCHAR(50)
DECLARE @riskclass VARCHAR(50)
DECLARE @experience SMALLINT
/************* BF *****************/
DECLARE @varPatrBF DECIMAL(12,2)
DECLARE @riskClassBF VARCHAR(50)
DECLARE @FLAGPROF varchar(16)
SET @FLAGPROF= (select distinct FLGPROF from C6MartPeriodico.WSEIAN2 where rete=@rete and CODFIS=@CodiceFiscale)
DECLARE @SCADUTO_PARZIALE varchar(16)
SET @SCADUTO_PARZIALE= (select distinct FLGPROF from C6MartPeriodico.wseirpf where rete=@rete and CODFIS=@CodiceFiscale)
SELECT
@codiceProfilo = M.PROFILO_ASS,
@dataProfilo = M.DATA_INIZIO_VAL,
@varProfilo = CR.MAX_VAR,
@nomeProfilo = ProfiliDiRischio.NOMEPROFILO,
@riskclass = m.riskclass,
@experience = m.experience
FROM
C6MartPERIODICO.MIFID AS M
INNER JOIN C6MartPERIODICO.CODIFICA_RISCHIO AS CR
ON M.PROFILO_ASS = CR.PROFILO
INNER JOIN DBO.ProfiliDiRischio AS ProfiliDiRischio
ON M.PROFILO_ASS = ProfiliDiRischio.CODICEPROFILO
WHERE
M.RETE = @Rete AND
M.COD_FISCALE = @CodiceFiscale
/* RECUPERO Rischio Mercaro e Rischio Credito BAnca Fideuram */
declare @contaCC as int
select @contaCC = count(*)
from c6martperiodico.patrimonio_Bf
where tipo_prodotto = 'CC' and cod_fiscale = @codiceFiscale and rete = @rete
declare @contaPOS as int
select @contaPOS = count(*)
from c6martperiodico.patrimonio_Bf
where cod_fiscale = @codiceFiscale and rete = @rete
SELECT
@varPatrBF = CASE WHEN (@contaPOS - @contaCC) = 0 THEN 0.00
ELSE RISK_AGG.VAR_PERC_PTF
END,
@riskClassBF = RISK_AGG.CREDITRISK
FROM
(
select
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Fideuram' WHEN PATRBF.RETE='S' THEN 'Patrimonio Sanpaolo Invest' ELSE ' Patrimonio IW Private Inv.' END AS INSTITUTENAME,
SUM(PATRBF.CTV) AS CTV
from
c6martperiodico.patrimonio_bf PATRBF
where
1=1
and cod_fiscale = @codiceFiscale
and rete= @rete
GROUP BY
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Fideuram' WHEN PATRBF.RETE='S' THEN 'Patrimonio Sanpaolo Invest' ELSE 'Patrimonio IW Private Inv.' END
) PATRBF
LEFT OUTER JOIN
c6martperiodico.MIFID AS M
ON
PATRBF.COD_FISCALE=M.COD_FISCALE
AND PATRBF.RETE=M.RETE
LEFT OUTER JOIN c6martperiodico.CODIFICA_RISCHIO AS CR
ON M.PROFILO_ASS = CR.PROFILO
LEFT OUTER JOIN
c6martperiodico.CODIFICA_CREDITRISK CK
ON
M.riskclass=CK.PROFILO
LEFT OUTER JOIN
c6martperiodico.RISCHIO_AGGREGATO RISK_AGG
ON
PATRBF.COD_FISCALE=RISK_AGG.COD_FISCALE
AND PATRBF.RETE=RISK_AGG.RETE
left outer join C6MartPeriodico.COMPLESSITA cmp
on
CMP.COD_FISCALE=PATRBF.COD_FISCALE
AND
CMP.RETE=PATRBF.RETE
where
(
RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF'
)
------------------------ MIFID2 - MAGGIO 2018
select @coperturaBF=copertura
from C6MartPeriodico.RISCHIO_AGGREGATO
-- modifica del 17/10/2018 - Va' preso il compleesivoBF come avviene nella d2_s170_RischioDiversificazione
--where cod_aggreg='comp