-- ============================================= -- Author: -- Create date: -- Description: -- ============================================= CREATE procedure [C6MartPeriodico].[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 = C6MartPeriodico.GETIDELAB() SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB() -- Log esecuzione INSERT INTO LOG_ESECUZIONE_PERIODICO (Nome, Inizio, Nota) VALUES ( 'DM_PATRIMONIO_EMITTENTI', GETDATE(), 'Elaborazione trimestrale' ) TRUNCATE TABLE C6MartPeriodico.PATRIMONIO_EMITTENTI INSERT INTO [C6MARTPERIODICO].[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 C6MARTPERIODICO.PATRIMONIO_BF H LEFT OUTER join C6MARTPERIODICO.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+ '|'+ isnull(cast(H.ordinamento_progetto as varchar),'')+'|' ELSE CASE WHEN (h.ID_AREA = 'NA') THEN 'RISFIN|' + LEFT(h.ID_AREA,3) + '|' ELSE 'RISFIN|PIRAMIDE|' + LEFT(h.ID_AREA,3) + '|' END END) + h.POSITION_ID) left outer join --select * from --C6MartPeriodico.CODIFICA_CREDITRISK K C6MartPeriodico.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, H.INTERMEDIARIO) 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, H.INTERMEDIARIO) 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 C6MARTPERIODICO.PATRIMONIO_TERZI H LEFT OUTER JOIN C6MARTPERIODICO.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 C6Martperiodico.RISCHIOEMITTENTI K on R.CREDITRISKEMIT=ORDINE WHERE 1=1 AND H.INTERMEDIARIO <> 'BF' --AND V.POSITIONID=H.COD_PRODOTTO -- Log esecuzione UPDATE LOG_ESECUZIONE_PERIODICO SET Fine = GETDATE(), Tipo = 'INSERT', Righe = @@ROWCOUNT WHERE Nome = 'DM_PATRIMONIO_EMITTENTI' AND Inizio = ( SELECT MAX(Inizio) FROM LOG_ESECUZIONE_PERIODICO WHERE Nome = 'DM_PATRIMONIO_EMITTENTI' ) END