146 lines
3.7 KiB
SQL
146 lines
3.7 KiB
SQL
-- =============================================
|
|
-- Author: Fabrizio Caruso
|
|
-- Create date: 17/09/2014
|
|
-- Description: Copia della SP [C6MartPeriodico].[SRV_LISTA_DISALLINEAMENTI_MONIT]
|
|
-- TODO --- Da ottimizzare per Data Quality
|
|
-- =============================================
|
|
CREATE procedure [C6MartPeriodico].[SP_DQ_SelezioneDisallineati]
|
|
AS
|
|
BEGIN
|
|
SELECT
|
|
RETE,
|
|
COD_FISCALE,
|
|
SUBSTRING(CASE WHEN ID_AREA='EXT' THEN 'Exr' ELSE ID_AREA END,0,4) AS ID_AREA,
|
|
isnull(ORDINAMENTO_PROGETTO,0) as ordinamento_progetto,
|
|
SUM(CTV) AS SUM_CTV
|
|
INTO #TEMP_PATRIMONIO_BF_AGGR
|
|
FROM
|
|
C6MARTPERIODICO.PATRIMONIO_BF
|
|
WHERE ID_AREA NOT IN ('CC','NA')
|
|
AND REND_NON_RAPPR=0
|
|
GROUP BY RETE,
|
|
COD_FISCALE,
|
|
SUBSTRING(CASE WHEN ID_AREA='EXT' THEN 'Exr' ELSE ID_AREA END,0,4),
|
|
isnull(ORDINAMENTO_PROGETTO,0)
|
|
--SELECT * INTO #TANAB FROM C6STAGINGPERIODICO.TANAB
|
|
--WHERE CODFIS IN
|
|
--(SELECT DISTINCT COD_FISCALE FROM #TEMP_PATRIMONIO_BF_AGGR)
|
|
SELECT * INTO #TANAB FROM C6STAGINGPERIODICO.TANAB
|
|
WHERE CODFIS IN
|
|
-- Modifica del 28/4/2017 per staging e mart selective
|
|
-- (select cod_fiscale from c6stagingperiodico.appo_contratti)
|
|
(select cod_fiscale from c6stagingperiodico.appo_contratti_v)
|
|
-- Fine modifica del 28/4/2017 per staging e mart selective
|
|
SELECT *
|
|
FROM
|
|
(
|
|
SELECT
|
|
P.RETE,
|
|
P.COD_FISCALE,
|
|
P.ID_AREA,
|
|
m.codarea as mon_area,
|
|
P.ORDINAMENTO_PROGETTO as bf_ordprorg,
|
|
M.CTV CTV_MONIT,
|
|
P.SUM_CTV,
|
|
(isnull(sum_ctv,0) - isnull(m.ctv,0)) as delta,
|
|
m.codprog as mon_codprog
|
|
FROM
|
|
#TANAB M,
|
|
#TEMP_PATRIMONIO_BF_AGGR P
|
|
,C6StagingPeriodico.RP_ChiaviMonitoraggio S
|
|
WHERE
|
|
M.RETE = P.RETE
|
|
AND case when len(m.CODFIS) =4 then 'FF@'+codfis else codfis end = P.COD_FISCALE
|
|
AND M.CODAREA = P.ID_AREA
|
|
AND DTFINE ='99991231'
|
|
AND M.CTV <> P.SUM_CTV
|
|
and m.ctv > 0
|
|
--AND M.CODPROG = isnull(P.ORDINAMENTO_PROGETTO,0)
|
|
AND S.chiaveprogetto=isnull(P.ORDINAMENTO_PROGETTO,0)
|
|
AND M.CODPROG = S.idmonitoraggio
|
|
and id_area ='Inv'
|
|
union all
|
|
SELECT
|
|
P.RETE,
|
|
P.COD_FISCALE,
|
|
P.ID_AREA,
|
|
m.codarea as mon_area,
|
|
P.ORDINAMENTO_PROGETTO,
|
|
M.CTV CTV_MONIT,
|
|
P.SUM_CTV,
|
|
(isnull(sum_ctv,0) - isnull(m.ctv,0)) as delta,
|
|
m.codprog
|
|
FROM
|
|
#TANAB M,
|
|
#TEMP_PATRIMONIO_BF_AGGR P
|
|
WHERE
|
|
M.RETE = P.RETE
|
|
AND case when len(m.CODFIS) =4 then 'FF@'+codfis else codfis end = P.COD_FISCALE
|
|
AND M.CODAREA = P.ID_AREA
|
|
AND DTFINE ='99991231'
|
|
AND M.CTV <> P.SUM_CTV
|
|
and m.ctv > 0
|
|
and id_area <>'Inv'
|
|
union all
|
|
--------------------------------------------
|
|
-- SOLO MONITORAGGIO
|
|
--------------------------------------------
|
|
SELECT
|
|
m.RETE,
|
|
case when len(m.CODFIS) =4 then 'FF@'+codfis else codfis end as cod_fiscale,
|
|
P.ID_AREA,
|
|
m.codarea as mon_area,
|
|
P.ORDINAMENTO_PROGETTO,
|
|
M.CTV CTV_MONIT,
|
|
P.SUM_CTV,
|
|
(isnull(sum_ctv,0) - isnull(m.ctv,0)) as delta,
|
|
m.codprog
|
|
FROM
|
|
#TANAB M
|
|
left outer join
|
|
--#TEMP_PATRIMONIO_BF_AGGR P
|
|
(select T.*,S.idmonitoraggio from
|
|
#TEMP_PATRIMONIO_BF_AGGR T
|
|
,C6StagingPeriodico.RP_ChiaviMonitoraggio S
|
|
where S.chiaveprogetto=isnull(T.ORDINAMENTO_PROGETTO,0)
|
|
)P
|
|
on
|
|
M.RETE = P.RETE
|
|
AND case when len(m.CODFIS) =4 then 'FF@'+codfis else codfis end = P.COD_FISCALE
|
|
AND M.CODAREA = P.ID_AREA
|
|
AND M.CODPROG = P.idmonitoraggio
|
|
AND DTFINE ='99991231'
|
|
where
|
|
m.ctv > 0
|
|
and p.cod_fiscale is null
|
|
--AND M.CODPROG = isnull(P.ORDINAMENTO_PROGETTO,0)
|
|
--and id_area ='Inv'
|
|
and m.codarea ='Inv'
|
|
union all
|
|
SELECT
|
|
m.RETE,
|
|
case when len(m.CODFIS) =4 then 'FF@'+codfis else codfis end as cod_fiscale,
|
|
p.ID_AREA,
|
|
m.codarea as mon_area,
|
|
P.ORDINAMENTO_PROGETTO,
|
|
M.CTV CTV_MONIT,
|
|
P.SUM_CTV,
|
|
(isnull(sum_ctv,0) - isnull(m.ctv,0)) as delta,
|
|
m.codprog
|
|
FROM
|
|
#TANAB M
|
|
left outer join
|
|
#TEMP_PATRIMONIO_BF_AGGR P
|
|
on
|
|
M.RETE = P.RETE
|
|
--AND M.CODFIS = P.COD_FISCALE
|
|
AND case when len(m.CODFIS) =4 then 'FF@'+m.codfis else m.codfis end = P.COD_FISCALE
|
|
AND M.CODAREA = P.ID_AREA
|
|
where
|
|
DTFINE ='99991231'
|
|
and m.ctv > 0
|
|
and p.cod_fiscale is null
|
|
and codarea <>'Inv'
|
|
) k
|
|
order by 2,1
|
|
end |