-- ============================================= -- Author: -- Create date: -- Description: -- ============================================= CREATE procedure [C6Mart].[DM_PATRIMONIO_EMITTENTI] AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; SET NOCOUNT ON; DECLARE @ID_ELAB INT DECLARE @TIPO_ELAB VARCHAR(1) SET @ID_ELAB = C6MART.GETIDELAB() SET @TIPO_ELAB = C6MART.GETTIPOELAB() -- Log esecuzione INSERT INTO LOG_ESECUZIONE (Nome, Inizio, Nota) VALUES ( 'DM_PATRIMONIO_EMITTENTI', GETDATE(), 'Elaborazione giornaliera' ) TRUNCATE TABLE C6MART.PATRIMONIO_EMITTENTI INSERT INTO [C6MART].[PATRIMONIO_EMITTENTI] ( COD_FISCALE, RETE, POSITION_ID, COD_PRODOTTO, COD_ADEGUATEZZA, INTERMEDIARIO, CTV_INTERMEDIARIO, CTV_INTER_NOCC_NEG, EMITTENTE, COMPLESSITA, CTV_EMITTENTE, CTV_PRODOTTO, FLG_AZ_OB, CREDITRISKCLASS, CTV_AZIONARIO, CTV_OBBLIGAZIONARIO, CTV_AZ_OB_EMIT, CTV_AZ_OB_EMIT_INTER, CTV_COMPLESSIVO, CTV_COMPL_NOCC_NEG, CONC_EMITTENTE, CONC_EMIT_INTERM, COPERTURA ) SELECT H.COD_FISCALE, H.RETE, H.POSITION_ID, H.COD_PRODOTTO AS CATALOGUENAME, '' AS COD_ADEGUATEZZA, 'BF' AS INTERMEDIARIO, sum(h.ctv) over (partition by h.cod_fiscale, h.rete) AS PATRIMONIO_INTERMEDIARIO, sum(case when h.tipo_prodotto='CC' and h.ctv < 0 then 0 else h.ctv END ) over (partition by h.cod_fiscale, h.rete) AS PATRIMONIO_INTER_nocc_neg, H.EMITTENTE, H.COMPLEX AS COMPLESSITA, sum(h.ctv) over (partition by h.cod_fiscale, H.rete, H.EMITTENTE) AS PATRIMONIO_EMITTENTE, h.ctv as CONTROVALORE_PRODOTTO, CASE WHEN H.STRTYPE IN ('AZ', 'OB') THEN H.STRTYPE ELSE NULL END AS AZ_OB, K.classe AS CREDITRISKCLASS, SUM( case when STRTYPE = 'AZ' then h.ctv else 0 end ) OVER( PARTITION BY H.COD_FISCALE,H.RETE,EMITTENTE, H.POSITION_ID) AS CTV_AZIONARIO, SUM(case when STRTYPE = 'OB' then h.ctv else 0 end ) OVER( PARTITION BY H.COD_FISCALE,H.RETE,EMITTENTE, H.POSITION_ID) AS CTV_OBBLIGAZIONARIO, SUM( case when STRTYPE IN ( 'AZ','OB') then h.ctv else 0 end ) OVER( PARTITION BY H.COD_FISCALE,H.RETE,EMITTENTE) PATRIMONIO_AZ_OB_EMIT, SUM( case when STRTYPE IN ( 'AZ','OB') then h.ctv else 0 end ) OVER( PARTITION BY H.COd_FISCALE,H.RETE,EMITTENTE) PATRIM_AZ_OB_EMIT_INTER, sum(case when h.tipo_prodotto='CC' and h.ctv < 0 then 0 else h.ctv END) over (partition by h.cod_fiscale, h.rete) as PATRIMONIO_COMPLESSIVO, sum(case when h.tipo_prodotto='CC' and h.ctv < 0 then 0 else h.ctv END) over (partition by h.cod_fiscale, h.rete) as PATRIMONIO_COMPL_nocc_neg, 0 as concentrazione_emittente, 0 AS concentraz_emit_interm, r.copertura FROM C6MART.PATRIMONIO_BF H LEFT OUTER join C6MART.RISCHIO_AGGREGATO R on H.COD_FISCALE=R.COD_FISCALE AND H.RETE=R.RETE AND r.COD_AGGREG = CASE WHEN (h.NOME_PROGETTO IS NOT NULL) THEN 'RISFIN|PIRAMIDE|' + LEFT(h.ID_AREA,3) + '|' + h.NOME_PROGETTO+ '|' when LEFT(h.ID_AREA,3)='Na' then 'RISFIN|NA|' ELSE 'RISFIN|PIRAMIDE|' + LEFT(h.ID_AREA,3) + '|' END + ltrim(rtrim(h.POSITION_ID)) left outer join -- --select * from c6mart.rischioEmittenti --select * from c6mart.rischio_aggregato C6Mart.RISCHIOEMITTENTI K on R.CREDITRISKEMIT=ORDINE ---- PATRIMONIO TERZI UNION all SELECT DISTINCT h.COD_FISCALE, h.RETE, '' AS POSITION_ID, H.COD_PRODOTTO AS CATALOGUENAME, '' as COD_ADEGUATEZZA, CASE WHEN h.INTERMEDIARIO = 'BF' THEN NULL ELSE h.INTERMEDIARIO END AS INTERMEDIARIO, sum(ROUND(h.CTV,2)) over (partition by h.cod_fiscale, h.rete) as PATRIMONIO_INTERMEDIARIO, sum(case when h.tipo_prodotto='CC' and ROUND(h.CTV,2) < 0 then 0 else ROUND(h.CTV,2) END ) over (partition by h.cod_fiscale, h.rete) AS PATRIMONIO_INTER_nocc_neg, h.EMITTENTE, h.complex as COMPLESSITA, 0 AS PATRIMONIO_EMITTENTE, ROUND(h.CTV,2) as CONTROVALORE_PRODOTTO, CASE WHEN H.STRTYPE IN ('AZ', 'OB') THEN H.STRTYPE ELSE NULL END AS AZ_OB, K.classe AS CREDITRISKCLASS, SUM( case when STRTYPE = 'AZ' then ROUND(h.CTV,2) else 0 end ) OVER( PARTITION BY H.COd_FISCALE,H.RETE, H.EMITTENTE, H.intermediario, H.COD_PRODOTTO_TERZI) AS CTV_AZIONARIO, --aggiunto il cod_prodotto_terzi per identificare il singolo prodotto SUM(case when STRTYPE = 'OB' then h.ctv else 0 end ) OVER( PARTITION BY H.COD_FISCALE,H.RETE, H.EMITTENTE, H.intermediario, H.COD_PRODOTTO_TERZI ) AS CTV_OBBLIGAZIONARIO, --aggiunto il cod_prodotto_terzi per identificare il singolo prodotto SUM( case when STRTYPE IN ( 'AZ','OB') then ROUND(h.CTV,2) else 0 end ) OVER( PARTITION BY H.COD_FISCALE,H.RETE,EMITTENTE) PATRIMONIO_AZ_OB_EMIT, SUM( case when STRTYPE IN ( 'AZ','OB') then ROUND(h.CTV,2) else 0 end ) OVER( PARTITION BY H.COd_FISCALE,H.RETE,EMITTENTE, h.intermediario ) PATRIM_AZ_OB_EMIT_INTER, sum(case when h.tipo_prodotto='CC' and ROUND(h.CTV,2) < 0 then 0 else h.ctv END) over (partition by h.cod_fiscale, h.rete) as PATRIMONIO_COMPLESSIVO, sum(case when h.tipo_prodotto='CC' and ROUND(h.CTV,2) < 0 then 0 else h.ctv END) over (partition by h.cod_fiscale, h.rete, h.intermediario) as PATRIMONIO_COMPL_nocc_neg, 0 as concentrazione_emittente, 0 as concentraz_emit_interm, r.copertura FROM C6MART.PATRIMONIO_TERZI H LEFT OUTER JOIN C6MART.RISCHIO_AGGREGATO R ON H.COD_FISCALE=R.COD_FISCALE AND H.RETE=R.RETE AND r.COD_AGGREG ='COMPLESSIVO|TERZI|' + RTRIM(H.INTERMEDIARIO) + '|' + RTRIM(H.chiave_thr) LEFT OUTER join C6Mart.RISCHIOEMITTENTI K on R.CREDITRISKEMIT=ORDINE WHERE 1=1 AND H.INTERMEDIARIO <> 'BF' --AND V.POSITIONID=H.COD_PRODOTTO -- Log esecuzione UPDATE LOG_ESECUZIONE SET Fine = GETDATE(), Tipo = 'INSERT', Righe = @@ROWCOUNT WHERE Nome = 'DM_PATRIMONIO_EMITTENTI' AND Inizio = ( SELECT MAX(Inizio) FROM LOG_ESECUZIONE WHERE Nome = 'DM_PATRIMONIO_EMITTENTI' ) END