-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
CREATE procedure [C6MartPeriodico].[RP_DM_ASSET_PERC]  
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_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_DM_ASSET_PERC',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
 TRUNCATE TABLE C6MartPeriodico.ASSET_PERC  
 INSERT INTO [C6MartPeriodico].[ASSET_PERC]  
     ([COD_PRODOTTO]  
     ,[ID_ASSETCLASS]  
     ,[COD_ISIN]  
     ,[COD_MAF]  
     ,[COD_INTERNO]  
     ,[COD_SOTTOPRODOTTO]  
     ,[LIVELLO]  
     ,[PERC]  
     ,[ID_ELAB]  
     ,[TIPO_ELAB])  
 SELECT DISTINCT  
  cat.CatalogueID AS COD_PRODOTTO,  
  LTRIM(RTRIM(ac.Asset)) AS ID_ASSETCLASS,  
  cat.CodIsin AS COD_ISIN,  
  cat.CodMaf AS COD_MAF,  
  cat.CodInterno AS COD_INTERNO,  
  cat.CodSottoprodotto AS COD_SOTTOPRODOTTO,  
  ac.Livello AS LIVELLO,  
  LTRIM(RTRIM(map.Percentuale)) AS PERC,  
  @ID_ELAB AS ID_ELAB,  
  @TIPO_ELAB AS TIPO_ELAB  
 FROM  
  C6StagingPeriodico.RP_Mappatura AS map  
 INNER JOIN  
  C6StagingPeriodico.RP_AssetClass AS ac  
 ON  
  map.Asset = ac.Asset  
 INNER JOIN  
  C6StagingPeriodico.RP_CatalogoProdotti cat  
 ON  
  map.ChiaveProdotto = cat.ChiaveProdotto  
  where map.Percentuale >= -999.099 and map.Percentuale <= 999.099
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_DM_ASSET_PERC' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_DM_ASSET_PERC'  
  )  
END