PDC_REPORT_CreazioneDB/sql/storedTestbes/C6MartPeriodico_DM_CONS_ATTIVAGGIORNATA.sql
2025-06-06 19:02:52 +02:00

202 lines
7.1 KiB
Transact-SQL

--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