-- =============================================  
-- Author:  <Alessandro Tringali,,Name>  
-- Create date: <12/05/2010>  
-- Description: <Description,,>  
-- =============================================  
CREATE procedure [C6MartPeriodico].[DM_COMPLESSITA]  
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_COMPLESSITA',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
 TRUNCATE TABLE [C6MartPeriodico].COMPLESSITA  
 INSERT INTO [C6MartPeriodico].[COMPLESSITA]  
           (  
            [RETE]  
           ,[COD_FISCALE]  
           ,[COMPLESSITA]  
           ,[ID_ELAB]  
           ,[TIPO_ELAB])  
    SELECT   
        [RETE],  
        [COD_FISCALE],  
        MAX([COMPLESSITA])  AS [COMPLESSITA],  
  @ID_ELAB AS ID_ELAB,  
  @TIPO_ELAB AS TIPO_ELAB  
FROM  
(  
 SELECT   
        [RETE],  
        [COD_FISCALE],  
        MAX([COMPLEx])  AS [COMPLESSITA]  
 FROM C6MARTPERIODICO.patrimonio_bf  
        where tipo_prodOTTO <>'ASUL'   
        GROUP BY   
        [RETE],  
        [COD_FISCALE]  
    union all  
 SELECT   
        m.[RETE],  
        m.[COD_FISCALE],  
        MAX(c.[COMPLEX])  AS [COMPLESSITA]  
 FROM C6MARTPERIODICO.patrimonio_bf m,  
        c6martperiodico.dettaglio_asul k,  
        c6stagingperiodico.catitemref c  
    where m.cod_fiscale= k.cod_fiscale  
          and m.rete=k.rete  
          and k.id_contratto=m.id_contratto  
          and k.cod_prodotto= c.catalogueid  
          and m.tipo_prodotto='ASUL'  
    group by    
         m.[RETE],  
        m.[COD_FISCALE]  
 ) H  
    group by    
         [RETE],  
         [COD_FISCALE]  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'DM_COMPLESSITA' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE  
   WHERE  
    Nome = 'DM_COMPLESSITA'  
  )  
END