Files
2024-05-13 12:54:14 +02:00

2112 lines
98 KiB
SQL

CREATE TABLE mnp_report_agcom
(
anno Varchar(4),
mese Varchar(2),
tipo Varchar(10),
csv Varchar(4000),
data_creazione DATE DEFAULT SYSDATE NOT NULL
)
TABLESPACE TAB_DWH
/
ALTER TABLE mnp_report_agcom ADD (
CONSTRAINT PK_mnp_report_agcom
PRIMARY KEY
(anno,mese,tipo)
USING INDEX
TABLESPACE TAB_IDX_MEDIUM
);
------------package
-----------------------------------------------------------------
-----------------------------------------------------------------
-----------------------------------------------------------------
CREATE OR REPLACE PACKAGE dwh.agcom
IS
PROCEDURE runallbydate;
PROCEDURE runall (anno IN VARCHAR, mese IN VARCHAR);
PROCEDURE calc1r (anno IN VARCHAR, mese IN VARCHAR);
PROCEDURE calc2r (anno IN VARCHAR, mese IN VARCHAR);
PROCEDURE calc3r (anno IN VARCHAR, mese IN VARCHAR);
PROCEDURE calc3d (anno IN VARCHAR, mese IN VARCHAR);
PROCEDURE calc4r (anno IN VARCHAR, mese IN VARCHAR);
PROCEDURE calc4d (anno IN VARCHAR, mese IN VARCHAR);
PROCEDURE calc5t (anno IN VARCHAR, mese IN VARCHAR);
PROCEDURE calc6 (anno IN VARCHAR, mese IN VARCHAR);
PROCEDURE calc5a (anno IN VARCHAR, mese IN VARCHAR);
PROCEDURE calc5s (anno IN VARCHAR, mese IN VARCHAR);
PROCEDURE calc7 (anno IN VARCHAR, mese IN VARCHAR);
PROCEDURE calc8r_1 (anno IN VARCHAR, mese IN VARCHAR);
PROCEDURE calc8r_2 (anno IN VARCHAR, mese IN VARCHAR);
PROCEDURE calc8r_3 (anno IN VARCHAR, mese IN VARCHAR);
PROCEDURE calcdatigenerali (anno IN VARCHAR, mese IN VARCHAR);
END;
/
CREATE OR REPLACE PACKAGE BODY dwh.agcom
IS
PROCEDURE runall (anno IN VARCHAR, mese IN VARCHAR)
IS
BEGIN
calc1r (anno, mese);
calc2r (anno, mese);
calc3r (anno, mese);
calc3d (anno, mese);
calc4r (anno, mese);
calc4d (anno, mese);
calc5t (anno, mese);
calc6 (anno, mese);
calc5a (anno, mese);
calc5s (anno, mese);
calc7 (anno, mese);
calc8r_1 (anno, mese);
calc8r_2 (anno, mese);
calc8r_3 (anno, mese);
calcdatigenerali (anno, mese);
END;
PROCEDURE runallbydate
IS
anno VARCHAR (4);
mese VARCHAR (2);
BEGIN
anno := TO_CHAR (ADD_MONTHS (SYSDATE, -1), 'yyyy');
mese := TO_CHAR (ADD_MONTHS (SYSDATE, -1), 'mm');
runall (anno, mese);
END;
PROCEDURE calc1r (anno IN VARCHAR, mese IN VARCHAR)
IS
-- COSTANTI
tipo VARCHAR (10) NOT NULL DEFAULT '1R';
returncar VARCHAR (1) NOT NULL DEFAULT CHR (13);
spaziocar VARCHAR (1) NOT NULL DEFAULT CHR (10);
--
data_inizio DATE;
data_fine DATE;
line VARCHAR (1000);
csv VARCHAR (4000);
CURSOR cur_res (data_inizio DATE, data_fine DATE)
IS
SELECT 'TIMG' || ';' || donor || ';' || richieste || ';' AS csv
FROM (SELECT NVL (an.id_amministrativo, ss.don) donor, ss.rec recipient,
NVL (SUM (ss.richieste), 0) richieste
FROM (SELECT codice_operatore_don_eff don, codice_operatore_rec_eff rec,
COUNT (a.id_richiesta) AS richieste
FROM mnp.mnp_gestione_richiesta_rec@mnp a
WHERE dataricezionerichiesta BETWEEN data_inizio AND data_fine
AND a.codice_operatore_rec_eff = 'TIMG'
AND a.richiestaadhoc = 0
AND id_richiesta NOT IN (
SELECT id_richiesta
FROM mnp.mnp_storico_richiesta_rec@mnp
WHERE stato_a = 3
AND stato_da = -1
AND dataricezionerichiesta BETWEEN data_inizio AND data_fine)
GROUP BY codice_operatore_don_eff, codice_operatore_rec_eff
UNION ALL
SELECT a.codice_operatore_donating don,
a.codice_operatore_recipient rec,
COUNT (a.id_richiesta) AS richieste
FROM mnp.mnp_gest_rich_donor_virt@mnp a
WHERE a.dataricezionerichiesta BETWEEN data_inizio AND data_fine
AND a.codice_operatore_recipient = 'TIMG'
AND a.richiestaadhoc = 0
AND a.id_richiesta NOT IN (
SELECT id_richiesta
FROM mnp.mnp_storico_rich_don_virt@mnp
WHERE stato_a = 3
AND stato_da = 1
AND dataricezionerichiesta BETWEEN data_inizio AND data_fine)
GROUP BY codice_operatore_donating, codice_operatore_recipient) ss,
mnp.mnp_anagrafica_operatori@mnp an
WHERE an.id_operatore = ss.don (+)
GROUP BY an.id_amministrativo, ss.don, ss.rec
ORDER BY ss.don);
BEGIN
data_inizio := TO_DATE (anno || '-' || mese || '-01', 'yyyy-mm-dd');
data_fine := LAST_DAY (data_inizio);
OPEN cur_res (data_inizio, data_fine);
LOOP
FETCH cur_res
INTO line;
EXIT WHEN cur_res%NOTFOUND;
csv := csv || line || returncar || spaziocar;
END LOOP;
CLOSE cur_res;
INSERT INTO mnp_report_agcom
(anno, mese, tipo, csv
)
VALUES (anno, mese, tipo, csv
);
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line (SQLERRM);
END;
PROCEDURE calc2r (anno IN VARCHAR, mese IN VARCHAR)
IS
-- COSTANTI
tipo VARCHAR (10) NOT NULL DEFAULT '2R';
returncar VARCHAR (1) NOT NULL DEFAULT CHR (13);
spaziocar VARCHAR (1) NOT NULL DEFAULT CHR (10);
--
line VARCHAR (1000);
csv VARCHAR (4000);
CURSOR cur_res
IS
SELECT 'TIMG' || ';' || donor || ';' || richieste || ';' AS csv
FROM (SELECT NVL (an.id_amministrativo, ss.don) donor, ss.rec recipient,
NVL (SUM (ss.richieste),0) richieste
FROM (SELECT codice_operatore_don_eff don, codice_operatore_rec_eff rec,
COUNT (id_richiesta) AS richieste
FROM mnp.mnp_gestione_richiesta_rec@mnp
WHERE codice_operatore_rec_eff = 'TIMG'
AND richiestaadhoc = 0
AND stato IN (2, 3)
GROUP BY codice_operatore_don_eff, codice_operatore_rec_eff
UNION
SELECT codice_operatore_donating don, codice_operatore_recipient rec,
COUNT (a.id_richiesta) AS richieste
FROM mnp.mnp_gest_rich_donor_virt@mnp a
WHERE a.codice_operatore_recipient = 'TIMG'
AND a.richiestaadhoc = 0
AND stato IN (1, 3)
GROUP BY codice_operatore_donating, codice_operatore_recipient) ss,
mnp.mnp_anagrafica_operatori@mnp an
WHERE an.id_operatore = ss.don(+)
GROUP BY an.id_amministrativo, ss.don, ss.rec
ORDER BY ss.don);
BEGIN
OPEN cur_res;
LOOP
FETCH cur_res
INTO line;
EXIT WHEN cur_res%NOTFOUND;
csv := csv || line || returncar || spaziocar;
END LOOP;
CLOSE cur_res;
INSERT INTO mnp_report_agcom
(anno, mese, tipo, csv
)
VALUES (anno, mese, tipo, csv
);
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line (SQLERRM);
END;
PROCEDURE calc3r (anno IN VARCHAR, mese IN VARCHAR)
IS
-- COSTANTI
tipo VARCHAR (10) NOT NULL DEFAULT '3R';
returncar VARCHAR (1) NOT NULL DEFAULT CHR (13);
spaziocar VARCHAR (1) NOT NULL DEFAULT CHR (10);
--
data_inizio DATE;
data_fine DATE;
line VARCHAR (1000);
csv VARCHAR (4000);
CURSOR cur_res (data_inizio DATE, data_fine DATE)
IS
SELECT d || ';' || DON || ';' || v || ';' AS csv
FROM (
SELECT 1 AS ord, '1 - NON UNIVOCITÀ DEL CODICE RICHIESTA' AS d, g.codice_operatore_don_eff don,
NVL (COUNT (g.id_richiesta), 0) v
FROM mnp.mnp_gestione_richiesta_rec@mnp g
WHERE stato IN (9)
AND dataricezionerichiesta BETWEEN data_inizio AND data_fine
AND codice_operatore_rec_eff = 'TIMG'
AND richiestaadhoc = 0
GROUP BY g.codice_operatore_don_eff
UNION
SELECT 2 AS ord,
DECODE (c.codice_causale,
3, '2 - MANUTENZIONE PROGRAMMATA',
8, '3 - OVERFLOW',
7, '4 - WAITING LIST',
NULL
) AS d,
codice_operatore_don_eff AS don, COUNT (g.causale_accodamento) AS v
FROM mnp.mnp_causale_accodamento@mnp c, mnp.mnp_gestione_richiesta_rec@mnp g
WHERE stato IN (5)
AND g.causale_accodamento = c.desc_causale
AND dataricezionerichiesta BETWEEN data_inizio AND data_fine
AND codice_operatore_rec_eff = 'TIMG'
AND richiestaadhoc = 0
AND c.codice_causale IN (3, 7, 8)
GROUP BY 2,
DECODE (c.codice_causale,
3, '2 - MANUTENZIONE PROGRAMMATA',
8, '3 - OVERFLOW',
7, '4 - WAITING LIST',
NULL
),
codice_operatore_don_eff
UNION
SELECT 3 AS ord, c.cod_causale_rifiuto || '-' || c.causale AS d,
a.codice_operatore_don_eff AS don, COUNT (c.cod_causale_rifiuto)
FROM mnp.mnp_gestione_richiesta_rec@mnp a, mnp.mnp_causale_rifiuto@mnp c
WHERE a.codice_rifiuto_validazione LIKE '%' || c.cod_causale_rifiuto || ';%'
AND stato = 7
AND dataricezionerichiesta BETWEEN data_inizio AND data_fine
AND codice_operatore_rec_eff = 'TIMG'
AND richiestaadhoc = 0
AND c.cod_causale_rifiuto BETWEEN 20 AND 30
GROUP BY 3, c.cod_causale_rifiuto || '-' || c.causale, a.codice_operatore_don_eff
UNION
SELECT 15 AS ord, 'VALIDATE POSITIVAMENTE' AS d, a.codice_operatore_don_eff AS don,
COUNT (s.id_richiesta) AS v
FROM mnp.mnp_storico_richiesta_rec@mnp s, mnp.mnp_gestione_richiesta_rec@mnp a
WHERE a.id_richiesta = s.id_richiesta
AND s.stato_a = 8
AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine
AND a.richiestaadhoc = 0
AND a.codice_operatore_rec_eff = 'TIMG'
GROUP BY 15, 'VALIDATE POSITIVAMENTE', a.codice_operatore_don_eff
UNION
SELECT 4 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 1 CAUSALE' AS d,
a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v
FROM mnp.mnp_storico_richiesta_rec@mnp s, mnp.mnp_gestione_richiesta_rec@mnp a
WHERE a.id_richiesta = s.id_richiesta
AND s.stato_a = 7
AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine
AND a.richiestaadhoc = 0
AND a.codice_operatore_rec_eff = 'TIMG'
AND LENGTH (a.codice_rifiuto_validazione) = 3
GROUP BY 4, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 1 CAUSALE', a.codice_operatore_don_eff
UNION
SELECT 5 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 2 CAUSALE' AS d,
a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v
FROM mnp.mnp_storico_richiesta_rec@mnp s, mnp.mnp_gestione_richiesta_rec@mnp a
WHERE a.id_richiesta = s.id_richiesta
AND s.stato_a = 7
AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine
AND a.richiestaadhoc = 0
AND a.codice_operatore_rec_eff = 'TIMG'
AND LENGTH (a.codice_rifiuto_validazione) = 6
GROUP BY 5, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 2 CAUSALE', a.codice_operatore_don_eff
UNION
SELECT 6 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 3 CAUSALE' AS d,
a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v
FROM mnp.mnp_storico_richiesta_rec@mnp s, mnp.mnp_gestione_richiesta_rec@mnp a
WHERE a.id_richiesta = s.id_richiesta
AND s.stato_a = 7
AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine
AND a.richiestaadhoc = 0
AND a.codice_operatore_rec_eff = 'TIMG'
AND LENGTH (a.codice_rifiuto_validazione) = 9
GROUP BY 6, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 3 CAUSALE', a.codice_operatore_don_eff
UNION
SELECT 7 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 4 CAUSALE' AS d,
a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v
FROM mnp.mnp_storico_richiesta_rec@mnp s, mnp.mnp_gestione_richiesta_rec@mnp a
WHERE a.id_richiesta = s.id_richiesta
AND s.stato_a = 7
AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine
AND a.richiestaadhoc = 0
AND a.codice_operatore_rec_eff = 'TIMG'
AND LENGTH (a.codice_rifiuto_validazione) = 12
GROUP BY 7, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 4 CAUSALE', a.codice_operatore_don_eff
UNION
SELECT 8 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 5 CAUSALE' AS d,
a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v
FROM mnp.mnp_storico_richiesta_rec@mnp s, mnp.mnp_gestione_richiesta_rec@mnp a
WHERE a.id_richiesta = s.id_richiesta
AND s.stato_a = 7
AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine
AND a.richiestaadhoc = 0
AND a.codice_operatore_rec_eff = 'TIMG'
AND LENGTH (a.codice_rifiuto_validazione) = 15
GROUP BY 8, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 5 CAUSALE', a.codice_operatore_don_eff
UNION
SELECT 9 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 6 CAUSALE' AS d,
a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v
FROM mnp.mnp_storico_richiesta_rec@mnp s, mnp.mnp_gestione_richiesta_rec@mnp a
WHERE a.id_richiesta = s.id_richiesta
AND s.stato_a = 7
AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine
AND a.richiestaadhoc = 0
AND a.codice_operatore_rec_eff = 'TIMG'
AND LENGTH (a.codice_rifiuto_validazione) = 18
GROUP BY 9, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 6 CAUSALE', a.codice_operatore_don_eff
UNION
SELECT 10 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 7 CAUSALE' AS d,
a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v
FROM mnp.mnp_storico_richiesta_rec@mnp s, mnp.mnp_gestione_richiesta_rec@mnp a
WHERE a.id_richiesta = s.id_richiesta
AND s.stato_a = 7
AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine
AND a.richiestaadhoc = 0
AND a.codice_operatore_rec_eff = 'TIMG'
AND LENGTH (a.codice_rifiuto_validazione) = 21
GROUP BY 10, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 7 CAUSALE', a.codice_operatore_don_eff
UNION
SELECT 11 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 8 CAUSALE' AS d,
a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v
FROM mnp.mnp_storico_richiesta_rec@mnp s, mnp.mnp_gestione_richiesta_rec@mnp a
WHERE a.id_richiesta = s.id_richiesta
AND s.stato_a = 7
AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine
AND a.richiestaadhoc = 0
AND a.codice_operatore_rec_eff = 'TIMG'
AND LENGTH (a.codice_rifiuto_validazione) = 24
GROUP BY 11, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 8 CAUSALE', a.codice_operatore_don_eff
UNION
SELECT 12 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 9 CAUSALE' AS d,
a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v
FROM mnp.mnp_storico_richiesta_rec@mnp s, mnp.mnp_gestione_richiesta_rec@mnp a
WHERE a.id_richiesta = s.id_richiesta
AND s.stato_a = 7
AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine
AND a.richiestaadhoc = 0
AND a.codice_operatore_rec_eff = 'TIMG'
AND LENGTH (a.codice_rifiuto_validazione) = 27
GROUP BY 12, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 9 CAUSALE', a.codice_operatore_don_eff
UNION
SELECT 13 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 10 CAUSALE' AS d,
a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v
FROM mnp.mnp_storico_richiesta_rec@mnp s, mnp.mnp_gestione_richiesta_rec@mnp a
WHERE a.id_richiesta = s.id_richiesta
AND s.stato_a = 7
AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine
AND a.richiestaadhoc = 0
AND a.codice_operatore_rec_eff = 'TIMG'
AND LENGTH (a.codice_rifiuto_validazione) = 30
GROUP BY 13, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 10 CAUSALE', a.codice_operatore_don_eff
UNION
SELECT 14 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 11 CAUSALE' AS d,
a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v
FROM mnp.mnp_storico_richiesta_rec@mnp s, mnp.mnp_gestione_richiesta_rec@mnp a
WHERE a.id_richiesta = s.id_richiesta
AND s.stato_a = 7
AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine
AND a.richiestaadhoc = 0
AND a.codice_operatore_rec_eff = 'TIMG'
AND LENGTH (a.codice_rifiuto_validazione) = 33
GROUP BY 14, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 11 CAUSALE', a.codice_operatore_don_eff
)
ORDER BY ord;
BEGIN
data_inizio := TO_DATE (anno || '-' || mese || '-01', 'yyyy-mm-dd');
data_fine := LAST_DAY (data_inizio);
OPEN cur_res (data_inizio, data_fine);
LOOP
FETCH cur_res
INTO line;
EXIT WHEN cur_res%NOTFOUND;
csv := csv || line || returncar || spaziocar;
END LOOP;
CLOSE cur_res;
INSERT INTO mnp_report_agcom
(anno, mese, tipo, csv
)
VALUES (anno, mese, tipo, csv
);
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line (SQLERRM);
END;
PROCEDURE calc3d (anno IN VARCHAR, mese IN VARCHAR)
IS
-- COSTANTI
tipo VARCHAR (10) NOT NULL DEFAULT '3D';
returncar VARCHAR (1) NOT NULL DEFAULT CHR (13);
spaziocar VARCHAR (1) NOT NULL DEFAULT CHR (10);
--
data_inizio DATE;
data_fine DATE;
line VARCHAR (1000);
csv VARCHAR (4000);
CURSOR cur_res (data_inizio DATE, data_fine DATE)
IS
SELECT d || ';' || REC || ';' || v || ';' AS csv
FROM (
SELECT 1 AS ord, '1 - NON UNIVOCITÀ DEL CODICE RICHIESTA' AS d, G.CODICE_OPERATORE_REC_EFF as REC, NVL(COUNT (g.id_richiesta),0) as V
FROM mnp.mnp_gestione_richiesta@mnp g
WHERE stato IN (12)
AND dataricezionerichiesta BETWEEN data_inizio AND data_fine
AND codice_operatore_don_eff = 'TIMG'
AND richiestaadhoc = 0
GROUP BY G.CODICE_OPERATORE_REC_EFF
UNION
SELECT 2 AS ord,
DECODE (c.codice_causale,
3, '2 - MANUTENZIONE PROGRAMMATA',
8, '3 - OVERFLOW',
7, '4 - WAITING LIST',
NULL
) AS d, G.CODICE_OPERATORE_REC_EFF AS REC, COUNT (g.cod_controllo_presaincarico) AS v
FROM mnp.mnp_causale_accodamento@mnp c, mnp.mnp_gestione_richiesta@mnp g
WHERE stato IN (4)
AND g.cod_controllo_presaincarico = c.codice_causale
AND dataricezionerichiesta BETWEEN data_inizio AND data_fine
AND codice_operatore_don_eff = 'TIMG'
AND richiestaadhoc = 0
GROUP BY 2 ,
DECODE (c.codice_causale,
3, '2 - MANUTENZIONE PROGRAMMATA',
8, '3 - OVERFLOW',
7, '4 - WAITING LIST',
NULL
) , G.CODICE_OPERATORE_REC_EFF
UNION
SELECT 3 AS ord, c.cod_causale_rifiuto || '-' || c.causale AS D, A.CODICE_OPERATORE_REC_EFF AS REC,
COUNT (c.cod_causale_rifiuto) AS V
FROM mnp.mnp_gestione_richiesta@mnp a, mnp.mnp_causale_rifiuto@mnp c
WHERE a.codice_rifiuto_validazione LIKE
'%' || c.cod_causale_rifiuto || ';%'
AND stato = 10
AND dataricezionerichiesta BETWEEN data_inizio AND data_fine
AND codice_operatore_don_eff = 'TIMG'
AND richiestaadhoc = 0
AND c.cod_causale_rifiuto BETWEEN 20 AND 30
group by 3 , c.cod_causale_rifiuto || '-' || c.causale , A.CODICE_OPERATORE_REC_EFF
UNION
SELECT 5 AS ord, 'VALIDATE POSITIVAMENTE' AS d, A.CODICE_OPERATORE_REC_EFF as REC,
COUNT (s.id_richiesta) AS v
FROM mnp.mnp_storico_richiesta@mnp s,
mnp.mnp_gestione_richiesta@mnp a
WHERE a.id_richiesta = s.id_richiesta
AND s.stato_a = 7
AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine
AND a.richiestaadhoc = 0
AND a.codice_operatore_don_eff = 'TIMG'
GROUP BY 5 , 'VALIDATE POSITIVAMENTE' , A.CODICE_OPERATORE_REC_EFF
UNION
SELECT 6 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 1 CAUSALE' AS d,
a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v
FROM mnp.mnp_storico_richiesta@mnp s, mnp.mnp_gestione_richiesta@mnp a
WHERE a.id_richiesta = s.id_richiesta
AND s.stato_a = 10
AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine
AND a.richiestaadhoc = 0
AND a.codice_operatore_don_eff = 'TIMG'
AND LENGTH (a.codice_rifiuto_validazione) = 3
GROUP BY 4, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 1 CAUSALE', a.codice_operatore_don_eff
UNION
SELECT 7 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 2 CAUSALE' AS d,
a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v
FROM mnp.mnp_storico_richiesta@mnp s, mnp.mnp_gestione_richiesta@mnp a
WHERE a.id_richiesta = s.id_richiesta
AND s.stato_a = 10
AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine
AND a.richiestaadhoc = 0
AND a.codice_operatore_don_eff = 'TIMG'
AND LENGTH (a.codice_rifiuto_validazione) = 6
GROUP BY 7, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 2 CAUSALE', a.codice_operatore_don_eff
UNION
SELECT 8 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 3 CAUSALE' AS d,
a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v
FROM mnp.mnp_storico_richiesta@mnp s, mnp.mnp_gestione_richiesta@mnp a
WHERE a.id_richiesta = s.id_richiesta
AND s.stato_a = 10
AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine
AND a.richiestaadhoc = 0
AND a.codice_operatore_don_eff = 'TIMG'
AND LENGTH (a.codice_rifiuto_validazione) = 9
GROUP BY 8, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 3 CAUSALE', a.codice_operatore_don_eff
UNION
SELECT 9 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 4 CAUSALE' AS d,
a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v
FROM mnp.mnp_storico_richiesta@mnp s, mnp.mnp_gestione_richiesta@mnp a
WHERE a.id_richiesta = s.id_richiesta
AND s.stato_a = 10
AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine
AND a.richiestaadhoc = 0
AND a.codice_operatore_don_eff = 'TIMG'
AND LENGTH (a.codice_rifiuto_validazione) = 12
GROUP BY 9, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 4 CAUSALE', a.codice_operatore_don_eff
UNION
SELECT 10 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 5 CAUSALE' AS d,
a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v
FROM mnp.mnp_storico_richiesta@mnp s, mnp.mnp_gestione_richiesta@mnp a
WHERE a.id_richiesta = s.id_richiesta
AND s.stato_a = 10
AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine
AND a.richiestaadhoc = 0
AND a.codice_operatore_don_eff = 'TIMG'
AND LENGTH (a.codice_rifiuto_validazione) = 15
GROUP BY 10, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 5 CAUSALE', a.codice_operatore_don_eff
UNION
SELECT 11 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 6 CAUSALE' AS d,
a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v
FROM mnp.mnp_storico_richiesta@mnp s, mnp.mnp_gestione_richiesta@mnp a
WHERE a.id_richiesta = s.id_richiesta
AND s.stato_a = 10
AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine
AND a.richiestaadhoc = 0
AND a.codice_operatore_don_eff = 'TIMG'
AND LENGTH (a.codice_rifiuto_validazione) = 18
GROUP BY 11, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 6 CAUSALE', a.codice_operatore_don_eff
UNION
SELECT 12 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 7 CAUSALE' AS d,
a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v
FROM mnp.mnp_storico_richiesta@mnp s, mnp.mnp_gestione_richiesta@mnp a
WHERE a.id_richiesta = s.id_richiesta
AND s.stato_a = 10
AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine
AND a.richiestaadhoc = 0
AND a.codice_operatore_don_eff = 'TIMG'
AND LENGTH (a.codice_rifiuto_validazione) = 21
GROUP BY 12, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 7 CAUSALE', a.codice_operatore_don_eff
UNION
SELECT 13 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 8 CAUSALE' AS d,
a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v
FROM mnp.mnp_storico_richiesta@mnp s, mnp.mnp_gestione_richiesta@mnp a
WHERE a.id_richiesta = s.id_richiesta
AND s.stato_a = 10
AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine
AND a.richiestaadhoc = 0
AND a.codice_operatore_don_eff = 'TIMG'
AND LENGTH (a.codice_rifiuto_validazione) = 24
GROUP BY 12, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 8 CAUSALE', a.codice_operatore_don_eff
UNION
SELECT 13 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 9 CAUSALE' AS d,
a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v
FROM mnp.mnp_storico_richiesta@mnp s, mnp.mnp_gestione_richiesta@mnp a
WHERE a.id_richiesta = s.id_richiesta
AND s.stato_a = 10
AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine
AND a.richiestaadhoc = 0
AND a.codice_operatore_don_eff = 'TIMG'
AND LENGTH (a.codice_rifiuto_validazione) = 27
GROUP BY 13, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 9 CAUSALE', a.codice_operatore_don_eff
UNION
SELECT 14 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 10 CAUSALE' AS d,
a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v
FROM mnp.mnp_storico_richiesta@mnp s, mnp.mnp_gestione_richiesta@mnp a
WHERE a.id_richiesta = s.id_richiesta
AND s.stato_a = 10
AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine
AND a.richiestaadhoc = 0
AND a.codice_operatore_don_eff = 'TIMG'
AND LENGTH (a.codice_rifiuto_validazione) = 30
GROUP BY 14, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 10 CAUSALE', a.codice_operatore_don_eff
UNION
SELECT 15 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 11 CAUSALE' AS d,
a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v
FROM mnp.mnp_storico_richiesta@mnp s, mnp.mnp_gestione_richiesta@mnp a
WHERE a.id_richiesta = s.id_richiesta
AND s.stato_a = 10
AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine
AND a.richiestaadhoc = 0
AND a.codice_operatore_don_eff = 'TIMG'
AND LENGTH (a.codice_rifiuto_validazione) = 33
GROUP BY 15, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 11 CAUSALE', a.codice_operatore_don_eff
)
ORDER BY ord;
BEGIN
data_inizio := TO_DATE (anno || '-' || mese || '-01', 'yyyy-mm-dd');
data_fine := LAST_DAY (data_inizio);
OPEN cur_res (data_inizio, data_fine);
LOOP
FETCH cur_res
INTO line;
EXIT WHEN cur_res%NOTFOUND;
csv := csv || line || returncar || spaziocar;
END LOOP;
CLOSE cur_res;
INSERT INTO mnp_report_agcom
(anno, mese, tipo, csv
)
VALUES (anno, mese, tipo, csv
);
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line (SQLERRM);
END;
----------------------------------------------------------------------------------------------
PROCEDURE calc4r (anno IN VARCHAR, mese IN VARCHAR)
IS
-- COSTANTI
tipo VARCHAR (10) NOT NULL DEFAULT '4R';
returncar VARCHAR (1) NOT NULL DEFAULT CHR (13);
spaziocar VARCHAR (1) NOT NULL DEFAULT CHR (10);
--
data_inizio DATE;
data_fine DATE;
line VARCHAR (1000);
csv VARCHAR (4000);
CURSOR cur_res (data_inizio DATE, data_fine DATE)
IS
SELECT d || ';' || DON || ';' || v || ';' AS csv
FROM (
SELECT 1 AS ord, '1 - NON UNIVOCITÀ DEL CODICE RICHIESTA' AS d, g.codice_operatore_don_eff don,
NVL (COUNT (g.id_richiesta), 0) v
FROM mnp.mnp_gestione_richiesta_rec@mnp g
WHERE stato IN (9)
AND dataricezionerichiesta BETWEEN data_inizio AND data_fine
AND codice_operatore_rec_eff = 'TIMG'
AND richiestaadhoc = 0
AND FLAG_PREVALIDAZIONE ='Y'
GROUP BY g.codice_operatore_don_eff
UNION
SELECT 2 AS ord,
DECODE (c.codice_causale,
3, '2 - MANUTENZIONE PROGRAMMATA',
8, '3 - OVERFLOW',
7, '4 - WAITING LIST',
NULL
) AS d,
codice_operatore_don_eff AS don, COUNT (g.causale_accodamento) AS v
FROM mnp.mnp_causale_accodamento@mnp c, mnp.mnp_gestione_richiesta_rec@mnp g
WHERE stato IN (5)
AND g.causale_accodamento = c.desc_causale
AND dataricezionerichiesta BETWEEN data_inizio AND data_fine
AND codice_operatore_rec_eff = 'TIMG'
AND richiestaadhoc = 0
AND c.codice_causale IN (3, 7, 8)
AND FLAG_PREVALIDAZIONE ='Y'
GROUP BY 2,
DECODE (c.codice_causale,
3, '2 - MANUTENZIONE PROGRAMMATA',
8, '3 - OVERFLOW',
7, '4 - WAITING LIST',
NULL
),
codice_operatore_don_eff
UNION
SELECT 3 AS ord, c.cod_causale_rifiuto || '-' || c.causale AS d,
a.codice_operatore_don_eff AS don, COUNT (c.cod_causale_rifiuto)
FROM mnp.mnp_gestione_richiesta_rec@mnp a, mnp.mnp_causale_rifiuto@mnp c
WHERE a.codice_rifiuto_validazione LIKE '%' || c.cod_causale_rifiuto || ';%'
AND stato = 7
AND dataricezionerichiesta BETWEEN data_inizio AND data_fine
AND codice_operatore_rec_eff = 'TIMG'
AND richiestaadhoc = 0
AND c.cod_causale_rifiuto BETWEEN 20 AND 30
AND FLAG_PREVALIDAZIONE ='Y'
GROUP BY 3, c.cod_causale_rifiuto || '-' || c.causale, a.codice_operatore_don_eff
UNION
SELECT 15 AS ord, 'VALIDATE POSITIVAMENTE' AS d, a.codice_operatore_don_eff AS don,
COUNT (s.id_richiesta) AS v
FROM mnp.mnp_storico_richiesta_rec@mnp s, mnp.mnp_gestione_richiesta_rec@mnp a
WHERE a.id_richiesta = s.id_richiesta
AND s.stato_a = 8
AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine
AND a.richiestaadhoc = 0
AND a.codice_operatore_rec_eff = 'TIMG'
AND FLAG_PREVALIDAZIONE ='Y'
GROUP BY 15, 'VALIDATE POSITIVAMENTE', a.codice_operatore_don_eff
UNION
SELECT 4 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 1 CAUSALE' AS d,
a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v
FROM mnp.mnp_storico_richiesta_rec@mnp s, mnp.mnp_gestione_richiesta_rec@mnp a
WHERE a.id_richiesta = s.id_richiesta
AND s.stato_a = 7
AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine
AND a.richiestaadhoc = 0
AND a.codice_operatore_rec_eff = 'TIMG'
AND LENGTH (a.codice_rifiuto_validazione) = 3
AND FLAG_PREVALIDAZIONE ='Y'
GROUP BY 4, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 1 CAUSALE', a.codice_operatore_don_eff
UNION
SELECT 5 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 2 CAUSALE' AS d,
a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v
FROM mnp.mnp_storico_richiesta_rec@mnp s, mnp.mnp_gestione_richiesta_rec@mnp a
WHERE a.id_richiesta = s.id_richiesta
AND s.stato_a = 7
AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine
AND a.richiestaadhoc = 0
AND a.codice_operatore_rec_eff = 'TIMG'
AND LENGTH (a.codice_rifiuto_validazione) = 6
AND FLAG_PREVALIDAZIONE ='Y'
GROUP BY 5, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 2 CAUSALE', a.codice_operatore_don_eff
UNION
SELECT 6 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 3 CAUSALE' AS d,
a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v
FROM mnp.mnp_storico_richiesta_rec@mnp s, mnp.mnp_gestione_richiesta_rec@mnp a
WHERE a.id_richiesta = s.id_richiesta
AND s.stato_a = 7
AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine
AND a.richiestaadhoc = 0
AND a.codice_operatore_rec_eff = 'TIMG'
AND LENGTH (a.codice_rifiuto_validazione) = 9
AND FLAG_PREVALIDAZIONE ='Y'
GROUP BY 6, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 3 CAUSALE', a.codice_operatore_don_eff
UNION
SELECT 7 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 4 CAUSALE' AS d,
a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v
FROM mnp.mnp_storico_richiesta_rec@mnp s, mnp.mnp_gestione_richiesta_rec@mnp a
WHERE a.id_richiesta = s.id_richiesta
AND s.stato_a = 7
AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine
AND a.richiestaadhoc = 0
AND a.codice_operatore_rec_eff = 'TIMG'
AND LENGTH (a.codice_rifiuto_validazione) = 12
AND FLAG_PREVALIDAZIONE ='Y'
GROUP BY 7, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 4 CAUSALE', a.codice_operatore_don_eff
UNION
SELECT 8 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 5 CAUSALE' AS d,
a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v
FROM mnp.mnp_storico_richiesta_rec@mnp s, mnp.mnp_gestione_richiesta_rec@mnp a
WHERE a.id_richiesta = s.id_richiesta
AND s.stato_a = 7
AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine
AND a.richiestaadhoc = 0
AND a.codice_operatore_rec_eff = 'TIMG'
AND LENGTH (a.codice_rifiuto_validazione) = 15
AND FLAG_PREVALIDAZIONE ='Y'
GROUP BY 8, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 5 CAUSALE', a.codice_operatore_don_eff
UNION
SELECT 9 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 6 CAUSALE' AS d,
a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v
FROM mnp.mnp_storico_richiesta_rec@mnp s, mnp.mnp_gestione_richiesta_rec@mnp a
WHERE a.id_richiesta = s.id_richiesta
AND s.stato_a = 7
AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine
AND a.richiestaadhoc = 0
AND a.codice_operatore_rec_eff = 'TIMG'
AND LENGTH (a.codice_rifiuto_validazione) = 18
AND FLAG_PREVALIDAZIONE ='Y'
GROUP BY 9, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 6 CAUSALE', a.codice_operatore_don_eff
UNION
SELECT 10 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 7 CAUSALE' AS d,
a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v
FROM mnp.mnp_storico_richiesta_rec@mnp s, mnp.mnp_gestione_richiesta_rec@mnp a
WHERE a.id_richiesta = s.id_richiesta
AND s.stato_a = 7
AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine
AND a.richiestaadhoc = 0
AND a.codice_operatore_rec_eff = 'TIMG'
AND LENGTH (a.codice_rifiuto_validazione) = 21
AND FLAG_PREVALIDAZIONE ='Y'
GROUP BY 10, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 7 CAUSALE', a.codice_operatore_don_eff
UNION
SELECT 11 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 8 CAUSALE' AS d,
a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v
FROM mnp.mnp_storico_richiesta_rec@mnp s, mnp.mnp_gestione_richiesta_rec@mnp a
WHERE a.id_richiesta = s.id_richiesta
AND s.stato_a = 7
AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine
AND a.richiestaadhoc = 0
AND a.codice_operatore_rec_eff = 'TIMG'
AND LENGTH (a.codice_rifiuto_validazione) = 24
AND FLAG_PREVALIDAZIONE ='Y'
GROUP BY 11, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 8 CAUSALE', a.codice_operatore_don_eff
UNION
SELECT 12 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 9 CAUSALE' AS d,
a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v
FROM mnp.mnp_storico_richiesta_rec@mnp s, mnp.mnp_gestione_richiesta_rec@mnp a
WHERE a.id_richiesta = s.id_richiesta
AND s.stato_a = 7
AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine
AND a.richiestaadhoc = 0
AND a.codice_operatore_rec_eff = 'TIMG'
AND LENGTH (a.codice_rifiuto_validazione) = 27
AND FLAG_PREVALIDAZIONE ='Y'
GROUP BY 12, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 9 CAUSALE', a.codice_operatore_don_eff
UNION
SELECT 13 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 10 CAUSALE' AS d,
a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v
FROM mnp.mnp_storico_richiesta_rec@mnp s, mnp.mnp_gestione_richiesta_rec@mnp a
WHERE a.id_richiesta = s.id_richiesta
AND s.stato_a = 7
AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine
AND a.richiestaadhoc = 0
AND a.codice_operatore_rec_eff = 'TIMG'
AND LENGTH (a.codice_rifiuto_validazione) = 30
AND FLAG_PREVALIDAZIONE ='Y'
GROUP BY 13, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 11 CAUSALE', a.codice_operatore_don_eff
UNION
SELECT 14 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 11 CAUSALE' AS d,
a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v
FROM mnp.mnp_storico_richiesta_rec@mnp s, mnp.mnp_gestione_richiesta_rec@mnp a
WHERE a.id_richiesta = s.id_richiesta
AND s.stato_a = 7
AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine
AND a.richiestaadhoc = 0
AND a.codice_operatore_rec_eff = 'TIMG'
AND LENGTH (a.codice_rifiuto_validazione) = 33
AND FLAG_PREVALIDAZIONE ='Y'
GROUP BY 14, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 11 CAUSALE', a.codice_operatore_don_eff
)
ORDER BY ord;
BEGIN
data_inizio := TO_DATE (anno || '-' || mese || '-01', 'yyyy-mm-dd');
data_fine := LAST_DAY (data_inizio);
OPEN cur_res (data_inizio, data_fine);
LOOP
FETCH cur_res
INTO line;
EXIT WHEN cur_res%NOTFOUND;
csv := csv || line || returncar || spaziocar;
END LOOP;
CLOSE cur_res;
INSERT INTO mnp_report_agcom
(anno, mese, tipo, csv
)
VALUES (anno, mese, tipo, csv
);
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line (SQLERRM);
END;
PROCEDURE calc4d (anno IN VARCHAR, mese IN VARCHAR)
IS
-- COSTANTI
tipo VARCHAR (10) NOT NULL DEFAULT '4D';
returncar VARCHAR (1) NOT NULL DEFAULT CHR (13);
spaziocar VARCHAR (1) NOT NULL DEFAULT CHR (10);
--
data_inizio DATE;
data_fine DATE;
line VARCHAR (1000);
csv VARCHAR (4000);
CURSOR cur_res (data_inizio DATE, data_fine DATE)
IS
SELECT d || ';' || REC || ';' || v || ';' AS csv
FROM (
SELECT 1 AS ord, '1 - NON UNIVOCITÀ DEL CODICE RICHIESTA' AS d, G.CODICE_OPERATORE_REC_EFF as REC, NVL(COUNT (g.id_richiesta),0) as V
FROM mnp.mnp_gestione_richiesta@mnp g
WHERE stato IN (12)
AND dataricezionerichiesta BETWEEN data_inizio AND data_fine
AND codice_operatore_don_eff = 'TIMG'
AND richiestaadhoc = 0
AND FLAG_PREVALIDAZIONE = 'Y'
GROUP BY G.CODICE_OPERATORE_REC_EFF
UNION
SELECT 2 AS ord,
DECODE (c.codice_causale,
3, '2 - MANUTENZIONE PROGRAMMATA',
8, '3 - OVERFLOW',
7, '4 - WAITING LIST',
NULL
) AS d, G.CODICE_OPERATORE_REC_EFF AS REC, COUNT (g.cod_controllo_presaincarico) AS v
FROM mnp.mnp_causale_accodamento@mnp c, mnp.mnp_gestione_richiesta@mnp g
WHERE stato IN (4)
AND g.cod_controllo_presaincarico = c.codice_causale
AND dataricezionerichiesta BETWEEN data_inizio AND data_fine
AND codice_operatore_don_eff = 'TIMG'
AND richiestaadhoc = 0
AND FLAG_PREVALIDAZIONE = 'Y'
GROUP BY 2 ,
DECODE (c.codice_causale,
3, '2 - MANUTENZIONE PROGRAMMATA',
8, '3 - OVERFLOW',
7, '4 - WAITING LIST',
NULL
) , G.CODICE_OPERATORE_REC_EFF
UNION
SELECT 3 AS ord, c.cod_causale_rifiuto || '-' || c.causale AS D, A.CODICE_OPERATORE_REC_EFF AS REC,
COUNT (c.cod_causale_rifiuto) AS V
FROM mnp.mnp_gestione_richiesta@mnp a, mnp.mnp_causale_rifiuto@mnp c
WHERE a.codice_rifiuto_validazione LIKE
'%' || c.cod_causale_rifiuto || ';%'
AND stato = 10
AND dataricezionerichiesta BETWEEN data_inizio AND data_fine
AND codice_operatore_don_eff = 'TIMG'
AND richiestaadhoc = 0
AND c.cod_causale_rifiuto BETWEEN 20 AND 30
AND FLAG_PREVALIDAZIONE = 'Y'
group by 3 , c.cod_causale_rifiuto || '-' || c.causale , A.CODICE_OPERATORE_REC_EFF
UNION
SELECT 5 AS ord, 'VALIDATE POSITIVAMENTE' AS d, A.CODICE_OPERATORE_REC_EFF as REC,
COUNT (s.id_richiesta) AS v
FROM mnp.mnp_storico_richiesta@mnp s,
mnp.mnp_gestione_richiesta@mnp a
WHERE a.id_richiesta = s.id_richiesta
AND s.stato_a = 7
AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine
AND a.richiestaadhoc = 0
AND a.codice_operatore_don_eff = 'TIMG'
AND FLAG_PREVALIDAZIONE = 'Y'
GROUP BY 5 , 'VALIDATE POSITIVAMENTE' , A.CODICE_OPERATORE_REC_EFF
UNION
SELECT 6 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 1 CAUSALE' AS d,
a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v
FROM mnp.mnp_storico_richiesta@mnp s, mnp.mnp_gestione_richiesta@mnp a
WHERE a.id_richiesta = s.id_richiesta
AND s.stato_a = 10
AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine
AND a.richiestaadhoc = 0
AND a.codice_operatore_don_eff = 'TIMG'
AND LENGTH (a.codice_rifiuto_validazione) = 3
AND FLAG_PREVALIDAZIONE = 'Y'
GROUP BY 4, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 1 CAUSALE', a.codice_operatore_don_eff
UNION
SELECT 7 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 2 CAUSALE' AS d,
a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v
FROM mnp.mnp_storico_richiesta@mnp s, mnp.mnp_gestione_richiesta@mnp a
WHERE a.id_richiesta = s.id_richiesta
AND s.stato_a = 10
AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine
AND a.richiestaadhoc = 0
AND a.codice_operatore_don_eff = 'TIMG'
AND LENGTH (a.codice_rifiuto_validazione) = 6
AND FLAG_PREVALIDAZIONE = 'Y'
GROUP BY 7, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 2 CAUSALE', a.codice_operatore_don_eff
UNION
SELECT 8 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 3 CAUSALE' AS d,
a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v
FROM mnp.mnp_storico_richiesta@mnp s, mnp.mnp_gestione_richiesta@mnp a
WHERE a.id_richiesta = s.id_richiesta
AND s.stato_a = 10
AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine
AND a.richiestaadhoc = 0
AND a.codice_operatore_don_eff = 'TIMG'
AND LENGTH (a.codice_rifiuto_validazione) = 9
AND FLAG_PREVALIDAZIONE = 'Y'
GROUP BY 8, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 3 CAUSALE', a.codice_operatore_don_eff
UNION
SELECT 9 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 4 CAUSALE' AS d,
a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v
FROM mnp.mnp_storico_richiesta@mnp s, mnp.mnp_gestione_richiesta@mnp a
WHERE a.id_richiesta = s.id_richiesta
AND s.stato_a = 10
AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine
AND a.richiestaadhoc = 0
AND a.codice_operatore_don_eff = 'TIMG'
AND LENGTH (a.codice_rifiuto_validazione) = 12
AND FLAG_PREVALIDAZIONE = 'Y'
GROUP BY 9, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 4 CAUSALE', a.codice_operatore_don_eff
UNION
SELECT 10 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 5 CAUSALE' AS d,
a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v
FROM mnp.mnp_storico_richiesta@mnp s, mnp.mnp_gestione_richiesta@mnp a
WHERE a.id_richiesta = s.id_richiesta
AND s.stato_a = 10
AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine
AND a.richiestaadhoc = 0
AND a.codice_operatore_don_eff = 'TIMG'
AND LENGTH (a.codice_rifiuto_validazione) = 15
AND FLAG_PREVALIDAZIONE = 'Y'
GROUP BY 10, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 5 CAUSALE', a.codice_operatore_don_eff
UNION
SELECT 11 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 6 CAUSALE' AS d,
a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v
FROM mnp.mnp_storico_richiesta@mnp s, mnp.mnp_gestione_richiesta@mnp a
WHERE a.id_richiesta = s.id_richiesta
AND s.stato_a = 10
AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine
AND a.richiestaadhoc = 0
AND a.codice_operatore_don_eff = 'TIMG'
AND LENGTH (a.codice_rifiuto_validazione) = 18
AND FLAG_PREVALIDAZIONE = 'Y'
GROUP BY 11, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 6 CAUSALE', a.codice_operatore_don_eff
UNION
SELECT 12 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 7 CAUSALE' AS d,
a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v
FROM mnp.mnp_storico_richiesta@mnp s, mnp.mnp_gestione_richiesta@mnp a
WHERE a.id_richiesta = s.id_richiesta
AND s.stato_a = 10
AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine
AND a.richiestaadhoc = 0
AND a.codice_operatore_don_eff = 'TIMG'
AND LENGTH (a.codice_rifiuto_validazione) = 21
AND FLAG_PREVALIDAZIONE = 'Y'
GROUP BY 12, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 7 CAUSALE', a.codice_operatore_don_eff
UNION
SELECT 13 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 8 CAUSALE' AS d,
a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v
FROM mnp.mnp_storico_richiesta@mnp s, mnp.mnp_gestione_richiesta@mnp a
WHERE a.id_richiesta = s.id_richiesta
AND s.stato_a = 10
AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine
AND a.richiestaadhoc = 0
AND a.codice_operatore_don_eff = 'TIMG'
AND LENGTH (a.codice_rifiuto_validazione) = 24
AND FLAG_PREVALIDAZIONE = 'Y'
GROUP BY 12, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 8 CAUSALE', a.codice_operatore_don_eff
UNION
SELECT 13 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 9 CAUSALE' AS d,
a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v
FROM mnp.mnp_storico_richiesta@mnp s, mnp.mnp_gestione_richiesta@mnp a
WHERE a.id_richiesta = s.id_richiesta
AND s.stato_a = 10
AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine
AND a.richiestaadhoc = 0
AND a.codice_operatore_don_eff = 'TIMG'
AND LENGTH (a.codice_rifiuto_validazione) = 27
AND FLAG_PREVALIDAZIONE = 'Y'
GROUP BY 13, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 9 CAUSALE', a.codice_operatore_don_eff
UNION
SELECT 14 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 10 CAUSALE' AS d,
a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v
FROM mnp.mnp_storico_richiesta@mnp s, mnp.mnp_gestione_richiesta@mnp a
WHERE a.id_richiesta = s.id_richiesta
AND s.stato_a = 10
AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine
AND a.richiestaadhoc = 0
AND a.codice_operatore_don_eff = 'TIMG'
AND LENGTH (a.codice_rifiuto_validazione) = 30
AND FLAG_PREVALIDAZIONE = 'Y'
GROUP BY 14, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 10 CAUSALE', a.codice_operatore_don_eff
UNION
SELECT 15 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 11 CAUSALE' AS d,
a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v
FROM mnp.mnp_storico_richiesta@mnp s, mnp.mnp_gestione_richiesta@mnp a
WHERE a.id_richiesta = s.id_richiesta
AND s.stato_a = 10
AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine
AND a.richiestaadhoc = 0
AND a.codice_operatore_don_eff = 'TIMG'
AND LENGTH (a.codice_rifiuto_validazione) = 33
AND FLAG_PREVALIDAZIONE = 'Y'
GROUP BY 15, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 11 CAUSALE', a.codice_operatore_don_eff
)
ORDER BY ord;
BEGIN
data_inizio := TO_DATE (anno || '-' || mese || '-01', 'yyyy-mm-dd');
data_fine := LAST_DAY (data_inizio);
OPEN cur_res (data_inizio, data_fine);
LOOP
FETCH cur_res
INTO line;
EXIT WHEN cur_res%NOTFOUND;
csv := csv || line || returncar || spaziocar;
END LOOP;
CLOSE cur_res;
INSERT INTO mnp_report_agcom
(anno, mese, tipo, csv
)
VALUES (anno, mese, tipo, csv
);
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line (SQLERRM);
END;
----------------------------------------------------------------------------------------------
PROCEDURE calc5t (anno IN VARCHAR, mese IN VARCHAR)
IS
-- COSTANTI
tipo VARCHAR (10) NOT NULL DEFAULT '5T';
returncar VARCHAR (1) NOT NULL DEFAULT CHR (13);
spaziocar VARCHAR (1) NOT NULL DEFAULT CHR (10);
--
data_inizio DATE;
data_fine DATE;
line VARCHAR (1000);
csv VARCHAR (4000);
CURSOR cur_res (data_inizio DATE, data_fine DATE)
IS
SELECT donor || ';' || recipient || ';' || richieste || ';' AS csv
FROM (SELECT NVL (an.id_amministrativo, ss.don) donor, ss.rec recipient,
SUM (ss.richieste) richieste
FROM (SELECT 'REC' AS processo, codice_operatore_don_eff don,
codice_operatore_rec_eff rec,
COUNT (a.id_richiesta) AS richieste
FROM mnp.mnp_gestione_richiesta_rec@mnp a
WHERE id_richiesta IN (
SELECT id_richiesta
FROM mnp.mnp_storico_richiesta_rec@mnp
WHERE stato_a = 12
AND data_lavorazione BETWEEN data_inizio AND data_fine)
AND id_richiesta NOT IN (
SELECT id_richiesta
FROM mnp.mnp_storico_richiesta_rec@mnp
WHERE stato_a = 3
AND stato_da = -1
AND data_lavorazione BETWEEN data_inizio AND data_fine)
GROUP BY codice_operatore_don_eff, codice_operatore_rec_eff
UNION
SELECT 'DV', codice_operatore_donating don,
codice_operatore_recipient rec,
COUNT (a.id_richiesta) AS richieste
FROM mnp.mnp_gest_rich_donor_virt@mnp a
WHERE id_richiesta IN (
SELECT id_richiesta
FROM mnp.mnp_storico_rich_don_virt@mnp
WHERE stato_a = 11
AND data_lavorazione BETWEEN data_inizio AND data_fine)
AND id_richiesta NOT IN (
SELECT id_richiesta
FROM mnp.mnp_storico_rich_don_virt@mnp
WHERE stato_a = 3
AND stato_da = 1
AND data_lavorazione BETWEEN data_inizio AND data_fine)
GROUP BY codice_operatore_donating, codice_operatore_recipient
UNION
SELECT 'DON', codice_operatore_don_eff don,
codice_operatore_rec_eff rec,
COUNT (a.id_richiesta) AS richieste
FROM mnp.mnp_gestione_richiesta@mnp a
WHERE id_richiesta IN (
SELECT id_richiesta
FROM mnp.mnp_storico_richiesta@mnp
WHERE stato_a = 16
AND data_lavorazione BETWEEN data_inizio AND data_fine)
GROUP BY codice_operatore_don_eff, codice_operatore_rec_eff
UNION
SELECT 'RV', codice_operatore_donating don,
codice_operatore_recipient rec,
COUNT (a.id_richiesta) AS richieste
FROM mnp.mnp_gest_rich_rec_virt@mnp a
WHERE id_richiesta IN (
SELECT id_richiesta
FROM mnp.mnp_storico_rich_rec_virt@mnp
WHERE stato_a = 12
AND data_lavorazione BETWEEN data_inizio AND data_fine)
AND id_richiesta NOT IN (
SELECT id_richiesta
FROM mnp.mnp_storico_rich_rec_virt@mnp
WHERE stato_a = 3
AND stato_da = 1
AND data_lavorazione BETWEEN data_inizio AND data_fine)
GROUP BY codice_operatore_donating, codice_operatore_recipient
UNION
SELECT 'TP', codice_operatore_donating don,
codice_operatore_recipient rec,
COUNT (a.id_richiesta) AS richieste
FROM mnp.mnp_gestione_richiesta_porting@mnp a
WHERE id_richiesta IN (
SELECT id_richiesta
FROM mnp.mnp_storico_porting@mnp
WHERE stato_a = 6
AND data_lavorazione BETWEEN data_inizio AND data_fine)
GROUP BY codice_operatore_donating, codice_operatore_recipient) ss,
mnp.mnp_anagrafica_operatori@mnp an
WHERE an.id_operatore = ss.don
GROUP BY an.id_amministrativo, ss.don, ss.rec
ORDER BY ss.don);
BEGIN
data_inizio := TO_DATE (anno || '-' || mese || '-01', 'yyyy-mm-dd');
data_fine := LAST_DAY (data_inizio);
OPEN cur_res (data_inizio, data_fine);
LOOP
FETCH cur_res
INTO line;
EXIT WHEN cur_res%NOTFOUND;
csv := csv || line || returncar || spaziocar;
END LOOP;
CLOSE cur_res;
INSERT INTO mnp_report_agcom
(anno, mese, tipo, csv
)
VALUES (anno, mese, tipo, csv
);
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line (SQLERRM);
END;
PROCEDURE calc6 (anno IN VARCHAR, mese IN VARCHAR)
IS
-- COSTANTI
tipo VARCHAR (10) NOT NULL DEFAULT '6';
returncar VARCHAR (1) NOT NULL DEFAULT CHR (13);
spaziocar VARCHAR (1) NOT NULL DEFAULT CHR (10);
--
data_inizio DATE;
data_fine DATE;
line VARCHAR (1000);
csv VARCHAR (4000);
CURSOR cur_res (data_inizio DATE, data_fine DATE)
IS
SELECT donor || ';' || recipient || ';' || richieste || ';' AS csv
FROM (SELECT NVL (an.id_amministrativo, ss.don) donor, ss.rec recipient,
SUM (ss.richieste) richieste
FROM (SELECT 'REC' AS processo, codice_operatore_don_eff don,
codice_operatore_rec_eff rec,
COUNT (a.codice_gruppo) AS richieste
FROM mnp.mnp_gestione_richiesta_rec@mnp a
WHERE richiestaadhoc = 1
AND id_richiesta IN (
SELECT id_richiesta
FROM mnp.mnp_storico_richiesta_rec@mnp
WHERE stato_a = 12
AND data_lavorazione BETWEEN (data_inizio) AND (data_fine
))
AND id_richiesta NOT IN (
SELECT id_richiesta
FROM mnp.mnp_storico_richiesta_rec@mnp
WHERE stato_a = 3
AND stato_da = -1
AND data_lavorazione BETWEEN (data_inizio) AND (data_fine
))
GROUP BY codice_operatore_don_eff, codice_operatore_rec_eff
UNION
SELECT 'DV', codice_operatore_donating don,
codice_operatore_recipient rec,
COUNT (a.codice_gruppo) AS richieste
FROM mnp.mnp_gest_rich_donor_virt@mnp a
WHERE richiestaadhoc = 1
AND id_richiesta IN (
SELECT id_richiesta
FROM mnp.mnp_storico_rich_don_virt@mnp
WHERE stato_a = 11
AND data_lavorazione BETWEEN (data_inizio) AND (data_fine
))
AND id_richiesta NOT IN (
SELECT id_richiesta
FROM mnp.mnp_storico_rich_don_virt@mnp
WHERE stato_a = 3
AND stato_da = 1
AND data_lavorazione BETWEEN (data_inizio) AND (data_fine
))
GROUP BY codice_operatore_donating, codice_operatore_recipient
UNION
SELECT 'DON', codice_operatore_don_eff don,
codice_operatore_rec_eff rec,
COUNT (a.codice_gruppo) AS richieste
FROM mnp.mnp_gestione_richiesta@mnp a
WHERE richiestaadhoc = 1
AND id_richiesta IN (
SELECT id_richiesta
FROM mnp.mnp_storico_richiesta@mnp
WHERE stato_a = 16
AND data_lavorazione BETWEEN (data_inizio) AND (data_fine
))
GROUP BY codice_operatore_don_eff, codice_operatore_rec_eff
UNION
SELECT 'RV', codice_operatore_donating don,
codice_operatore_recipient rec,
COUNT (a.codice_gruppo) AS richieste
FROM mnp.mnp_gest_rich_rec_virt@mnp a
WHERE richiestaadhoc = 1
AND id_richiesta IN (
SELECT id_richiesta
FROM mnp.mnp_storico_rich_rec_virt@mnp
WHERE stato_a = 12
AND data_lavorazione BETWEEN (data_inizio) AND (data_fine
))
AND id_richiesta NOT IN (
SELECT id_richiesta
FROM mnp.mnp_storico_rich_rec_virt@mnp
WHERE stato_a = 3
AND stato_da = 1
AND data_lavorazione BETWEEN (data_inizio) AND (data_fine
))
GROUP BY codice_operatore_donating, codice_operatore_recipient) ss,
mnp.mnp_anagrafica_operatori@mnp an
WHERE an.id_operatore = ss.don
GROUP BY an.id_amministrativo, ss.don, ss.rec
ORDER BY ss.don);
BEGIN
data_inizio := TO_DATE (anno || '-' || mese || '-01', 'yyyy-mm-dd');
data_fine := LAST_DAY (data_inizio);
OPEN cur_res (data_inizio, data_fine);
LOOP
FETCH cur_res
INTO line;
EXIT WHEN cur_res%NOTFOUND;
csv := csv || line || returncar || spaziocar;
END LOOP;
CLOSE cur_res;
INSERT INTO mnp_report_agcom
(anno, mese, tipo, csv
)
VALUES (anno, mese, tipo, csv
);
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line (SQLERRM);
END;
PROCEDURE calc5a (anno IN VARCHAR, mese IN VARCHAR)
IS
-- COSTANTI
tipo VARCHAR (10) NOT NULL DEFAULT '5A';
returncar VARCHAR (1) NOT NULL DEFAULT CHR (13);
spaziocar VARCHAR (1) NOT NULL DEFAULT CHR (10);
--
data_inizio DATE;
data_fine DATE;
line VARCHAR (1000);
csv VARCHAR (4000);
CURSOR cur_res (data_inizio DATE, data_fine DATE)
IS
SELECT donor || ';' || recipient || ';' || richieste || ';' AS csv
FROM (SELECT NVL (an.id_amministrativo, ss.don) donor, ss.rec recipient,
SUM (ss.richieste) richieste
FROM (SELECT 'REC' AS processo, codice_operatore_don_eff don,
codice_operatore_rec_eff rec,
COUNT (a.id_richiesta) AS richieste
FROM mnp.mnp_gestione_richiesta_rec@mnp a
WHERE richiestaadhoc = 1
AND id_richiesta IN (
SELECT id_richiesta
FROM mnp.mnp_storico_richiesta_rec@mnp
WHERE stato_a = 12
AND data_lavorazione BETWEEN data_inizio AND data_fine)
AND id_richiesta NOT IN (
SELECT id_richiesta
FROM mnp.mnp_storico_richiesta_rec@mnp
WHERE stato_a = 3
AND stato_da = -1
AND data_lavorazione BETWEEN data_inizio AND data_fine)
GROUP BY codice_operatore_don_eff, codice_operatore_rec_eff
UNION
SELECT 'DV', codice_operatore_donating don,
codice_operatore_recipient rec,
COUNT (a.id_richiesta) AS richieste
FROM mnp.mnp_gest_rich_donor_virt@mnp a
WHERE richiestaadhoc = 1
AND id_richiesta IN (
SELECT id_richiesta
FROM mnp.mnp_storico_rich_don_virt@mnp
WHERE stato_a = 11
AND data_lavorazione BETWEEN data_inizio AND data_fine)
AND id_richiesta NOT IN (
SELECT id_richiesta
FROM mnp.mnp_storico_rich_don_virt@mnp
WHERE stato_a = 3
AND stato_da = 1
AND data_lavorazione BETWEEN data_inizio AND data_fine)
GROUP BY codice_operatore_donating, codice_operatore_recipient
UNION
SELECT 'DON', codice_operatore_don_eff don,
codice_operatore_rec_eff rec,
COUNT (a.id_richiesta) AS richieste
FROM mnp.mnp_gestione_richiesta@mnp a
WHERE richiestaadhoc = 1
AND id_richiesta IN (
SELECT id_richiesta
FROM mnp.mnp_storico_richiesta@mnp
WHERE stato_a = 16
AND data_lavorazione BETWEEN data_inizio AND data_fine)
GROUP BY codice_operatore_don_eff, codice_operatore_rec_eff
UNION
SELECT 'RV', codice_operatore_donating don,
codice_operatore_recipient rec,
COUNT (a.id_richiesta) AS richieste
FROM mnp.mnp_gest_rich_rec_virt@mnp a
WHERE richiestaadhoc = 1
AND id_richiesta IN (
SELECT id_richiesta
FROM mnp.mnp_storico_rich_rec_virt@mnp
WHERE stato_a = 12
AND data_lavorazione BETWEEN data_inizio AND data_fine)
AND id_richiesta NOT IN (
SELECT id_richiesta
FROM mnp.mnp_storico_rich_rec_virt@mnp
WHERE stato_a = 3
AND stato_da = 1
AND data_lavorazione BETWEEN data_inizio AND data_fine)
GROUP BY codice_operatore_donating, codice_operatore_recipient) ss,
mnp.mnp_anagrafica_operatori@mnp an
WHERE an.id_operatore = ss.don
GROUP BY an.id_amministrativo, ss.don, ss.rec
ORDER BY ss.don);
BEGIN
data_inizio := TO_DATE (anno || '-' || mese || '-01', 'yyyy-mm-dd');
data_fine := LAST_DAY (data_inizio);
OPEN cur_res (data_inizio, data_fine);
LOOP
FETCH cur_res
INTO line;
EXIT WHEN cur_res%NOTFOUND;
csv := csv || line || returncar || spaziocar;
END LOOP;
CLOSE cur_res;
INSERT INTO mnp_report_agcom
(anno, mese, tipo, csv
)
VALUES (anno, mese, tipo, csv
);
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line (SQLERRM);
END;
PROCEDURE calc5s (anno IN VARCHAR, mese IN VARCHAR)
IS
-- COSTANTI
tipo VARCHAR (10) NOT NULL DEFAULT '5S';
returncar VARCHAR (1) NOT NULL DEFAULT CHR (13);
spaziocar VARCHAR (1) NOT NULL DEFAULT CHR (10);
--
data_inizio DATE;
data_fine DATE;
line VARCHAR (1000);
csv VARCHAR (4000);
CURSOR cur_res (data_inizio DATE, data_fine DATE)
IS
SELECT donor || ';' || recipient || ';' || richieste || ';' AS csv
FROM (SELECT NVL (an.id_amministrativo, ss.don) donor, ss.rec recipient,
SUM (ss.richieste) richieste
FROM (SELECT 'REC' AS processo, codice_operatore_don_eff don,
codice_operatore_rec_eff rec,
COUNT (a.id_richiesta) AS richieste
FROM mnp.mnp_gestione_richiesta_rec@mnp a
WHERE richiestaadhoc = 0
AND id_richiesta IN (
SELECT id_richiesta
FROM mnp.mnp_storico_richiesta_rec@mnp
WHERE stato_a = 12
AND data_lavorazione BETWEEN data_inizio AND data_fine)
AND id_richiesta NOT IN (
SELECT id_richiesta
FROM mnp.mnp_storico_richiesta_rec@mnp
WHERE stato_a = 3
AND stato_da = -1
AND data_lavorazione BETWEEN data_inizio AND data_fine)
GROUP BY codice_operatore_don_eff, codice_operatore_rec_eff
UNION
SELECT 'DV', codice_operatore_donating don,
codice_operatore_recipient rec,
COUNT (a.id_richiesta) AS richieste
FROM mnp.mnp_gest_rich_donor_virt@mnp a
WHERE richiestaadhoc = 0
AND id_richiesta IN (
SELECT id_richiesta
FROM mnp.mnp_storico_rich_don_virt@mnp
WHERE stato_a = 11
AND data_lavorazione BETWEEN data_inizio AND data_fine)
AND id_richiesta NOT IN (
SELECT id_richiesta
FROM mnp.mnp_storico_rich_don_virt@mnp
WHERE stato_a = 3
AND stato_da = 1
AND data_lavorazione BETWEEN data_inizio AND data_fine)
GROUP BY codice_operatore_donating, codice_operatore_recipient
UNION
SELECT 'DON', codice_operatore_don_eff don,
codice_operatore_rec_eff rec,
COUNT (a.id_richiesta) AS richieste
FROM mnp.mnp_gestione_richiesta@mnp a
WHERE richiestaadhoc = 0
AND id_richiesta IN (
SELECT id_richiesta
FROM mnp.mnp_storico_richiesta@mnp
WHERE stato_a = 16
AND data_lavorazione BETWEEN data_inizio AND data_fine)
GROUP BY codice_operatore_don_eff, codice_operatore_rec_eff
UNION
SELECT 'RV', codice_operatore_donating don,
codice_operatore_recipient rec,
COUNT (a.id_richiesta) AS richieste
FROM mnp.mnp_gest_rich_rec_virt@mnp a
WHERE richiestaadhoc = 0
AND id_richiesta IN (
SELECT id_richiesta
FROM mnp.mnp_storico_rich_rec_virt@mnp
WHERE stato_a = 12
AND data_lavorazione BETWEEN data_inizio AND data_fine)
AND id_richiesta NOT IN (
SELECT id_richiesta
FROM mnp.mnp_storico_rich_rec_virt@mnp
WHERE stato_a = 3
AND stato_da = 1
AND data_lavorazione BETWEEN data_inizio AND data_fine)
GROUP BY codice_operatore_donating, codice_operatore_recipient) ss,
mnp.mnp_anagrafica_operatori@mnp an
WHERE an.id_operatore = ss.don
GROUP BY an.id_amministrativo, ss.don, ss.rec
ORDER BY ss.don);
BEGIN
data_inizio := TO_DATE (anno || '-' || mese || '-01', 'yyyy-mm-dd');
data_fine := LAST_DAY (data_inizio);
OPEN cur_res (data_inizio, data_fine);
LOOP
FETCH cur_res
INTO line;
EXIT WHEN cur_res%NOTFOUND;
csv := csv || line || returncar || spaziocar;
END LOOP;
CLOSE cur_res;
INSERT INTO mnp_report_agcom
(anno, mese, tipo, csv
)
VALUES (anno, mese, tipo, csv
);
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line (SQLERRM);
END;
PROCEDURE calc7 (anno IN VARCHAR, mese IN VARCHAR)
IS
-- COSTANTI
tipo VARCHAR (10) NOT NULL DEFAULT '7';
returncar VARCHAR (1) NOT NULL DEFAULT CHR (13);
spaziocar VARCHAR (1) NOT NULL DEFAULT CHR (10);
--
data_inizio DATE;
data_fine DATE;
line VARCHAR (1000);
csv VARCHAR (4000);
CURSOR cur_res (data_inizio DATE, data_fine DATE)
IS
SELECT x.donor || ';' || x.recipient || ';' || x.richieste || ';' AS csv
FROM (SELECT NVL (an.id_amministrativo, ss.don) donor, ss.rec recipient,
SUM (ss.richieste) richieste
FROM (SELECT 'REC' AS processo, codice_operatore_don_eff don,
codice_operatore_rec_eff rec,
COUNT (a.id_richiesta) AS richieste
FROM mnp.mnp_gestione_richiesta_rec@mnp a
WHERE id_richiesta IN (
SELECT id_richiesta
FROM mnp.mnp_storico_richiesta_rec@mnp
WHERE stato_a = 12
AND data_lavorazione <= data_fine)
AND id_richiesta NOT IN (
SELECT id_richiesta
FROM mnp.mnp_storico_richiesta_rec@mnp
WHERE stato_a = 3
AND stato_da = -1
AND data_lavorazione <= data_fine)
GROUP BY codice_operatore_don_eff, codice_operatore_rec_eff
UNION
SELECT 'DV', codice_operatore_donating don,
codice_operatore_recipient rec,
COUNT (a.id_richiesta) AS richieste
FROM mnp.mnp_gest_rich_donor_virt@mnp a
WHERE id_richiesta IN (
SELECT id_richiesta
FROM mnp.mnp_storico_rich_don_virt@mnp
WHERE stato_a = 11
AND data_lavorazione <= data_fine)
AND id_richiesta NOT IN (
SELECT id_richiesta
FROM mnp.mnp_storico_rich_don_virt@mnp
WHERE stato_a = 3
AND stato_da = 1
AND data_lavorazione <= data_fine)
GROUP BY codice_operatore_donating, codice_operatore_recipient
UNION
SELECT 'DON', codice_operatore_don_eff don,
codice_operatore_rec_eff rec,
COUNT (a.id_richiesta) AS richieste
FROM mnp.mnp_gestione_richiesta@mnp a
WHERE id_richiesta IN (
SELECT id_richiesta
FROM mnp.mnp_storico_richiesta@mnp
WHERE stato_a = 16
AND data_lavorazione <= data_fine)
GROUP BY codice_operatore_don_eff, codice_operatore_rec_eff
UNION
SELECT 'RV', codice_operatore_donating don,
codice_operatore_recipient rec,
COUNT (a.id_richiesta) AS richieste
FROM mnp.mnp_gest_rich_rec_virt@mnp a
WHERE id_richiesta IN (
SELECT id_richiesta
FROM mnp.mnp_storico_rich_rec_virt@mnp
WHERE stato_a = 12
AND data_lavorazione <= data_fine)
AND id_richiesta NOT IN (
SELECT id_richiesta
FROM mnp.mnp_storico_rich_rec_virt@mnp
WHERE stato_a = 3
AND stato_da = 1
AND data_lavorazione <= data_fine)
GROUP BY codice_operatore_donating, codice_operatore_recipient
UNION
SELECT 'TP', codice_operatore_donating don,
codice_operatore_recipient rec,
COUNT (a.id_richiesta) AS richieste
FROM mnp.mnp_gestione_richiesta_porting@mnp a
WHERE id_richiesta IN (
SELECT id_richiesta
FROM mnp.mnp_storico_porting@mnp
WHERE stato_a = 6
AND data_lavorazione <= data_fine)
GROUP BY codice_operatore_donating, codice_operatore_recipient) ss,
mnp.mnp_anagrafica_operatori@mnp an
WHERE an.id_operatore = ss.don
GROUP BY an.id_amministrativo, ss.don, ss.rec
ORDER BY ss.don) x;
BEGIN
data_inizio := TO_DATE (anno || '-' || mese || '-01', 'yyyy-mm-dd');
data_fine := LAST_DAY (data_inizio);
OPEN cur_res (data_inizio, data_fine);
LOOP
FETCH cur_res
INTO line;
EXIT WHEN cur_res%NOTFOUND;
csv := csv || line || returncar || spaziocar;
END LOOP;
CLOSE cur_res;
INSERT INTO mnp_report_agcom
(anno, mese, tipo, csv
)
VALUES (anno, mese, tipo, csv
);
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line (SQLERRM);
END;
--------------
--------------
PROCEDURE calc8r_1 (anno IN VARCHAR, mese IN VARCHAR)
IS
-- COSTANTI
tipo VARCHAR (10) NOT NULL DEFAULT '8R_1';
returncar VARCHAR (1) NOT NULL DEFAULT CHR (13);
spaziocar VARCHAR (1) NOT NULL DEFAULT CHR (10);
--
data_inizio DATE;
data_fine DATE;
line VARCHAR (1000);
csv VARCHAR (4000);
CURSOR cur_res (data_inizio DATE, data_fine DATE)
IS
SELECT donating || ';' || tempo_medio_attivazione || ';' AS csv
FROM (SELECT k.donating,
ROUND (AVG (k.data_lavorazione - k.dataricezionerichiesta),
2
) AS tempo_medio_attivazione,
COUNT (k.id_richiesta)
FROM (SELECT r.codice_operatore_don_eff AS donating, r.dataricezionerichiesta,
r.id_richiesta, st.data_lavorazione
FROM mnp.mnp_gestione_richiesta_rec@mnp r,
mnp.mnp_storico_richiesta_rec@mnp st
WHERE r.data_cut_over_aom BETWEEN data_inizio AND data_fine
AND r.stato = 12
AND r.codice_operatore_rec_eff = 'TIMG'
AND r.richiestaadhoc = 0
AND r.id_richiesta = st.id_richiesta
AND st.stato_a = 12
AND r.msisdn NOT IN (
SELECT gg.msisdn
FROM mnp.mnp_gestione_richiesta_rec@mnp gg,
mnp.mnp_storico_richiesta_rec@mnp gs
WHERE gs.stato_a = 7
AND gg.id_richiesta = gs.id_richiesta
AND gs.data_lavorazione >= SYSDATE - 30)
UNION
SELECT r.codice_operatore_don_eff AS donating, xx.dataricezionerichiesta,
r.id_richiesta, st.data_lavorazione
FROM mnp.mnp_gestione_richiesta_rec@mnp r,
mnp.mnp_storico_richiesta_rec@mnp st,
(SELECT gg.msisdn, gg.dataricezionerichiesta
FROM mnp.mnp_gestione_richiesta_rec@mnp gg,
mnp.mnp_storico_richiesta_rec@mnp gs
WHERE gs.stato_a = 7
AND gg.id_richiesta = gs.id_richiesta
AND gs.data_lavorazione >= SYSDATE - 30) xx
WHERE r.data_cut_over_aom BETWEEN data_inizio AND data_fine
AND r.stato = 12
AND r.codice_operatore_rec_eff = 'TIMG'
AND r.richiestaadhoc = 0
AND r.id_richiesta = st.id_richiesta
AND st.stato_a = 12
AND xx.msisdn = r.msisdn
AND r.msisdn IN (
SELECT gg.msisdn
FROM mnp.mnp_gestione_richiesta_rec@mnp gg,
mnp.mnp_storico_richiesta_rec@mnp gs
WHERE gs.stato_a = 7
AND gg.id_richiesta = gs.id_richiesta
AND gs.data_lavorazione >= SYSDATE - 30)) k
GROUP BY k.donating);
BEGIN
data_inizio := TO_DATE (anno || '-' || mese || '-01', 'yyyy-mm-dd');
data_fine := LAST_DAY (data_inizio);
OPEN cur_res (data_inizio, data_fine);
LOOP
FETCH cur_res
INTO line;
EXIT WHEN cur_res%NOTFOUND;
csv := csv || line || returncar || spaziocar;
END LOOP;
CLOSE cur_res;
INSERT INTO mnp_report_agcom
(anno, mese, tipo, csv
)
VALUES (anno, mese, tipo, csv
);
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line (SQLERRM);
END;
--------------
PROCEDURE calc8r_2 (anno IN VARCHAR, mese IN VARCHAR)
IS
-- COSTANTI
tipo VARCHAR (10) NOT NULL DEFAULT '8R_2';
returncar VARCHAR (1) NOT NULL DEFAULT CHR (13);
spaziocar VARCHAR (1) NOT NULL DEFAULT CHR (10);
--
data_inizio DATE;
data_fine DATE;
line VARCHAR (1000);
csv VARCHAR (4000);
CURSOR cur_res (data_inizio DATE, data_fine DATE)
IS
SELECT donating || ';' || tempo_medio_realizzazione || ';' AS csv
FROM (SELECT r.codice_operatore_don_eff AS donating,
AVG
(fun_giorni_lavorativi (r.data_cut_over_aom, st.data_lavorazione)
) AS tempo_medio_realizzazione
FROM mnp.mnp_gestione_richiesta_rec@mnp r,
mnp.mnp_storico_richiesta_rec@mnp st
WHERE r.data_cut_over_aom BETWEEN data_inizio AND data_fine
AND (st.stato_da = 2 AND st.stato_a = 4)
AND r.stato = 12
AND r.codice_operatore_rec_eff = 'TIMG'
AND r.richiestaadhoc = 0
AND r.id_richiesta = st.id_richiesta
GROUP BY r.codice_operatore_don_eff
UNION
SELECT dv.codice_operatore_donating AS donating,
AVG
(fun_giorni_lavorativi (dv.data_cut_over_eff, stdv.data_lavorazione)
) AS tempo_medio_realizzazione
FROM mnp.mnp_gest_rich_donor_virt@mnp dv,
mnp.mnp_storico_rich_don_virt@mnp stdv
WHERE dv.data_cut_over_eff BETWEEN data_inizio AND data_fine
AND (stdv.stato_da = 1 AND stdv.stato_a = 2)
AND dv.stato = 11
AND dv.codice_operatore_recipient = 'TIMG'
AND dv.richiestaadhoc = 0
AND dv.id_richiesta = stdv.id_richiesta
GROUP BY dv.codice_operatore_donating);
BEGIN
data_inizio := TO_DATE (anno || '-' || mese || '-01', 'yyyy-mm-dd');
data_fine := LAST_DAY (data_inizio);
OPEN cur_res (data_inizio, data_fine);
LOOP
FETCH cur_res
INTO line;
EXIT WHEN cur_res%NOTFOUND;
csv := csv || line || returncar || spaziocar;
END LOOP;
CLOSE cur_res;
INSERT INTO mnp_report_agcom
(anno, mese, tipo, csv
)
VALUES (anno, mese, tipo, csv
);
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line (SQLERRM);
END;
PROCEDURE calc8r_3 (anno IN VARCHAR, mese IN VARCHAR)
IS
-- COSTANTI
tipo VARCHAR (10) NOT NULL DEFAULT '8R_3';
returncar VARCHAR (1) NOT NULL DEFAULT CHR (13);
spaziocar VARCHAR (1) NOT NULL DEFAULT CHR (10);
--
data_inizio DATE;
data_fine DATE;
line VARCHAR (1000);
csv VARCHAR (4000);
CURSOR cur_res (data_inizio DATE, data_fine DATE)
IS
SELECT donating || ';' || num_richieste || ';' AS csv
FROM (SELECT r.codice_operatore_don_eff AS donating, COUNT (*) AS num_richieste
FROM mnp.mnp_gestione_richiesta_rec@mnp r
WHERE r.stato = 11
AND r.data_cut_over_aom BETWEEN data_inizio AND data_fine
AND r.codice_operatore_recipient = 'TIMG'
AND r.richiestaadhoc = 0
AND r.espletamentoterzeparti IS NOT NULL
GROUP BY r.codice_operatore_don_eff
UNION
SELECT dv.codice_operatore_donating, COUNT (*) AS num_richieste
FROM mnp.mnp_gest_rich_donor_virt@mnp dv
WHERE dv.data_cut_over_eff BETWEEN data_inizio AND data_fine
AND ((dv.stato = 8 AND flag_esp = 1) OR (dv.stato = 10 AND flag_esp = 0))
AND dv.codice_operatore_recipient = 'TIMG'
AND dv.richiestaadhoc = 0
AND dv.espletamentoterzeparti IS NOT NULL
GROUP BY dv.codice_operatore_donating);
BEGIN
data_inizio := TO_DATE (anno || '-' || mese || '-01', 'yyyy-mm-dd');
data_fine := LAST_DAY (data_inizio);
OPEN cur_res (data_inizio, data_fine);
LOOP
FETCH cur_res
INTO line;
EXIT WHEN cur_res%NOTFOUND;
csv := csv || line || returncar || spaziocar;
END LOOP;
CLOSE cur_res;
INSERT INTO mnp_report_agcom
(anno, mese, tipo, csv
)
VALUES (anno, mese, tipo, csv
);
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line (SQLERRM);
END;
PROCEDURE calcdatigenerali (anno IN VARCHAR, mese IN VARCHAR)
IS
-- COSTANTI
tipo VARCHAR (10) NOT NULL DEFAULT 'DatiG';
returncar VARCHAR (1) NOT NULL DEFAULT CHR (13);
spaziocar VARCHAR (1) NOT NULL DEFAULT CHR (10);
--
data_inizio DATE;
data_fine DATE;
data_inizio_mp DATE;
data_fine_mp DATE;
line VARCHAR (1000);
csv VARCHAR (4000);
CURSOR cur_res (data_inizio DATE, data_fine DATE, data_inizio_mp DATE, data_fine_mp DATE)
IS
SELECT csv
FROM (SELECT 'Mese di riferimento (mm/aaaa)' || ';' || mese||'/'|| anno || ';' AS csv,
2 ordine
FROM DUAL
UNION
SELECT 'Codice dell''operatore' || ';' || 'TIM' || ';' AS csv, 1 ordine
FROM DUAL
UNION
SELECT 'Numero di giorni di manutenzione programmata nel mese di riferimento'
|| ';'
|| x.totale
|| ';' AS csv,
8 ordine
FROM (SELECT COUNT (*) totale
FROM mnp.mnp_data_manutenzione@mnp a
WHERE data_manutenzione BETWEEN data_inizio AND data_fine) x
UNION
SELECT 'Numero di giorni lavorativi del mese di riferimento'
|| ';'
|| x.totale
|| ';' AS csv,
7 ordine
FROM (SELECT dwh.fun_giorni_lavorativi (data_fine, data_inizio) totale
FROM DUAL) x
UNION
SELECT 'Numero totale di richieste ricevute come donating nel mese di riferimento'
|| ';'
|| x.totale
|| ';' AS csv,
6 ordine
FROM (SELECT SUM (num) totale
FROM (SELECT COUNT (*) AS num
FROM mnp.mnp_gestione_richiesta@mnp a
WHERE dataricezionerichiesta BETWEEN data_inizio AND data_fine
AND a.codice_operatore_don_eff = 'TIMG'
AND a.richiestaadhocaom = 0
UNION
SELECT COUNT (*) AS num
FROM mnp.mnp_gest_rich_rec_virt@mnp b
WHERE dataricezionerichiesta BETWEEN data_inizio AND data_fine
AND b.codice_operatore_donating = 'TIMG'
AND b.richiestaadhoc = 0)) x
UNION
SELECT 'Numero di giorni di manutenzione programmata nel mese precedente a quello di riferimento'
|| ';'
|| x.totale
|| ';' AS csv,
5 ordine
FROM (SELECT COUNT (*) totale
FROM mnp.mnp_data_manutenzione@mnp a
WHERE data_manutenzione BETWEEN data_inizio_mp AND data_fine_mp) x
UNION
SELECT 'Numero di giorni lavorativi del mese precedente a quello di riferimento'
|| ';'
|| x.totale
|| ';' AS csv,
4 ordine
FROM (SELECT dwh.fun_giorni_lavorativi (data_fine_mp, data_inizio_mp) totale
FROM DUAL) x
UNION
SELECT 'Numero totale di richieste ricevute come donating nel mese precedente a quello di riferimento'
|| ';'
|| x.totale
|| ';' AS csv,
3 ordine
FROM (SELECT SUM (num) totale
FROM (SELECT COUNT (*) AS num
FROM mnp.mnp_gestione_richiesta@mnp a
WHERE dataricezionerichiesta BETWEEN data_inizio_mp AND data_fine_mp
AND a.codice_operatore_don_eff = 'TIMG'
AND a.richiestaadhocaom = 0
UNION
SELECT COUNT (*) AS num
FROM mnp.mnp_gest_rich_rec_virt@mnp b
WHERE dataricezionerichiesta BETWEEN data_inizio_mp AND data_fine_mp
AND b.codice_operatore_donating = 'TIMG'
AND b.richiestaadhoc = 0)) x
UNION
SELECT 'Capacità di evasione messa disposizione nel mese di riferimento'
|| ';'
|| x.totale
|| ';' AS csv,
11 ordine
FROM (SELECT CAPACITA_TOTALE AS TOTALE FROM MNP.MNP_EVASIONE@MNP WHERE ID_OPERATORE ='TIMG') x )
ORDER BY ordine;
BEGIN
data_inizio := TO_DATE (anno || '-' || mese || '-01', 'yyyy-mm-dd');
data_fine := LAST_DAY (data_inizio);
data_inizio_mp := ADD_MONTHS (data_inizio, -1);
data_fine_mp := LAST_DAY (data_inizio_mp);
OPEN cur_res (data_inizio, data_fine, data_inizio_mp, data_fine_mp);
LOOP
FETCH cur_res
INTO line;
EXIT WHEN cur_res%NOTFOUND;
csv := csv || line || returncar || spaziocar;
END LOOP;
CLOSE cur_res;
INSERT INTO mnp_report_agcom
(anno, mese, tipo, csv
)
VALUES (anno, mese, tipo, csv
);
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line (SQLERRM);
END;
END;
/