--select ordinamento_progetto,id_area,*  
--FROM   
--   C6MARTPERIODICO.PATRIMONIO_BF  
--   WHERE   
--   1=1  
--   AND ID_AREA  not in ('Na', 'Cc')  
--   and ctv >0  
--   and cod_fiscale = 'GNGFRZ63H17D810C'  
--   and id_area like 'pre%'  
--  
--select * from c6martperiodico.cons_attivaggiornata  
--where cod_fiscale = 'GNGFRZ63H17D810C'  
-- =============================================  
-- Author:  ALESSANDRO TRINGALI  
-- Create date: < 26/09/2009>  
-- Description: <Consulenza Aggiornata>  
-- =============================================  
--[C6MartPeriodico]. [CONS_ATTIVAGGIORNATA]   
CREATE procedure [C6MartPeriodico].[DM_CONS_ATTIVAGGIORNATA]  
 -- Add the parameters for the stored procedure here  
 -- Add the parameters for the stored procedure here  
AS  
BEGIN  
 -- riportare le logiche nelle rispettive sp di PL  
 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_CONS_ATTIVAGGIORNATA',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
 TRUNCATE TABLE [C6MartPeriodico]. [CONS_ATTIVAGGIORNATA]  
 INSERT INTO [C6MartPeriodico]. [CONS_ATTIVAGGIORNATA]  
   (        [RETE]  
           ,[COD_FISCALE]  
           ,[ID_AREA]  
           ,[NOME_PROGETTO]  
           ,[TIPO_PROGETTO]  
           ,[PERC_AREA]  
           ,[CTV_PROGETTO]  
           ,[CTV_AREA]  
           ,[ORIZZ_TEMP_NUM]  
           ,[ORIZZ_TEMP]  
           ,[CTV_TOTALE]  
           ,[STATO_CONSULENZA]  
           ,[DATA_STATO_CONS]  
           ,[DATA_MIGR_CONS]  
           ,[DATA_PIANIF]  
           ,[ID_CONTRATTO]  
           ,[ORDINAMENTO_PROGETTO])  
   SELECT  
            [RETE]  
           ,[COD_FISCALE]  
           ,CASE WHEN ID_AREA IN ('Pre','Pre1','Pre2') THEN 'Pre' ELSE ID_AREA END AS  ID_AREA  
           ,[NOME_PROGETTO]  
           ,[TIPO_PROGETTO]  
           ,(MAX(ISNULL(CTV_AREA,0))/MAX(ISNULL(CTV_TOTALE,0)))*100 AS PERC_AREA  
           , MAX(CTV_PROGETTO) AS CTV_PROGETTO  
   ,MAX(CTV_AREA) AS CTV_aREA  
            ,max([ORIZZ_TEMP_NUM])  
            ,max([ORIZZ_TEMP])  
   ,MAX(CTV_TOTALE) AS CTV_TOTALE  
   ,MAX([STATO_CONSULENZA]) AS STATO_CONSULENZA  
   ,MAX([DATA_STATO_CONS]) AS DATA_sTATO_CONS  
            ,max([DATA_MIGR_CONS]) as DATA_MIGR_CONS  
      ,MAX(DATA_PIANIF) AS DATA_PIANIF  
   ,[ID_CONTRATTO]  
           ,[ORDINAMENTO_PROGETTO]  
   FROM  
   (  
   SELECT  
   COD_FISCALE,  
   RETE,  
   ID_AREA,  
   NOME_PROGETTO,  
   CTV,   
            0 AS ID_CONTRATTO,  
            [ORDINAMENTO_PROGETTO],  
            [tipo_progetto],  
   SUM(C6MARTPERIODICO.PATRIMONIO_BF.CTV) OVER (PARTITION BY COD_FISCALE, SUBSTRING(ID_AREA,1,3), NOME_PROGETTO) CTV_PROGETTO,  
   SUM(C6MARTPERIODICO.PATRIMONIO_BF.CTV) OVER (PARTITION BY COD_FISCALE, RETE,SUBSTRING(ID_AREA,1,3)) CTV_AREA,  
   MAX([ORIZZ_TEMP_NUM])OVER (PARTITION BY COD_FISCALE, RETE, SUBSTRING(ID_AREA,1,3), ORDINAMENTO_PROGETTO) AS [ORIZZ_TEMP_NUM],  
   MAX([ORIZZ_TEMP])OVER (PARTITION BY COD_FISCALE, RETE, SUBSTRING(ID_AREA,1,3), ORDINAMENTO_PROGETTO) [ORIZZ_TEMP],  
   SUM([CTV])OVER (PARTITION BY COD_FISCALE) AS CTV_TOTALE,  
   MAX([STATO_CONSULENZA])OVER (PARTITION BY COD_FISCALE, RETE) AS [STATO_CONSULENZA],  
   MAX([DATA_STATO_CONS])OVER (PARTITION BY COD_FISCALE, RETE) AS [DATA_STATO_CONS] ,  
   MAX([DATA_MIGR_CONS])OVER (PARTITION BY COD_FISCALE, RETE) AS [DATA_MIGR_CONS] ,  
   MAX([DATA_PIANIF])OVER (PARTITION BY COD_FISCALE, RETE ) AS DATA_PIANIF  
   FROM   
   C6MARTPERIODICO.PATRIMONIO_BF  
   WHERE   
   1=1  
   AND ID_AREA  not in ('Na', 'Cc','Pre','Pre1','Pre2')  
   and ctv >0  
   ) K  
    GROUP BY   
    COD_FISCALE  
   ,RETE  
   ,CASE WHEN ID_AREA IN ('Pre','Pre1','Pre2') THEN 'Pre' ELSE ID_AREA END  
            ,[NOME_PROGETTO]  
            ,[TIPO_PROGETTO]  
            ,[ID_CONTRATTO]  
            ,[ORDINAMENTO_PROGETTO]  
 INSERT INTO [C6MartPeriodico]. [CONS_ATTIVAGGIORNATA]  
   (        [RETE]  
           ,[COD_FISCALE]  
           ,[ID_AREA]  
           ,[NOME_PROGETTO]  
           ,[TIPO_PROGETTO]  
           ,[PERC_AREA]  
           ,[CTV_PROGETTO]  
           ,[CTV_AREA]  
           ,[ORIZZ_TEMP_NUM]  
           ,[ORIZZ_TEMP]  
           ,[CTV_TOTALE]  
           ,[STATO_CONSULENZA]  
           ,[DATA_STATO_CONS]  
           ,[DATA_MIGR_CONS]  
           ,[DATA_PIANIF]  
           ,[ID_CONTRATTO]  
           ,[ORDINAMENTO_PROGETTO])  
   SELECT  
            [RETE]  
           ,[COD_FISCALE]  
           ,CASE WHEN ID_AREA IN ('Pre','Pre1','Pre2') THEN 'Pre' ELSE ID_AREA END AS  ID_AREA  
           ,[NOME_PROGETTO]  
           ,[TIPO_PROGETTO]  
           ,(MAX(ISNULL(CTV_AREA,0))/MAX(ISNULL(CTV_TOTALE,0)))*100 AS PERC_AREA  
           , MAX(CTV_PROGETTO) AS CTV_PROGETTO  
   ,MAX(CTV_AREA) AS CTV_aREA  
            ,max([ORIZZ_TEMP_NUM])  
            ,max([ORIZZ_TEMP])  
   ,MAX(CTV_TOTALE) AS CTV_TOTALE  
   ,MAX([STATO_CONSULENZA]) AS STATO_CONSULENZA  
   ,MAX([DATA_STATO_CONS]) AS DATA_sTATO_CONS  
            ,max([DATA_MIGR_CONS]) as DATA_MIGR_CONS  
      ,MAX(DATA_PIANIF) AS DATA_PIANIF  
   ,[ID_CONTRATTO]  
           ,MAX([ORDINAMENTO_PROGETTO])  
   FROM  
   (  
   SELECT  
   COD_FISCALE,  
   RETE,  
   ID_AREA,  
   NOME_PROGETTO,  
   CTV,   
            0 AS ID_CONTRATTO,  
            [ORDINAMENTO_PROGETTO],  
            case   
    when extranac = 1  
    then 'Default'   
    else tipo_progetto  
   end as tipo_progetto,  
   SUM(C6MARTPERIODICO.PATRIMONIO_BF.CTV) OVER (PARTITION BY COD_FISCALE, SUBSTRING(ID_AREA,1,3), NOME_PROGETTO) CTV_PROGETTO,  
   SUM(C6MARTPERIODICO.PATRIMONIO_BF.CTV) OVER (PARTITION BY COD_FISCALE, RETE,SUBSTRING(ID_AREA,1,3)) CTV_AREA,  
   MAX([ORIZZ_TEMP_NUM])OVER (PARTITION BY COD_FISCALE, RETE, SUBSTRING(ID_AREA,1,3), ORDINAMENTO_PROGETTO) AS [ORIZZ_TEMP_NUM],  
   MAX([ORIZZ_TEMP])OVER (PARTITION BY COD_FISCALE, RETE, SUBSTRING(ID_AREA,1,3), ORDINAMENTO_PROGETTO) [ORIZZ_TEMP],  
   SUM([CTV])OVER (PARTITION BY COD_FISCALE) AS CTV_TOTALE,  
   MAX([STATO_CONSULENZA])OVER (PARTITION BY COD_FISCALE, RETE) AS [STATO_CONSULENZA],  
   MAX([DATA_STATO_CONS])OVER (PARTITION BY COD_FISCALE, RETE) AS [DATA_STATO_CONS] ,  
   MAX([DATA_MIGR_CONS])OVER (PARTITION BY COD_FISCALE, RETE) AS [DATA_MIGR_CONS] ,  
   MAX([DATA_PIANIF])OVER (PARTITION BY COD_FISCALE, RETE ) AS DATA_PIANIF  
   FROM   
   C6MARTPERIODICO.PATRIMONIO_BF  
   WHERE   
   1=1  
   AND ID_AREA   in ('Pre','Pre1','Pre2')  
   and ctv >0  
   ) K  
    GROUP BY   
    COD_FISCALE  
   ,RETE  
   ,CASE WHEN ID_AREA IN ('Pre','Pre1','Pre2') THEN 'Pre' ELSE ID_AREA END  
            ,[NOME_PROGETTO]  
            ,[TIPO_PROGETTO]  
            ,[ID_CONTRATTO]  
            --,[ORDINAMENTO_PROGETTO]  
-- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'DM_CONS_ATTIVAGGIORNATA' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'DM_CONS_ATTIVAGGIORNATA'  
  )  
END