-- Schema: C6MartPeriodico -- Stored Procedure: DM_ANAG_PRODOTTI -- ============================================= -- Author: -- Create date: -- Description: -- ============================================= CREATE procedure [C6MartPeriodico].[DM_ANAG_PRODOTTI] AS BEGIN 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 (Nome, Inizio, Nota) VALUES ( 'DM_ANAG_PRODOTTI', GETDATE(), 'Elaborazione trimestrale' ) TRUNCATE TABLE [C6MartPeriodico].ANAG_PRODOTTI INSERT INTO [C6MartPeriodico].[ANAG_PRODOTTI] ([COD_PRODOTTO] ,[COD_ISIN] ,[PAESE] ,[ID_AREA] ,[CAT_PRODOTTO] ,[TIPO_PRODOTTO] ,[DESCR_PRODOTTO] ,[DIV_QUOTAZIONE] ,[DIV_REGOLAMENTO] ,[ID_EMITTENTE] ,[MERCATO_CONTRATT] ,[COD_MAF] ,[RATING] ,[COD_ADEGUATEZZA] ,[COD_SOTTOPRODOTTO] ,[COD_INTERNO] ,[ID_ELAB] ,[TIPO_ELAB] ,[DT_SCADENZA] ,[TIPO_TASSO] ,[TIPO_EMITTENTE] ,[FLG_OB] ) SELECT CATITEMREF.CATALOGUEID AS COD_PRODOTTO, CATITEMREF.COD_ISIN AS COD_ISIN, CATITEMREF.COUNTRY AS PAESE, '' AS ID_AREA, (SELECT CASE SUBSTRING(CATITEMREF.TYPE$_BCATAL_FC317,64,3) WHEN 'Ges' THEN 'Gestito Finanziario' WHEN 'Amm' THEN 'Amministrato' WHEN 'Ass' THEN 'Assicurativo' END) AS CAT_PRODOTTO, CATITEMREF.TIPOPRODOTTO AS TIPO_PRODOTTO, CATITEMREF.CATALOGUENAME AS DESCR_PRODOTTO, CATITEMREF.PRODUCTCURRENCY AS DIV_QUOTAZIONE, NULL AS DIV_REGOLAMENTO, NULL AS ID_EMITTENTE, CATITEMREF.PIAZZA AS MERCATO_CONTRATT, CATITEMREF.COD_MAF AS COD_MAF, CATITEMREF.RATOBBLIG AS RATING, CATITEMREF.COD_ADEGUATEZZA AS COD_ADEGUATEZZA, CATITEMREF.COD_SOTTOPRODOTTO AS COD_SOTTOPRODOTTO, CATITEMREF.COD_INTERNO AS COD_INTERNO, @ID_ELAB AS ID_ELAB, @TIPO_ELAB AS TIPO_ELAB, CATITEMREF.expirationdate AS DT_SCADENZA, CASE WHEN CATITEMREF.TIP_TASSO = '0 CPN' THEN 'Zero Coupon' ELSE CATITEMREF.TIP_TASSO END AS TIPO_TASSO, CATITEMREF.TIP_EMITTENTE AS TIPO_EMITTENTE, CASE WHEN TYPE$_BCATAL_FC317 like '%.Titoli.Ob%' THEN 'S' ELSE 'N' END AS FLG_OB FROM C6STAGINGPERIODICO.CATITEMREF INNER JOIN ( SELECT CATITEMREF.CATALOGUEID, MAX(OID$) AS OID FROM C6STAGINGPERIODICO.CATITEMREF GROUP BY CATITEMREF.CATALOGUEID ) DOPPICATITEMREF ON CATITEMREF.OID$ = DOPPICATITEMREF.OID -- Log esecuzione UPDATE LOG_ESECUZIONE SET Fine = GETDATE(), Tipo = 'INSERT', Righe = @@ROWCOUNT WHERE Nome = 'DM_ANAG_PRODOTTI' AND Inizio = ( SELECT MAX(Inizio) FROM LOG_ESECUZIONE WHERE Nome = 'DM_ANAG_PRODOTTI' ) END