5613 lines
310 KiB
MySQL
5613 lines
310 KiB
MySQL
--
|
|
-- $Id$
|
|
--
|
|
-- Script containing customer specific db-configuration for DJIN.
|
|
DEFINE thisfile = 'DJIN.SQL'
|
|
DEFINE dbuser = '^FMS'
|
|
|
|
SET ECHO ON
|
|
SET DEFINE ON
|
|
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
|
|
WHENEVER SQLERROR EXIT;
|
|
SELECT adm.scriptspoolfile('&dbuser', '&thisfile') AS fcltlogfile FROM DUAL;
|
|
WHENEVER SQLERROR CONTINUE;
|
|
SPOOL &fcltlogfile
|
|
SET DEFINE OFF
|
|
|
|
------ payload begin ------
|
|
|
|
CREATE OR REPLACE VIEW djin_v_rap_import_log
|
|
(
|
|
fclt_f_applicatie,
|
|
datum,
|
|
fclt_f_status,
|
|
omschrijving,
|
|
hint
|
|
)
|
|
AS
|
|
SELECT COALESCE (fac_import_app_code, imp_log_applicatie),
|
|
TO_CHAR (imp_log_datum, 'dd-mm-yyyy hh24:mi'),
|
|
imp_log_status,
|
|
imp_log_omschrijving,
|
|
imp_log_hint
|
|
FROM imp_log il1, fac_import fi1, fac_import_app fia1
|
|
WHERE il1.fac_import_key = fi1.fac_import_key(+)
|
|
AND fi1.fac_import_app_key = fia1.fac_import_app_key(+)
|
|
AND NOT EXISTS
|
|
(SELECT 1
|
|
FROM imp_log il2, fac_import fi2
|
|
WHERE il2.fac_import_key = fi2.fac_import_key
|
|
AND fi2.fac_import_app_key = fi1.fac_import_app_key
|
|
AND il2.fac_import_key > il1.fac_import_key);
|
|
|
|
/* Formatted on 13-4-2015 13:58:02 (QP5 v5.136.908.31019) */
|
|
CREATE OR REPLACE PROCEDURE djin_import_prs (p_import_key IN NUMBER)
|
|
AS
|
|
v_errormsg VARCHAR2 (1000) := '-';
|
|
v_errorhint VARCHAR2 (1000) := '-';
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
v_count NUMBER (10);
|
|
BEGIN
|
|
v_errorhint := 'Generieke import';
|
|
|
|
-- Vestiging-kolom kopieren naar extra kolom 10 (= kenmerk1)!
|
|
UPDATE fac_imp_file i
|
|
SET i.fac_imp_file_line =
|
|
SUBSTR (fac_imp_file_line, 1, INSTR (fac_imp_file_line || ';', ';', 1, 9))
|
|
|| ';'
|
|
|| SUBSTR (fac_imp_file_line, INSTR (fac_imp_file_line, ';', 1, 2)
|
|
+ 1, INSTR (fac_imp_file_line, ';', 1, 3)
|
|
- INSTR (fac_imp_file_line, ';', 1, 2)
|
|
- 1)
|
|
WHERE fac_import_key = p_import_key AND fac_imp_file_index > 1;
|
|
|
|
-- Vestiging-kolom resetten (op 'XXX' want verplicht)!
|
|
UPDATE fac_imp_file i
|
|
SET i.fac_imp_file_line =
|
|
SUBSTR (fac_imp_file_line, 1, INSTR (fac_imp_file_line, ';', 1, 2))
|
|
|| '"XXX"'
|
|
|| SUBSTR (fac_imp_file_line, INSTR (fac_imp_file_line, ';', 1, 3))
|
|
WHERE fac_import_key = p_import_key AND fac_imp_file_index > 1;
|
|
|
|
-- Functie-kolom kopieren naar extra kolom 11 (= kenmerk2)!
|
|
UPDATE fac_imp_file i
|
|
SET i.fac_imp_file_line =
|
|
SUBSTR (fac_imp_file_line, 1, INSTR (fac_imp_file_line || ';', ';', 1, 10))
|
|
|| ';'
|
|
|| SUBSTR (fac_imp_file_line, INSTR (fac_imp_file_line, ';', 1, 3)
|
|
+ 1, INSTR (fac_imp_file_line, ';', 1, 4)
|
|
- INSTR (fac_imp_file_line, ';', 1, 3)
|
|
- 1)
|
|
WHERE fac_import_key = p_import_key AND fac_imp_file_index > 1;
|
|
|
|
-- Functie-kolom resetten (op 'XXX' want verplicht)!
|
|
UPDATE fac_imp_file i
|
|
SET i.fac_imp_file_line =
|
|
SUBSTR (fac_imp_file_line, 1, INSTR (fac_imp_file_line, ';', 1, 3))
|
|
|| '"XXX"'
|
|
|| SUBSTR (fac_imp_file_line, INSTR (fac_imp_file_line, ';', 1, 4))
|
|
WHERE fac_import_key = p_import_key AND fac_imp_file_index > 1;
|
|
|
|
-- DJIN#36237: Telefoonnr-kolom negeren=wissen!
|
|
UPDATE fac_imp_file i
|
|
SET i.fac_imp_file_line =
|
|
SUBSTR (fac_imp_file_line, 1, INSTR (fac_imp_file_line, ';', 1, 6))
|
|
|| '""'
|
|
|| SUBSTR (fac_imp_file_line, INSTR (fac_imp_file_line, ';', 1, 7))
|
|
WHERE fac_import_key = p_import_key AND fac_imp_file_index > 1;
|
|
|
|
-- De sequence array staat beschreven in PRS_PAC.SRC bij de import_perslid-PROCEDURE.
|
|
--"Accountnaam";"Achternaam";"Vestiging";"Functie";"Voornaam";"E-mail";"Telefoonnr";"Werkplekruimte";"Afdeling"
|
|
prs.import_perslid (
|
|
p_import_key,
|
|
'0;0;0;0;0;0;3;2;0;5;'
|
|
|| '0;0;0;0;0;7;0;6;0;0;'
|
|
|| '4;1;0;0;0;0;10;11;8;9;'
|
|
|| '0;0;0;0;0;0;0;0;0;0;'
|
|
|| '0;0;0;0;0;0',
|
|
'%"Accountnaam";"Achternaam";"Vestiging";"Functie";"Voornaam";"E-mail";"Telefoonnr";"Werkplekruimte";"Afdeling"%');
|
|
|
|
-- Klantspecifieke aanpassingen.
|
|
-- Locatie/Gebouw/Verdieping/Ruimte bepalen via Vestiging-kolom -> Eigen tabel (key=1) ->
|
|
-- Gebouw en daaronder Ruimte '_000' op Verdieping 0!
|
|
-- Als persoon al een WP heeft op import-vestiging, dan is dat de juiste en blijft deze
|
|
-- (handmatig gecorrigeerde WP) ongewijzigd. In alle andere gevallen verhuist persoon naar
|
|
-- Eventuele WPs onder andere vestigingen dan import-vestiging blijven ook ongewijzigd!
|
|
UPDATE fac_imp_perslid i
|
|
SET i.alg_locatie_code =
|
|
(SELECT il.alg_locatie_code
|
|
FROM fac_v_aanwezigusrdata ud, -- Mapping AD-code -> gebouwcode
|
|
alg_v_aanweziggebouw ig,
|
|
alg_locatie il
|
|
WHERE ud.fac_usrtab_key = 1
|
|
AND UPPER (ud.fac_usrdata_code) = UPPER (i.prs_kenmerk1)
|
|
AND UPPER (ud.fac_usrdata_omschr) = UPPER (ig.alg_gebouw_code)
|
|
AND ig.alg_locatie_key = il.alg_locatie_key
|
|
AND NOT EXISTS
|
|
(SELECT 1
|
|
FROM alg_v_aanweziggebouw
|
|
WHERE UPPER (alg_gebouw_code) = UPPER (ud.fac_usrdata_omschr)
|
|
AND alg_locatie_key < il.alg_locatie_key)),
|
|
i.alg_gebouw_code =
|
|
(SELECT ig.alg_gebouw_code
|
|
FROM fac_v_aanwezigusrdata ud, -- Mapping AD-code -> gebouwcode
|
|
alg_v_aanweziggebouw ig,
|
|
alg_locatie il
|
|
WHERE ud.fac_usrtab_key = 1
|
|
AND UPPER (ud.fac_usrdata_code) = UPPER (i.prs_kenmerk1)
|
|
AND UPPER (ud.fac_usrdata_omschr) = UPPER (ig.alg_gebouw_code)
|
|
AND ig.alg_locatie_key = il.alg_locatie_key
|
|
AND NOT EXISTS
|
|
(SELECT 1
|
|
FROM alg_v_aanweziggebouw
|
|
WHERE UPPER (alg_gebouw_code) = UPPER (ud.fac_usrdata_omschr)
|
|
AND alg_locatie_key < il.alg_locatie_key)),
|
|
i.alg_verdieping_volgnr = 0,
|
|
i.alg_ruimte_nr = '_000'
|
|
WHERE NOT EXISTS -- Nog geen werkplek binnen Vestiging=District!
|
|
(SELECT 1
|
|
FROM fac_v_aanwezigusrdata ud, -- Mapping AD-code -> gebouwcode
|
|
alg_v_aanweziggebouw ig,
|
|
alg_locatie il,
|
|
prs_v_aanwezigperslid p,
|
|
prs_perslidwerkplek pw,
|
|
prs_werkplek cw,
|
|
alg_v_aanwezigruimte cr,
|
|
alg_verdieping cv,
|
|
alg_gebouw cg,
|
|
alg_locatie cl
|
|
WHERE ud.fac_usrtab_key = 1
|
|
AND UPPER (ud.fac_usrdata_code) = UPPER (i.prs_kenmerk1)
|
|
AND UPPER (ud.fac_usrdata_omschr) = UPPER (ig.alg_gebouw_code)
|
|
AND ig.alg_locatie_key = il.alg_locatie_key
|
|
AND NOT EXISTS
|
|
(SELECT 1
|
|
FROM alg_v_aanweziggebouw
|
|
WHERE UPPER (alg_gebouw_code) = UPPER (ud.fac_usrdata_omschr)
|
|
AND alg_locatie_key < il.alg_locatie_key)
|
|
AND p.prs_perslid_oslogin = i.prs_perslid_oslogin
|
|
AND p.prs_perslid_key = pw.prs_perslid_key
|
|
AND pw.prs_werkplek_key = cw.prs_werkplek_key
|
|
AND cw.prs_alg_ruimte_key = cr.alg_ruimte_key
|
|
AND cr.alg_verdieping_key = cv.alg_verdieping_key
|
|
AND cv.alg_gebouw_key = cg.alg_gebouw_key
|
|
AND cg.alg_locatie_key = cl.alg_locatie_key
|
|
AND cl.alg_district_key = il.alg_district_key);
|
|
|
|
COMMIT;
|
|
|
|
-- Locatie/Gebouw/Verdieping/Ruimte altijd volgens Werkplekruimte-kolom indien gevuld (dus ook
|
|
-- als formaat niet klopt, want dat resulteert tenminste -normaal gesproken- in foutlogging)!
|
|
UPDATE fac_imp_perslid i
|
|
SET i.alg_locatie_code =
|
|
(SELECT il.alg_locatie_code
|
|
FROM alg_v_aanweziggebouw ig, alg_locatie il
|
|
WHERE UPPER (ig.alg_gebouw_code) =
|
|
UPPER (SUBSTR (prs_kenmerk3, 1, INSTR (prs_kenmerk3, '-', 1, 1) - 1))
|
|
AND ig.alg_locatie_key = il.alg_locatie_key
|
|
AND NOT EXISTS
|
|
(SELECT 1
|
|
FROM alg_v_aanweziggebouw
|
|
WHERE UPPER (alg_gebouw_code) =
|
|
UPPER(SUBSTR (prs_kenmerk3, 1, INSTR (prs_kenmerk3, '-', 1, 1) - 1))
|
|
AND alg_locatie_key < il.alg_locatie_key)),
|
|
i.alg_gebouw_code =
|
|
SUBSTR (SUBSTR (prs_kenmerk3, 1, INSTR (prs_kenmerk3, '-', 1, 1) - 1), 1, 12),
|
|
i.alg_verdieping_volgnr =
|
|
fac.safe_to_number (SUBSTR (SUBSTR (prs_kenmerk3, INSTR (prs_kenmerk3, '-', 1, 1)
|
|
+ 1, INSTR (prs_kenmerk3, '-', 1, 2)
|
|
- INSTR (prs_kenmerk3, '-', 1, 1)
|
|
- 1), 1, 3)),
|
|
i.alg_ruimte_nr =
|
|
SUBSTR (SUBSTR (prs_kenmerk3, INSTR (prs_kenmerk3, '-', 1, 2) + 1), 1, 10)
|
|
WHERE i.prs_kenmerk3 IS NOT NULL;
|
|
|
|
COMMIT;
|
|
|
|
-- Afdeling bepalen via Vestiging-kolom -> ET (key=1) -> Gebouw -> Locatie -> District ->
|
|
-- Afdeling-3 (= Vestiging in organisatieboom)!
|
|
UPDATE fac_imp_perslid i
|
|
SET i.prs_afdeling_naam =
|
|
(SELECT MAX (a.prs_afdeling_upper)
|
|
FROM fac_v_aanwezigusrdata ud, -- Mapping AD-code -> gebouwcode
|
|
alg_v_aanweziggebouw ig,
|
|
alg_locatie il,
|
|
alg_district id,
|
|
prs_v_aanwezigafdeling a
|
|
WHERE ud.fac_usrtab_key = 1
|
|
AND UPPER (ud.fac_usrdata_code) = UPPER (i.prs_kenmerk1)
|
|
AND UPPER (ud.fac_usrdata_omschr) = UPPER (ig.alg_gebouw_code)
|
|
AND ig.alg_locatie_key = il.alg_locatie_key
|
|
AND il.alg_district_key = id.alg_district_key
|
|
AND UPPER (id.alg_district_omschrijving) = UPPER (a.prs_afdeling_omschrijving)
|
|
AND a.prs_bedrijf_key = 2
|
|
AND a.niveau = 3)
|
|
WHERE i.prs_perslid_oslogin IS NOT NULL
|
|
AND EXISTS
|
|
(SELECT 1
|
|
FROM fac_v_aanwezigusrdata ud, -- Mapping AD-code -> gebouwcode
|
|
alg_v_aanweziggebouw ig,
|
|
alg_locatie il,
|
|
alg_district id,
|
|
prs_v_aanwezigafdeling a
|
|
WHERE ud.fac_usrtab_key = 1
|
|
AND UPPER (ud.fac_usrdata_code) = UPPER (i.prs_kenmerk1)
|
|
AND UPPER (ud.fac_usrdata_omschr) = UPPER (ig.alg_gebouw_code)
|
|
AND ig.alg_locatie_key = il.alg_locatie_key
|
|
AND il.alg_district_key = id.alg_district_key
|
|
AND UPPER (id.alg_district_omschrijving) = UPPER (a.prs_afdeling_omschrijving)
|
|
AND a.prs_bedrijf_key = 2
|
|
AND a.niveau = 3);
|
|
|
|
COMMIT;
|
|
|
|
-- Afdeling 'ONB'; als Vestiging-kolom wel in ET (key=1), maar mapping op Afdeling-3 niet
|
|
-- mogelijk!
|
|
UPDATE fac_imp_perslid i
|
|
SET i.prs_afdeling_naam = 'ONB'
|
|
WHERE i.prs_perslid_oslogin IS NOT NULL
|
|
AND EXISTS
|
|
(SELECT 1
|
|
FROM fac_v_aanwezigusrdata ud -- Mapping AD-code -> gebouwcode
|
|
WHERE ud.fac_usrtab_key = 1
|
|
AND UPPER (ud.fac_usrdata_code) = UPPER (i.prs_kenmerk1))
|
|
AND NOT EXISTS
|
|
(SELECT 1
|
|
FROM fac_v_aanwezigusrdata ud, -- Mapping AD-code -> gebouwcode
|
|
alg_v_aanweziggebouw ig,
|
|
alg_locatie il,
|
|
alg_district id,
|
|
prs_v_aanwezigafdeling a
|
|
WHERE ud.fac_usrtab_key = 1
|
|
AND UPPER (ud.fac_usrdata_code) = UPPER (i.prs_kenmerk1)
|
|
AND UPPER (ud.fac_usrdata_omschr) = UPPER (ig.alg_gebouw_code)
|
|
AND ig.alg_locatie_key = il.alg_locatie_key
|
|
AND il.alg_district_key = id.alg_district_key
|
|
AND UPPER (id.alg_district_omschrijving) = UPPER (a.prs_afdeling_omschrijving)
|
|
AND a.prs_bedrijf_key = 2
|
|
AND a.niveau = 3);
|
|
|
|
COMMIT;
|
|
|
|
-- Afdeling altijd volgens Afdeling-kolom indien gevuld!
|
|
UPDATE fac_imp_perslid i
|
|
SET i.prs_afdeling_naam = SUBSTR (i.prs_kenmerk4, 1, 10)
|
|
WHERE i.prs_kenmerk4 IS NOT NULL;
|
|
|
|
COMMIT;
|
|
|
|
-- DJIN#36237: Functie-kolom altijd op 'Onbekend'!
|
|
--UPDATE fac_imp_perslid i
|
|
-- SET i.prs_srtperslid_omschrijving = COALESCE (i.prs_kenmerk2, 'Onbekend');
|
|
UPDATE fac_imp_perslid i
|
|
SET i.prs_srtperslid_omschrijving = 'Onbekend';
|
|
|
|
COMMIT;
|
|
|
|
-- DJIN#36237: Telefoon-kolom zoals in FACILITOR (voor import-doelgroep)!
|
|
UPDATE fac_imp_perslid i
|
|
SET i.prs_perslid_telefoonnr =
|
|
(SELECT p.prs_perslid_telefoonnr
|
|
FROM prs_perslid p
|
|
WHERE UPPER (p.prs_perslid_oslogin) = UPPER (i.prs_perslid_oslogin)),
|
|
i.prs_perslid_mobiel =
|
|
(SELECT p.prs_perslid_mobiel
|
|
FROM prs_perslid p
|
|
WHERE UPPER (p.prs_perslid_oslogin) = UPPER (i.prs_perslid_oslogin))
|
|
WHERE EXISTS
|
|
(SELECT 1
|
|
FROM prs_perslid p
|
|
WHERE p.prs_perslid_telefoonnr IS NOT NULL
|
|
AND UPPER (p.prs_perslid_oslogin) = UPPER (i.prs_perslid_oslogin));
|
|
|
|
COMMIT;
|
|
|
|
DELETE FROM fac_imp_perslid i
|
|
WHERE i.prs_perslid_oslogin IS NULL
|
|
OR NOT EXISTS
|
|
(SELECT 1
|
|
FROM fac_v_aanwezigusrdata ud -- Mapping AD-code -> gebouwcode
|
|
WHERE ud.fac_usrtab_key = 1
|
|
AND UPPER (ud.fac_usrdata_code) = UPPER (i.prs_kenmerk1));
|
|
|
|
COMMIT;
|
|
|
|
SELECT COUNT ( * ) INTO v_count FROM fac_imp_perslid;
|
|
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'S',
|
|
'Persoon: aantal te verwerken regels: ' || TO_CHAR (v_count),
|
|
'');
|
|
|
|
COMMIT;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
|
v_errormsg :=
|
|
'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ') ';
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
v_errormsg || v_errorhint,
|
|
'Inleesproces personen afgebroken!');
|
|
END djin_import_prs;
|
|
/
|
|
|
|
CREATE OR REPLACE PROCEDURE djin_update_prs (p_import_key IN NUMBER)
|
|
AS
|
|
-- Maximaal percentage aan nieuwe medewerkers tov. actieve medewerkers met een e-mail
|
|
c_max_delta_percentage NUMBER (10) := 25; -- 25%!
|
|
v_count_prs_import NUMBER (10); -- #actieve personen na import!
|
|
v_count_prs_actual NUMBER (10); -- #actieve personen voor import!
|
|
|
|
-- Let op! Personen die niet meer in dienst zijn -> niet in fac_imp_perslid!
|
|
-- Dubbele oslogins? Dan wordt iemand mogelijk niet verwijderd/INACTIEF!
|
|
-- DJIN#51705: Geen personen meer verwijderen (dit loopt nu via NACHTWERK).
|
|
--CURSOR c_del
|
|
--IS
|
|
-- SELECT p.prs_perslid_key, p.prs_perslid_oslogin
|
|
-- FROM prs_v_aanwezigperslid p
|
|
-- WHERE (p.prs_perslid_oslogin IS NULL OR p.prs_perslid_oslogin NOT LIKE '\_%' ESCAPE '\') -- ' tbv. opmaak
|
|
-- AND p.prs_perslid_oslogin2 IS NULL
|
|
-- AND NOT EXISTS
|
|
-- (SELECT 1
|
|
-- FROM fac_imp_perslid i
|
|
-- WHERE UPPER (i.prs_perslid_oslogin) = UPPER (p.prs_perslid_oslogin))
|
|
-- ORDER BY 2, 1;
|
|
BEGIN
|
|
-- Bepaal oslogin-match tussen FACILITOR en RECENT importbestand ofwel het aantal
|
|
-- actieve personen na import.
|
|
-- RECENT betekent niet meer dan een kwartiertje oud (14,4 minuten); dit voorkomt
|
|
-- dat - als er geen nieuw importbestand is aangeleverd - telkens dezelfde fouten
|
|
-- worden gerapporteerd (nl. op basis van een oud bestand in FAC_IMP_PERSLID).
|
|
--SELECT COUNT ( * )
|
|
-- INTO v_count_prs_import
|
|
-- FROM prs_v_aanwezigperslid p, fac_imp_perslid i
|
|
-- WHERE p.prs_perslid_oslogin IS NOT NULL
|
|
-- AND UPPER (p.prs_perslid_oslogin) = UPPER (i.prs_perslid_oslogin);
|
|
SELECT COUNT (DISTINCT prs_perslid_oslogin)
|
|
INTO v_count_prs_import
|
|
FROM fac_imp_perslid;
|
|
|
|
-- Bepaal huidig aantal actieve personen in FACILITOR.
|
|
SELECT DECODE (COUNT ( * ), 0, 1, COUNT ( * ))
|
|
INTO v_count_prs_actual
|
|
FROM prs_v_aanwezigperslid
|
|
WHERE prs_perslid_oslogin IS NOT NULL;
|
|
|
|
IF (TRUNC ( (v_count_prs_import / v_count_prs_actual) * 100) < (100 - c_max_delta_percentage))
|
|
THEN
|
|
fac.imp_writelog (
|
|
p_import_key,
|
|
'E',
|
|
'Verschil tussen huidig aantal en te importeren aantal personen te groot; zie specificatie!',
|
|
'- max. verschilpercentage = ['
|
|
|| TO_CHAR (c_max_delta_percentage)
|
|
|| '%]'
|
|
|| CHR (13) || CHR (10)
|
|
|| '- #personen/import = ['
|
|
|| TO_CHAR (v_count_prs_import)
|
|
|| ']'
|
|
|| CHR (13) || CHR (10)
|
|
|| '- #personen/huidig = ['
|
|
|| TO_CHAR (v_count_prs_actual)
|
|
|| ']');
|
|
|
|
RETURN;
|
|
END IF;
|
|
|
|
-- Generieke update.
|
|
prs.update_perslid (p_import_key, 'LOGIN', 'D');
|
|
|
|
-- Iedereen plaatsen/behouden in de groep FE_DJI (key = 421)!
|
|
INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key)
|
|
SELECT 421, p.prs_perslid_key
|
|
FROM prs_v_aanwezigperslid p
|
|
WHERE p.prs_perslid_oslogin IS NOT NULL
|
|
AND EXISTS
|
|
(SELECT 1
|
|
FROM fac_imp_perslid
|
|
WHERE UPPER (prs_perslid_oslogin) = UPPER (p.prs_perslid_oslogin))
|
|
AND NOT EXISTS
|
|
(SELECT 1
|
|
FROM fac_gebruikersgroep
|
|
WHERE fac_groep_key = 421 AND prs_perslid_key = p.prs_perslid_key);
|
|
|
|
-- Verwijder personen die niet meer in de import voorkomen.
|
|
-- DJIN#51705: Geen personen meer verwijderen (dit loopt nu via NACHTWERK).
|
|
--FOR rec IN c_del
|
|
--LOOP
|
|
-- prs.delete_perslid (p_import_key, rec.prs_perslid_key);
|
|
--END LOOP;
|
|
|
|
-- Verwijder ongebruikte functies; deze import bepaalt de functies!
|
|
DELETE FROM prs_srtperslid sp
|
|
WHERE NOT EXISTS
|
|
(SELECT 1
|
|
FROM prs_perslid p
|
|
WHERE p.prs_srtperslid_key = sp.prs_srtperslid_key);
|
|
|
|
COMMIT;
|
|
END djin_update_prs;
|
|
/
|
|
|
|
CREATE OR REPLACE PROCEDURE djin_anonimiseer (p_incl_nodelays IN BOOLEAN, -- TRUE=Geen delay, dus alles direct en toekomstig!
|
|
p_incl_oslogins IN BOOLEAN,
|
|
p_incl_tracking IN BOOLEAN)
|
|
AS
|
|
c_oud_medewerker VARCHAR2 (100) := 'Inactieve medewerker';
|
|
v_errormsg VARCHAR2 (1000);
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
v_datum DATE;
|
|
v_count_del NUMBER (10);
|
|
|
|
CURSOR c_afspraak (p_datum DATE)
|
|
IS
|
|
SELECT bez_afspraak_key
|
|
FROM bez_afspraak
|
|
WHERE bez_afspraak_datum < ADD_MONTHS (p_datum, -6)
|
|
ORDER BY bez_afspraak_key;
|
|
|
|
-- DJIN#39650: Verwijderen van kenmerk Bezorgadres (141) bij soortmelding
|
|
-- Aanvraag bloemen/boeketten (82).
|
|
CURSOR c_bezorgadres (p_datum DATE)
|
|
IS
|
|
SELECT km.mld_kenmerkmelding_key
|
|
FROM mld_melding m, mld_kenmerkmelding km
|
|
WHERE m.mld_stdmelding_key = 82 -- Aanvraag bloemen/boeketten
|
|
AND m.mld_melding_key = km.mld_melding_key
|
|
AND km.mld_kenmerk_key = 141 -- Bezorgadres
|
|
AND EXISTS (SELECT 1
|
|
FROM mld_v_aanwezigkenmerkmelding
|
|
WHERE mld_melding_key = m.mld_melding_key
|
|
AND mld_kenmerk_key = 21 -- Gewenste leverdatum
|
|
AND fac.safe_to_date (km.mld_kenmerkmelding_waarde, 'dd-mm-yyyy') < ADD_MONTHS (p_datum, -1))
|
|
ORDER BY km.mld_kenmerkmelding_key;
|
|
|
|
-- DJIN#56337: Verwijderen van kenmerken Kenteken (41) en Telefoonnummer (42)
|
|
-- bij activiteit Parkeren medewerker (110).
|
|
CURSOR c_res_parking (p_datum DATE)
|
|
IS
|
|
SELECT kw.res_kenmerkwaarde_key
|
|
FROM res_rsv_ruimte rrr, res_kenmerkwaarde kw
|
|
WHERE rrr.res_activiteit_key = 110 -- Parkeren medewerker
|
|
AND rrr.res_rsv_ruimte_tot < ADD_MONTHS (p_datum, -1)
|
|
AND rrr.res_rsv_ruimte_key = kw.res_rsv_ruimte_key
|
|
AND kw.res_kenmerk_key IN (41, 42) -- Kenteken/Telefoonnummer
|
|
ORDER BY kw.res_kenmerkwaarde_key;
|
|
|
|
-- SUBPROC
|
|
PROCEDURE prs_anonimiseer
|
|
AS
|
|
v_count_upd NUMBER (10);
|
|
v_count NUMBER (10);
|
|
v_tracking_oms VARCHAR2 (2048);
|
|
|
|
CURSOR c1
|
|
IS
|
|
SELECT '[' || TO_CHAR (p.prs_perslid_key) || '|' || p.prs_perslid_naam || '|' || p.prs_perslid_email || '] ' aanduiding,
|
|
p.prs_perslid_key
|
|
FROM prs_perslid p
|
|
WHERE (p.prs_perslid_oslogin IS NULL OR p.prs_perslid_oslogin NOT LIKE '\_%' ESCAPE '\') -- ' tbv. opmaak
|
|
AND p.prs_perslid_oslogin2 IS NULL
|
|
AND p.prs_perslid_apikey IS NULL -- Voor de zekerheid!
|
|
AND COALESCE (p.prs_perslid_login, p.prs_perslid_aanmaak) < ADD_MONTHS (SYSDATE, -12) -- Een jaar niet ingelogd!
|
|
AND (p.prs_perslid_verwijder IS NULL OR p.prs_perslid_upper != UPPER (c_oud_medewerker))
|
|
AND NOT EXISTS (SELECT 1 -- Geen actuele verplichtingen!
|
|
FROM prs_v_verplichting_keys
|
|
WHERE prs_perslid_key = p.prs_perslid_key)
|
|
ORDER BY 2;
|
|
|
|
CURSOR c2 (p_datum DATE)
|
|
IS
|
|
SELECT t.fac_tracking_key, t.fac_tracking_oms,
|
|
LENGTH (REPLACE (t.fac_tracking_oms || 'x', ' ', '')) - LENGTH (REPLACE (TRANSLATE (t.fac_tracking_oms || 'x', '@', ' '), ' ', '')) aant_email
|
|
FROM fac_tracking t, fac_srtnotificatie sn
|
|
WHERE t.fac_tracking_datum < ADD_MONTHS (p_datum, -12)
|
|
AND INSTR (t.fac_tracking_oms, '@') > 0
|
|
AND t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
|
AND (sn.fac_srtnotificatie_code LIKE '%MAI' OR sn.fac_srtnotificatie_code LIKE '%MA')
|
|
ORDER BY 1;
|
|
BEGIN
|
|
v_errormsg := 'Fout anonimiseren PRS/Medewerkers';
|
|
v_count_upd := 0;
|
|
FOR rec IN c1
|
|
LOOP
|
|
BEGIN
|
|
UPDATE prs_perslid
|
|
SET prs_perslid_naam = c_oud_medewerker,
|
|
prs_perslid_tussenvoegsel = NULL,
|
|
prs_perslid_voorletters = NULL,
|
|
prs_perslid_voornaam = NULL,
|
|
prs_perslid_initialen = NULL,
|
|
prs_perslid_geslacht = NULL,
|
|
prs_perslid_nr = NULL,
|
|
prs_perslid_telefoonnr = NULL,
|
|
prs_perslid_mobiel = NULL,
|
|
prs_perslid_email = NULL,
|
|
prs_perslid_oslogin = NULL, -- prs_perslid_oslogin2 = NULL
|
|
prs_perslid_verwijder = SYSDATE
|
|
WHERE prs_perslid_key = rec.prs_perslid_key;
|
|
IF MOD (v_count_upd, 1000) = 0 THEN COMMIT; END IF;
|
|
|
|
v_count_upd := v_count_upd + 1;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
|
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
|
fac.writelog ('DJIN_ANONIMISEER', 'W', rec.aanduiding || v_errormsg, '');
|
|
COMMIT;
|
|
END;
|
|
END LOOP;
|
|
|
|
fac.writelog ('DJIN_ANONIMISEER', 'S', 'Medewerkers/#geanonimiseerd: ' || TO_CHAR (v_count_upd), '');
|
|
COMMIT;
|
|
|
|
-- Wis afgesproken tracking als p_incl_tracking=TRUE!
|
|
IF p_incl_tracking
|
|
THEN
|
|
v_datum := TO_DATE ('31122099', 'ddmmyyyy');
|
|
ELSE
|
|
v_datum := SYSDATE;
|
|
END IF;
|
|
|
|
-- FCLT#56224: Als een gebruiker via SAML automatisch wordt aangemaakt,
|
|
-- dan wordt er bij die persoon getrackt:
|
|
-- Gebruiker 'Aaa Bbb' aangemaakt met key 999 voor idp 'XXX'
|
|
v_errormsg := 'Fout anonimiseren PRSUPD-tracking';
|
|
UPDATE fac_tracking
|
|
SET fac_tracking_oms = 'Gebruiker aangemaakt/gewijzigd'
|
|
WHERE fac_srtnotificatie_key = 78 -- PRSUPD
|
|
AND fac_tracking_oms IS NOT NULL
|
|
AND fac_tracking_datum < ADD_MONTHS (v_datum, -12);
|
|
COMMIT;
|
|
|
|
v_errormsg := 'Fout anonimiseren MLDBEH-tracking';
|
|
UPDATE fac_tracking
|
|
SET fac_tracking_oms = 'Behandelaar is toegewezen'
|
|
WHERE fac_srtnotificatie_key = 50 -- MLDBEH
|
|
AND fac_tracking_datum < ADD_MONTHS (v_datum, -12);
|
|
COMMIT;
|
|
|
|
v_errormsg := 'Fout anonimiseren ORDSNT/SNX-tracking';
|
|
UPDATE fac_tracking
|
|
SET fac_tracking_oms = 'Opdracht is verstuurd'
|
|
WHERE fac_srtnotificatie_key IN (67, 68) -- ORDSNT/SNX
|
|
AND fac_tracking_datum < ADD_MONTHS (v_datum, -12);
|
|
COMMIT;
|
|
|
|
v_errormsg := 'Fout anonimiseren INSOUT-tracking';
|
|
UPDATE fac_tracking
|
|
SET fac_tracking_oms = 'Object is uitgegeven'
|
|
WHERE fac_srtnotificatie_key = 98 -- INSOUT
|
|
AND fac_tracking_datum < ADD_MONTHS (v_datum, -12);
|
|
COMMIT;
|
|
|
|
v_errormsg := 'Fout anonimiseren mail-tracking';
|
|
v_count_upd := 0;
|
|
v_tracking_oms := '';
|
|
FOR rec IN c2 (v_datum)
|
|
LOOP
|
|
BEGIN
|
|
v_count := 0;
|
|
v_tracking_oms := rec.fac_tracking_oms;
|
|
WHILE v_count < rec.aant_email
|
|
LOOP
|
|
v_tracking_oms := SUBSTR (v_tracking_oms, 1, INSTR (SUBSTR (v_tracking_oms, 1, INSTR (v_tracking_oms, '@')), ' ', -1))
|
|
|| SUBSTR (v_tracking_oms, INSTR (v_tracking_oms, '@') + 1);
|
|
v_count := v_count + 1;
|
|
END LOOP;
|
|
|
|
UPDATE fac_tracking
|
|
SET fac_tracking_oms = v_tracking_oms
|
|
WHERE fac_tracking_key = rec.fac_tracking_key;
|
|
|
|
v_count_upd := v_count_upd + 1;
|
|
IF MOD (v_count_upd, 1000) = 0 THEN COMMIT; END IF;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
|
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
|
fac.writelog ('DJIN_ANONIMISEER', 'W', v_errormsg, '');
|
|
COMMIT;
|
|
END;
|
|
END LOOP;
|
|
fac.writelog ('DJIN_ANONIMISEER', 'S', 'Trackregels/#geanonimiseerd: ' || TO_CHAR (v_count_upd), '');
|
|
COMMIT;
|
|
END;
|
|
BEGIN
|
|
-- Anonimiseer medewerkers+trackregels. In Productie beide na 1 jaar en bij
|
|
-- anonimisering tbv. Test-omgevingen (als p_incl_tracking=TRUE) dan alleen
|
|
-- de tracking soms per direct (en toekomstig)!
|
|
prs_anonimiseer ();
|
|
|
|
-- Bij anonimisering tbv. Test-omgevingen (als p_incl_nodelays=TRUE) altijd
|
|
-- uitvoeren!
|
|
v_errormsg := 'Fout anonimiseren p_incl_nodelays=TRUE';
|
|
IF p_incl_nodelays
|
|
THEN
|
|
-- FCLT#56224: Leeg buffer-tabel, daarin vaak ook persoonsgegevens, etc.!
|
|
DELETE FROM fac_imp_file;
|
|
|
|
-- Wis naam- en telefoon-velden van medewerkers!
|
|
UPDATE prs_perslid
|
|
SET prs_perslid_naam = '[Geanonimiseerd]',
|
|
prs_perslid_tussenvoegsel = NULL,
|
|
prs_perslid_voorletters = NULL,
|
|
prs_perslid_voornaam = NULL,
|
|
prs_perslid_telefoonnr = NULL,
|
|
prs_perslid_mobiel = NULL
|
|
WHERE (prs_perslid_verwijder IS NULL OR prs_perslid_upper != UPPER (c_oud_medewerker));
|
|
COMMIT;
|
|
END IF;
|
|
|
|
-- Wis email- en oslogin-velden van medewerkers als p_incl_oslogins=TRUE
|
|
-- behalve van de gebruikers in '_Admin'-groepen (alleen bij anonimisering
|
|
-- tbv. Test-omgevingen)!
|
|
v_errormsg := 'Fout anonimiseren p_incl_oslogins=TRUE';
|
|
IF p_incl_oslogins
|
|
THEN
|
|
UPDATE prs_perslid p
|
|
SET p.prs_perslid_email = NULL,
|
|
p.prs_perslid_oslogin = NULL,
|
|
p.prs_perslid_oslogin2 = NULL
|
|
WHERE NOT EXISTS
|
|
(SELECT 1
|
|
FROM fac_groep g, fac_gebruikersgroep gg
|
|
WHERE g.fac_groep_upper LIKE '_ADMIN%'
|
|
AND g.fac_groep_key = gg.fac_groep_key
|
|
AND gg.prs_perslid_key = p.prs_perslid_key);
|
|
COMMIT;
|
|
END IF;
|
|
|
|
-- *** BEGIN:Wis specifieke andere zaken na afgesproken termijn of direct!
|
|
-- In Productie na de afgesproken termijn en alleen bij anonimisering tbv.
|
|
-- Test-omgevingen (als p_incl_nodelays=TRUE) per direct (en toekomstig)!
|
|
IF p_incl_nodelays
|
|
THEN
|
|
v_datum := TO_DATE ('31122099', 'ddmmyyyy');
|
|
ELSE
|
|
v_datum := SYSDATE;
|
|
END IF;
|
|
|
|
v_errormsg := 'Fout anonimiseren BEZ/Afspraken';
|
|
v_count_del := 0;
|
|
FOR rec IN c_afspraak (v_datum)
|
|
LOOP
|
|
-- Delete alle kenmerkwaarden van bezoekers bij te verwijderen afspraken.
|
|
DELETE FROM bez_kenmerkwaarde kw
|
|
WHERE EXISTS
|
|
(SELECT 1
|
|
FROM bez_bezoekers
|
|
WHERE bez_bezoekers_key = kw.bez_bezoekers_key
|
|
AND bez_afspraak_key = rec.bez_afspraak_key);
|
|
|
|
-- Delete alle bezoekers-tracking bij te verwijderen afspraken.
|
|
DELETE FROM fac_tracking t
|
|
WHERE t.fac_srtnotificatie_key IN (28, 29, 30, 31, 32) -- BEZBAD/BEZDON/BEZDO2/BEZOUT/BEZOU2
|
|
AND EXISTS
|
|
(SELECT 1
|
|
FROM bez_bezoekers
|
|
WHERE bez_bezoekers_key = t.fac_tracking_refkey
|
|
AND bez_afspraak_key = rec.bez_afspraak_key);
|
|
|
|
-- Delete alle bezoekers bij te verwijderen afspraken.
|
|
DELETE FROM bez_bezoekers
|
|
WHERE bez_afspraak_key = rec.bez_afspraak_key;
|
|
|
|
-- Delete alle afspraak-tracking bij te verwijderen afspraken.
|
|
DELETE FROM fac_tracking
|
|
WHERE fac_srtnotificatie_key IN (26, 27, 128) -- BEZMUT/BEZUPD/BEZMAI
|
|
AND fac_tracking_refkey = rec.bez_afspraak_key;
|
|
|
|
-- Delete alle te verwijderen afspraken.
|
|
DELETE FROM bez_afspraak
|
|
WHERE bez_afspraak_key = rec.bez_afspraak_key;
|
|
|
|
v_count_del := v_count_del + 1;
|
|
--fac.trackaction ('#BEZUPD', rec.bez_afspraak_key, NULL, v_nu, v_txt_anoniem);
|
|
END LOOP;
|
|
|
|
fac.writelog ('DJIN_ANONIMISEER', 'S', 'Afspraken/#verwijderd: ' || TO_CHAR (v_count_del), '');
|
|
COMMIT;
|
|
|
|
-- Delete bezorgadressen van 'Aanvraag bloemen/boeketten'-meldingen 1 maand
|
|
-- na leverdatum.
|
|
v_errormsg := 'Fout anonimiseren MLD/Bezorgadressen';
|
|
v_count_del := 0;
|
|
FOR rec IN c_bezorgadres (v_datum)
|
|
LOOP
|
|
DELETE FROM mld_kenmerkmelding
|
|
WHERE mld_kenmerkmelding_key = rec.mld_kenmerkmelding_key;
|
|
v_count_del := v_count_del + 1;
|
|
--fac.trackaction ('#MLDUPD', rec.mld_melding_key, NULL, v_nu, v_txt_anoniem);
|
|
END LOOP;
|
|
|
|
fac.writelog ('DJIN_ANONIMISEER', 'S', 'Bezorgadressen/#verwijderd: ' || TO_CHAR (v_count_del), '');
|
|
COMMIT;
|
|
|
|
-- Delete de kenmerkwaarden met keys 41=Kenteken en 42=Telefoonnummer van
|
|
-- reserveringen 1 maand nadat de reservering is geweest.
|
|
v_count_del := 0;
|
|
v_errormsg := 'Fout anonimiseren RES/Parkeerkenmerken';
|
|
FOR rec IN c_res_parking (v_datum)
|
|
LOOP
|
|
DELETE FROM res_kenmerkwaarde
|
|
WHERE res_kenmerkwaarde_key = rec.res_kenmerkwaarde_key;
|
|
v_count_del := v_count_del + 1;
|
|
--fac.trackaction ('#RESUPD', rec.res_rsv_ruimte_key, NULL, v_nu, v_txt_anoniem);
|
|
END LOOP;
|
|
|
|
fac.writelog ('DJIN_ANONIMISEER', 'S', 'Parkeerkenmerken/#verwijderd: ' || TO_CHAR (v_count_del), '');
|
|
COMMIT;
|
|
-- *** EINDE:Wis specifieke andere zaken na afgesproken termijn of direct!
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
|
v_errormsg := 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
|
fac.writelog ('DJIN_ANONIMISEER', 'E', 'Proces afgebroken!', v_errormsg);
|
|
END djin_anonimiseer;
|
|
/
|
|
|
|
-- Dummy export NACHTWERK!
|
|
CREATE OR REPLACE PROCEDURE djin_select_nachtwerk (p_applname IN VARCHAR2,
|
|
p_applrun IN VARCHAR2)
|
|
AS
|
|
v_errormsg VARCHAR2 (1000);
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
BEGIN
|
|
-- Anonimiseer medewerkers, trackregels en specifieke andere zaken zoals
|
|
-- het in Productie de bedoeling is (dus pas na afgesproken termijnen en
|
|
-- geen aanvullende anonimisering tbv. Test-omgevingen).
|
|
-- Vanuit djin.sql dus altijd alle parameters op FALSE (= geen extra's)!
|
|
djin_anonimiseer (FALSE, FALSE, FALSE);
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
|
v_errormsg := 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
|
fac.writelog (p_applname, 'E', 'Proces afgebroken!', v_errormsg);
|
|
END djin_select_nachtwerk;
|
|
/
|
|
|
|
|
|
/* Formatted on 31-5-2016 16:42:24 (QP5 v5.136.908.31019) */
|
|
CREATE OR REPLACE VIEW djin_v_rap_personen_groepen
|
|
(
|
|
fclt_f_naam,
|
|
email,
|
|
fclt_f_login,
|
|
fclt_f_laatste_login,
|
|
fclt_f_afdeling,
|
|
fclt_f_complex,
|
|
fclt_f_gebouw,
|
|
verdieping,
|
|
ruimte,
|
|
fclt_f_cluster,
|
|
fclt_f_autorisatiegroep,
|
|
aantal_rechten,
|
|
fclt_f_alleen_fe,
|
|
fclt_f_alt_login
|
|
)
|
|
AS
|
|
SELECT x.prs_perslid_naam_full,
|
|
x.prs_perslid_email,
|
|
x.prs_perslid_oslogin,
|
|
x.prs_perslid_login,
|
|
x.prs_afdeling_naam6,
|
|
pr.alg_locatie_code,
|
|
pr.alg_gebouw_code,
|
|
pr.alg_verdieping_code,
|
|
pr.alg_ruimte_nr,
|
|
cc.fac_usrdata_omschr,
|
|
pgr.fac_groep_omschrijving,
|
|
TO_CHAR (pgr.aantal),
|
|
DECODE (pg.aantal, NULL, 'Ja', 'Nee') alleen_fe,
|
|
DECODE (x.prs_perslid_oslogin2, NULL, 'Nee', 'Ja') alt_login
|
|
FROM (SELECT p.prs_perslid_key,
|
|
p.prs_perslid_email,
|
|
pf.prs_perslid_naam_full,
|
|
p.prs_perslid_oslogin,
|
|
p.prs_perslid_login,
|
|
p.prs_perslid_oslogin2,
|
|
a.prs_afdeling_naam6
|
|
FROM prs_perslid p, prs_v_perslid_fullnames_all pf, prs_v_afdeling_fullnames a
|
|
WHERE p.prs_perslid_key = pf.prs_perslid_key
|
|
AND p.prs_afdeling_key = a.prs_afdeling_key) x
|
|
LEFT JOIN (SELECT pw.prs_perslid_key,
|
|
wg.alg_locatie_key,
|
|
wg.alg_locatie_code,
|
|
wg.alg_gebouw_code,
|
|
wg.alg_verdieping_code,
|
|
wg.alg_ruimte_nr
|
|
FROM prs_perslidwerkplek pw, prs_v_werkplek_gegevens wg
|
|
WHERE pw.prs_werkplek_key = wg.prs_werkplek_key) pr -- PersoonRuimte
|
|
ON x.prs_perslid_key = pr.prs_perslid_key
|
|
LEFT JOIN (SELECT ok.alg_onrgoed_key, ud.fac_usrdata_omschr
|
|
FROM alg_v_aanwezigonrgoedkenmerk ok, fac_usrdata ud
|
|
WHERE ok.alg_onrgoed_niveau = 'L' -- Kenmerk van Complex
|
|
AND ok.alg_kenmerk_key = 1000 -- Cluster
|
|
AND ok.alg_onrgoedkenmerk_waarde = TO_CHAR (ud.fac_usrdata_key)) cc -- ComplexCluster
|
|
ON pr.alg_locatie_key = cc.alg_onrgoed_key
|
|
LEFT JOIN ( SELECT prs_perslid_key, COUNT ( * ) aantal
|
|
FROM fac_gebruikersgroep
|
|
WHERE fac_groep_key != 1 -- _Default
|
|
GROUP BY prs_perslid_key) pg -- PersoonGroepen
|
|
ON x.prs_perslid_key = pg.prs_perslid_key
|
|
LEFT JOIN ( SELECT gg.prs_perslid_key, g.fac_groep_omschrijving, COUNT ( * ) aantal
|
|
FROM fac_gebruikersgroep gg, fac_groep g, fac_groeprechten gr
|
|
WHERE gg.fac_groep_key != 1 -- _Default
|
|
AND gg.fac_groep_key = g.fac_groep_key
|
|
AND g.fac_groep_key = gr.fac_groep_key
|
|
GROUP BY gg.prs_perslid_key, g.fac_groep_omschrijving) pgr -- PersoonGroepRechten
|
|
ON x.prs_perslid_key = pgr.prs_perslid_key;
|
|
|
|
|
|
-- DJIN#37160: KPI-rapportages (incl. exports via NACHTWERK-taak)
|
|
-- 90=PRSSYS
|
|
-- *** PER MAAND ***
|
|
/* Formatted on 30-8-2016 11:42:24 (QP5 v5.136.908.31019) */
|
|
CREATE OR REPLACE VIEW djin_v_rap_kpi_mld_std
|
|
(
|
|
fclt_3d_locatie_key,
|
|
fclt_f_maand,
|
|
fclt_f_type,
|
|
fclt_f_vakgroep,
|
|
fclt_f_cluster,
|
|
fclt_f_vestiging,
|
|
fclt_f_complex,
|
|
n_tot_mld_std_cx,
|
|
n_ac_mld_std_cx,
|
|
n_uv_mld_std_cx,
|
|
ac_mld_std_nl,
|
|
ac_mld_std_cl,
|
|
ac_mld_std_vt,
|
|
ac_mld_std_cx,
|
|
uv_mld_std_nl,
|
|
uv_mld_std_cl,
|
|
uv_mld_std_vt,
|
|
uv_mld_std_cx
|
|
)
|
|
AS
|
|
WITH mldstdcx -- Per vakgroep/complex onder vakgroeptype=3+4 de STD-meldingen=normaal+laag op MLDAFM-tijd!
|
|
AS ( SELECT l.alg_locatie_key,
|
|
TO_CHAR (t.fac_tracking_datum, 'yyyy-mm') maand,
|
|
sd.ins_srtdiscipline_prefix type,
|
|
md.ins_discipline_omschrijving vakgroep,
|
|
COALESCE (ud.fac_usrdata_omschr, 'Onbekend') cl,
|
|
d.alg_district_omschrijving vt,
|
|
l.alg_locatie_omschrijving cx,
|
|
COUNT ( * ) totaal,
|
|
SUM (DECODE (
|
|
SIGN(m.mld_melding_acceptdatum_std - fac.gettrackingdate ('MLDACP', m.mld_melding_key)),
|
|
-1, 0,
|
|
1))
|
|
acoptijd,
|
|
SUM (DECODE (
|
|
SIGN(m.mld_melding_einddatum_std - TRUNC (t.fac_tracking_datum, 'mi')),
|
|
-1, 0,
|
|
1))
|
|
uvoptijd
|
|
FROM fac_tracking t,
|
|
mld_melding m,
|
|
mld_stdmelding sm, -- Ook verwijderde meldingen,
|
|
mld_discipline md, -- en verwijderde vakgroepen,
|
|
ins_srtdiscipline sd, -- en verwijderde vakgroeptypen,
|
|
alg_locatie l, -- en verwijderde locaties,
|
|
alg_district d, -- en verwijderde districten!
|
|
alg_v_aanwezigonrgoedkenmerk ok,
|
|
fac_usrdata ud
|
|
WHERE t.fac_srtnotificatie_key = 38 -- MLDAFM
|
|
AND t.fac_tracking_datum > ADD_MONTHS (TRUNC (SYSDATE, 'mm'), -25)
|
|
AND t.fac_tracking_refkey = m.mld_melding_key
|
|
--AND m.mld_melding_status IN (5, 6) -- Afgemeld/Verwerkt
|
|
AND m.mld_melding_start_key IS NULL -- Muv. vervolgmeldingen
|
|
AND m.mld_melding_spoed IN (3, 4) -- Normaal/Laag
|
|
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
|
AND sm.mld_ins_discipline_key = md.ins_discipline_key
|
|
AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
|
AND sd.ins_srtdiscipline_key IN (3, 4) -- Melding Facilitair/Aanvraag
|
|
AND m.mld_alg_locatie_key = l.alg_locatie_key
|
|
AND l.alg_district_key = d.alg_district_key
|
|
AND l.alg_locatie_key = ok.alg_onrgoed_key(+)
|
|
AND ok.alg_onrgoed_niveau(+) = 'L'
|
|
AND ok.alg_kenmerk_key(+) = 1000 -- Cluster
|
|
AND ok.alg_onrgoedkenmerk_waarde = TO_CHAR (ud.fac_usrdata_key(+))
|
|
GROUP BY l.alg_locatie_key,
|
|
TO_CHAR (t.fac_tracking_datum, 'yyyy-mm'),
|
|
sd.ins_srtdiscipline_prefix,
|
|
md.ins_discipline_omschrijving,
|
|
COALESCE (ud.fac_usrdata_omschr, 'Onbekend'),
|
|
d.alg_district_omschrijving,
|
|
l.alg_locatie_omschrijving)
|
|
SELECT cx.alg_locatie_key, nl.maand, nl.type, nl.vakgroep, cl.cl, vt.vt, cx.cx, -- Per vakgroep per vakgroeptype!
|
|
TO_CHAR (cx.totaal), TO_CHAR (cx.acoptijd), TO_CHAR (cx.uvoptijd),
|
|
TO_CHAR (100 * nl.ac_nl, '990') || '%',
|
|
TO_CHAR (100 * cl.ac_cl, '990') || '%',
|
|
TO_CHAR (100 * vt.ac_vt, '990') || '%',
|
|
TO_CHAR (100 * (cx.acoptijd / cx.totaal), '990') || '%',
|
|
TO_CHAR (100 * nl.uv_nl, '990') || '%',
|
|
TO_CHAR (100 * cl.uv_cl, '990') || '%',
|
|
TO_CHAR (100 * vt.uv_vt, '990') || '%',
|
|
TO_CHAR (100 * (cx.uvoptijd / cx.totaal), '990') || '%'
|
|
FROM ( SELECT maand, type, vakgroep, SUM (acoptijd) / SUM (totaal) ac_nl, SUM (uvoptijd) / SUM (totaal) uv_nl
|
|
FROM mldstdcx
|
|
GROUP BY maand, type, vakgroep) nl
|
|
LEFT JOIN ( SELECT maand, type, vakgroep, cl, SUM (acoptijd) / SUM (totaal) ac_cl, SUM (uvoptijd) / SUM (totaal) uv_cl
|
|
FROM mldstdcx
|
|
GROUP BY maand, type, vakgroep, cl) cl
|
|
ON nl.maand = cl.maand AND nl.type = cl.type AND nl.vakgroep = cl.vakgroep
|
|
LEFT JOIN ( SELECT maand, type, vakgroep, cl, vt, SUM (acoptijd) / SUM (totaal) ac_vt, SUM (uvoptijd) / SUM (totaal) uv_vt
|
|
FROM mldstdcx
|
|
GROUP BY maand, type, vakgroep, cl, vt) vt
|
|
ON cl.maand = vt.maand AND cl.type = vt.type AND cl.vakgroep = vt.vakgroep AND cl.cl = vt.cl
|
|
LEFT JOIN (SELECT alg_locatie_key, maand, type, vakgroep, cl, vt, cx, totaal, acoptijd, uvoptijd
|
|
FROM mldstdcx) cx
|
|
ON vt.maand = cx.maand AND vt.type = cx.type AND vt.vakgroep = cx.vakgroep AND vt.cl = cx.cl AND vt.vt = cx.vt
|
|
UNION ALL -- ALLE vakgroepen per vakgroeptype!
|
|
SELECT cx.alg_locatie_key, nl.maand, nl.type, nl.vakgroep, cl.cl, vt.vt, cx.cx,
|
|
TO_CHAR (cx.totaal), TO_CHAR (cx.acoptijd), TO_CHAR (cx.uvoptijd),
|
|
TO_CHAR (100 * nl.ac_nl, '990') || '%',
|
|
TO_CHAR (100 * cl.ac_cl, '990') || '%',
|
|
TO_CHAR (100 * vt.ac_vt, '990') || '%',
|
|
TO_CHAR (100 * (cx.acoptijd / cx.totaal), '990') || '%',
|
|
TO_CHAR (100 * nl.uv_nl, '990') || '%',
|
|
TO_CHAR (100 * cl.uv_cl, '990') || '%',
|
|
TO_CHAR (100 * vt.uv_vt, '990') || '%',
|
|
TO_CHAR (100 * (cx.uvoptijd / cx.totaal), '990') || '%'
|
|
FROM ( SELECT maand, type, 'Totaal' vakgroep, SUM (acoptijd) / SUM (totaal) ac_nl, SUM (uvoptijd) / SUM (totaal) uv_nl
|
|
FROM mldstdcx
|
|
GROUP BY maand, type, 'Totaal') nl
|
|
LEFT JOIN ( SELECT maand, type, 'Totaal' vakgroep, cl, SUM (acoptijd) / SUM (totaal) ac_cl, SUM (uvoptijd) / SUM (totaal) uv_cl
|
|
FROM mldstdcx
|
|
GROUP BY maand, type, 'Totaal', cl) cl
|
|
ON nl.maand = cl.maand AND nl.type = cl.type AND nl.vakgroep = cl.vakgroep
|
|
LEFT JOIN ( SELECT maand, type, 'Totaal' vakgroep, cl, vt, SUM (acoptijd) / SUM (totaal) ac_vt, SUM (uvoptijd) / SUM (totaal) uv_vt
|
|
FROM mldstdcx
|
|
GROUP BY maand, type, 'Totaal', cl, vt) vt
|
|
ON cl.maand = vt.maand AND cl.type = vt.type AND cl.vakgroep = vt.vakgroep AND cl.cl = vt.cl
|
|
LEFT JOIN ( SELECT alg_locatie_key, maand, type, 'Totaal' vakgroep, cl, vt, cx, SUM (totaal) totaal, SUM (acoptijd) acoptijd, SUM (uvoptijd) uvoptijd
|
|
FROM mldstdcx
|
|
GROUP BY alg_locatie_key, maand, type, 'Totaal', cl, vt, cx) cx
|
|
ON vt.maand = cx.maand AND vt.type = cx.type AND vt.vakgroep = cx.vakgroep AND vt.cl = cx.cl AND vt.vt = cx.vt
|
|
UNION ALL -- Per vakgroep over BEIDE vakgroeptypen!
|
|
SELECT cx.alg_locatie_key, nl.maand, nl.type, nl.vakgroep, cl.cl, vt.vt, cx.cx,
|
|
TO_CHAR (cx.totaal), TO_CHAR (cx.acoptijd), TO_CHAR (cx.uvoptijd),
|
|
TO_CHAR (100 * nl.ac_nl, '990') || '%',
|
|
TO_CHAR (100 * cl.ac_cl, '990') || '%',
|
|
TO_CHAR (100 * vt.ac_vt, '990') || '%',
|
|
TO_CHAR (100 * (cx.acoptijd / cx.totaal), '990') || '%',
|
|
TO_CHAR (100 * nl.uv_nl, '990') || '%',
|
|
TO_CHAR (100 * cl.uv_cl, '990') || '%',
|
|
TO_CHAR (100 * vt.uv_vt, '990') || '%',
|
|
TO_CHAR (100 * (cx.uvoptijd / cx.totaal), '990') || '%'
|
|
FROM ( SELECT maand, 'Beide' type, vakgroep, SUM (acoptijd) / SUM (totaal) ac_nl, SUM (uvoptijd) / SUM (totaal) uv_nl
|
|
FROM mldstdcx
|
|
GROUP BY maand, 'Beide', vakgroep) nl
|
|
LEFT JOIN ( SELECT maand, 'Beide' type, vakgroep, cl, SUM (acoptijd) / SUM (totaal) ac_cl, SUM (uvoptijd) / SUM (totaal) uv_cl
|
|
FROM mldstdcx
|
|
GROUP BY maand, 'Beide', vakgroep, cl) cl
|
|
ON nl.maand = cl.maand AND nl.type = cl.type AND nl.vakgroep = cl.vakgroep
|
|
LEFT JOIN ( SELECT maand, 'Beide' type, vakgroep, cl, vt, SUM (acoptijd) / SUM (totaal) ac_vt, SUM (uvoptijd) / SUM (totaal) uv_vt
|
|
FROM mldstdcx
|
|
GROUP BY maand, 'Beide', vakgroep, cl, vt) vt
|
|
ON cl.maand = vt.maand AND cl.type = vt.type AND cl.vakgroep = vt.vakgroep AND cl.cl = vt.cl
|
|
LEFT JOIN ( SELECT alg_locatie_key, maand, 'Beide' type, vakgroep, cl, vt, cx, SUM (totaal) totaal, SUM (acoptijd) acoptijd, SUM (uvoptijd) uvoptijd
|
|
FROM mldstdcx
|
|
GROUP BY alg_locatie_key, maand, 'Beide', vakgroep, cl, vt, cx) cx
|
|
ON vt.maand = cx.maand AND vt.type = cx.type AND vt.vakgroep = cx.vakgroep AND vt.cl = cx.cl AND vt.vt = cx.vt
|
|
UNION ALL -- ALLE vakgroepen over BEIDE vakgroeptypen!
|
|
SELECT cx.alg_locatie_key, nl.maand, nl.type, nl.vakgroep, cl.cl, vt.vt, cx.cx,
|
|
TO_CHAR (cx.totaal), TO_CHAR (cx.acoptijd), TO_CHAR (cx.uvoptijd),
|
|
TO_CHAR (100 * nl.ac_nl, '990') || '%',
|
|
TO_CHAR (100 * cl.ac_cl, '990') || '%',
|
|
TO_CHAR (100 * vt.ac_vt, '990') || '%',
|
|
TO_CHAR (100 * (cx.acoptijd / cx.totaal), '990') || '%',
|
|
TO_CHAR (100 * nl.uv_nl, '990') || '%',
|
|
TO_CHAR (100 * cl.uv_cl, '990') || '%',
|
|
TO_CHAR (100 * vt.uv_vt, '990') || '%',
|
|
TO_CHAR (100 * (cx.uvoptijd / cx.totaal), '990') || '%'
|
|
FROM ( SELECT maand, 'Beide' type, 'Totaal' vakgroep, SUM (acoptijd) / SUM (totaal) ac_nl, SUM (uvoptijd) / SUM (totaal) uv_nl
|
|
FROM mldstdcx
|
|
GROUP BY maand, 'Beide', 'Totaal') nl
|
|
LEFT JOIN ( SELECT maand, 'Beide' type, 'Totaal' vakgroep, cl, SUM (acoptijd) / SUM (totaal) ac_cl, SUM (uvoptijd) / SUM (totaal) uv_cl
|
|
FROM mldstdcx
|
|
GROUP BY maand, 'Beide', 'Totaal', cl) cl
|
|
ON nl.maand = cl.maand AND nl.type = cl.type AND nl.vakgroep = cl.vakgroep
|
|
LEFT JOIN ( SELECT maand, 'Beide' type, 'Totaal' vakgroep, cl, vt, SUM (acoptijd) / SUM (totaal) ac_vt, SUM (uvoptijd) / SUM (totaal) uv_vt
|
|
FROM mldstdcx
|
|
GROUP BY maand, 'Beide', 'Totaal', cl, vt) vt
|
|
ON cl.maand = vt.maand AND cl.type = vt.type AND cl.vakgroep = vt.vakgroep AND cl.cl = vt.cl
|
|
LEFT JOIN ( SELECT alg_locatie_key, maand, 'Beide' type, 'Totaal' vakgroep, cl, vt, cx, SUM (totaal) totaal, SUM (acoptijd) acoptijd, SUM (uvoptijd) uvoptijd
|
|
FROM mldstdcx
|
|
GROUP BY alg_locatie_key, maand, 'Beide', 'Totaal', cl, vt, cx) cx
|
|
ON vt.maand = cx.maand AND vt.type = cx.type AND vt.vakgroep = cx.vakgroep AND vt.cl = cx.cl AND vt.vt = cx.vt;
|
|
|
|
CREATE OR REPLACE VIEW djin_v_export_kpi_mld_std
|
|
(
|
|
result,
|
|
result_order
|
|
)
|
|
AS
|
|
SELECT '"maand"'
|
|
|| ';"type"'
|
|
|| ';"vakgroep"'
|
|
|| ';"cluster"'
|
|
|| ';"vestiging"'
|
|
|| ';"complex"'
|
|
|| ';"n_tot_mld_std_cx"'
|
|
|| ';"n_ac_mld_std_cx"'
|
|
|| ';"n_uv_mld_std_cx"'
|
|
|| ';"ac_mld_std_nl"'
|
|
|| ';"ac_mld_std_cl"'
|
|
|| ';"ac_mld_std_vt"'
|
|
|| ';"ac_mld_std_cx"'
|
|
|| ';"uv_mld_std_nl"'
|
|
|| ';"uv_mld_std_cl"'
|
|
|| ';"uv_mld_std_vt"'
|
|
|| ';"uv_mld_std_cx"',
|
|
0
|
|
FROM DUAL
|
|
UNION ALL
|
|
SELECT '"'
|
|
|| fclt_f_maand
|
|
|| '";"'
|
|
|| fclt_f_type
|
|
|| '";"'
|
|
|| fclt_f_vakgroep
|
|
|| '";"'
|
|
|| fclt_f_cluster
|
|
|| '";"'
|
|
|| fclt_f_vestiging
|
|
|| '";"'
|
|
|| fclt_f_complex
|
|
|| '";"'
|
|
|| n_tot_mld_std_cx
|
|
|| '";"'
|
|
|| n_ac_mld_std_cx
|
|
|| '";"'
|
|
|| n_uv_mld_std_cx
|
|
|| '";"'
|
|
|| ac_mld_std_nl
|
|
|| '";"'
|
|
|| ac_mld_std_cl
|
|
|| '";"'
|
|
|| ac_mld_std_vt
|
|
|| '";"'
|
|
|| ac_mld_std_cx
|
|
|| '";"'
|
|
|| uv_mld_std_nl
|
|
|| '";"'
|
|
|| uv_mld_std_cl
|
|
|| '";"'
|
|
|| uv_mld_std_vt
|
|
|| '";"'
|
|
|| uv_mld_std_cx
|
|
|| '"',
|
|
1
|
|
FROM djin_v_rap_kpi_mld_std;
|
|
|
|
CREATE OR REPLACE VIEW djin_v_rap_kpi_mld_urg
|
|
(
|
|
fclt_3d_locatie_key,
|
|
fclt_f_maand,
|
|
fclt_f_type,
|
|
fclt_f_vakgroep,
|
|
fclt_f_cluster,
|
|
fclt_f_vestiging,
|
|
fclt_f_complex,
|
|
n_tot_mld_urg_cx,
|
|
n_ac_mld_urg_cx,
|
|
n_uv_mld_urg_cx,
|
|
ac_mld_urg_nl,
|
|
ac_mld_urg_cl,
|
|
ac_mld_urg_vt,
|
|
ac_mld_urg_cx,
|
|
uv_mld_urg_nl,
|
|
uv_mld_urg_cl,
|
|
uv_mld_urg_vt,
|
|
uv_mld_urg_cx
|
|
)
|
|
AS
|
|
WITH mldurgcx -- Per vakgroep/complex onder vakgroeptype=3+4 de URG-meldingen=kritiek+hoog op MLDAFM-tijd!
|
|
AS ( SELECT l.alg_locatie_key,
|
|
TO_CHAR (t.fac_tracking_datum, 'yyyy-mm') maand,
|
|
sd.ins_srtdiscipline_prefix type,
|
|
md.ins_discipline_omschrijving vakgroep,
|
|
COALESCE (ud.fac_usrdata_omschr, 'Onbekend') cl,
|
|
d.alg_district_omschrijving vt,
|
|
l.alg_locatie_omschrijving cx,
|
|
COUNT ( * ) totaal,
|
|
SUM (DECODE (
|
|
SIGN(m.mld_melding_acceptdatum_std - fac.gettrackingdate ('MLDACP', m.mld_melding_key)),
|
|
-1, 0,
|
|
1))
|
|
acoptijd,
|
|
SUM (DECODE (
|
|
SIGN(m.mld_melding_einddatum_std - TRUNC (t.fac_tracking_datum, 'mi')),
|
|
-1, 0,
|
|
1))
|
|
uvoptijd
|
|
FROM fac_tracking t,
|
|
mld_melding m,
|
|
mld_stdmelding sm, -- Ook verwijderde meldingen,
|
|
mld_discipline md, -- en verwijderde vakgroepen,
|
|
ins_srtdiscipline sd, -- en verwijderde vakgroeptypen,
|
|
alg_locatie l, -- en verwijderde locaties,
|
|
alg_district d, -- en verwijderde districten!
|
|
alg_v_aanwezigonrgoedkenmerk ok,
|
|
fac_usrdata ud
|
|
WHERE t.fac_srtnotificatie_key = 38 -- MLDAFM
|
|
AND t.fac_tracking_datum > ADD_MONTHS (TRUNC (SYSDATE, 'mm'), -25)
|
|
AND t.fac_tracking_refkey = m.mld_melding_key
|
|
--AND m.mld_melding_status IN (5, 6) -- Afgemeld/Verwerkt
|
|
AND m.mld_melding_start_key IS NULL -- Muv. vervolgmeldingen
|
|
AND m.mld_melding_spoed IN (1, 2) -- Kritisch/Hoog
|
|
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
|
AND sm.mld_ins_discipline_key = md.ins_discipline_key
|
|
AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
|
AND sd.ins_srtdiscipline_key IN (3, 4) -- Melding Facilitair/Aanvraag
|
|
AND m.mld_alg_locatie_key = l.alg_locatie_key
|
|
AND l.alg_district_key = d.alg_district_key
|
|
AND l.alg_locatie_key = ok.alg_onrgoed_key(+)
|
|
AND ok.alg_onrgoed_niveau(+) = 'L'
|
|
AND ok.alg_kenmerk_key(+) = 1000 -- Cluster
|
|
AND ok.alg_onrgoedkenmerk_waarde = TO_CHAR (ud.fac_usrdata_key(+))
|
|
GROUP BY l.alg_locatie_key,
|
|
TO_CHAR (t.fac_tracking_datum, 'yyyy-mm'),
|
|
sd.ins_srtdiscipline_prefix,
|
|
md.ins_discipline_omschrijving,
|
|
COALESCE (ud.fac_usrdata_omschr, 'Onbekend'),
|
|
d.alg_district_omschrijving,
|
|
l.alg_locatie_omschrijving)
|
|
SELECT cx.alg_locatie_key, nl.maand, nl.type, nl.vakgroep, cl.cl, vt.vt, cx.cx, -- Per vakgroep per vakgroeptype!
|
|
TO_CHAR (cx.totaal), TO_CHAR (cx.acoptijd), TO_CHAR (cx.uvoptijd),
|
|
TO_CHAR (100 * nl.ac_nl, '990') || '%',
|
|
TO_CHAR (100 * cl.ac_cl, '990') || '%',
|
|
TO_CHAR (100 * vt.ac_vt, '990') || '%',
|
|
TO_CHAR (100 * (cx.acoptijd / cx.totaal), '990') || '%',
|
|
TO_CHAR (100 * nl.uv_nl, '990') || '%',
|
|
TO_CHAR (100 * cl.uv_cl, '990') || '%',
|
|
TO_CHAR (100 * vt.uv_vt, '990') || '%',
|
|
TO_CHAR (100 * (cx.uvoptijd / cx.totaal), '990') || '%'
|
|
FROM ( SELECT maand, type, vakgroep, SUM (acoptijd) / SUM (totaal) ac_nl, SUM (uvoptijd) / SUM (totaal) uv_nl
|
|
FROM mldurgcx
|
|
GROUP BY maand, type, vakgroep) nl
|
|
LEFT JOIN ( SELECT maand, type, vakgroep, cl, SUM (acoptijd) / SUM (totaal) ac_cl, SUM (uvoptijd) / SUM (totaal) uv_cl
|
|
FROM mldurgcx
|
|
GROUP BY maand, type, vakgroep, cl) cl
|
|
ON nl.maand = cl.maand AND nl.type = cl.type AND nl.vakgroep = cl.vakgroep
|
|
LEFT JOIN ( SELECT maand, type, vakgroep, cl, vt, SUM (acoptijd) / SUM (totaal) ac_vt, SUM (uvoptijd) / SUM (totaal) uv_vt
|
|
FROM mldurgcx
|
|
GROUP BY maand, type, vakgroep, cl, vt) vt
|
|
ON cl.maand = vt.maand AND cl.type = vt.type AND cl.vakgroep = vt.vakgroep AND cl.cl = vt.cl
|
|
LEFT JOIN (SELECT alg_locatie_key, maand, type, vakgroep, cl, vt, cx, totaal, acoptijd, uvoptijd
|
|
FROM mldurgcx) cx
|
|
ON vt.maand = cx.maand AND vt.type = cx.type AND vt.vakgroep = cx.vakgroep AND vt.cl = cx.cl AND vt.vt = cx.vt
|
|
UNION ALL -- ALLE vakgroepen per vakgroeptype!
|
|
SELECT cx.alg_locatie_key, nl.maand, nl.type, nl.vakgroep, cl.cl, vt.vt, cx.cx,
|
|
TO_CHAR (cx.totaal), TO_CHAR (cx.acoptijd), TO_CHAR (cx.uvoptijd),
|
|
TO_CHAR (100 * nl.ac_nl, '990') || '%',
|
|
TO_CHAR (100 * cl.ac_cl, '990') || '%',
|
|
TO_CHAR (100 * vt.ac_vt, '990') || '%',
|
|
TO_CHAR (100 * (cx.acoptijd / cx.totaal), '990') || '%',
|
|
TO_CHAR (100 * nl.uv_nl, '990') || '%',
|
|
TO_CHAR (100 * cl.uv_cl, '990') || '%',
|
|
TO_CHAR (100 * vt.uv_vt, '990') || '%',
|
|
TO_CHAR (100 * (cx.uvoptijd / cx.totaal), '990') || '%'
|
|
FROM ( SELECT maand, type, 'Totaal' vakgroep, SUM (acoptijd) / SUM (totaal) ac_nl, SUM (uvoptijd) / SUM (totaal) uv_nl
|
|
FROM mldurgcx
|
|
GROUP BY maand, type, 'Totaal') nl
|
|
LEFT JOIN ( SELECT maand, type, 'Totaal' vakgroep, cl, SUM (acoptijd) / SUM (totaal) ac_cl, SUM (uvoptijd) / SUM (totaal) uv_cl
|
|
FROM mldurgcx
|
|
GROUP BY maand, type, 'Totaal', cl) cl
|
|
ON nl.maand = cl.maand AND nl.type = cl.type AND nl.vakgroep = cl.vakgroep
|
|
LEFT JOIN ( SELECT maand, type, 'Totaal' vakgroep, cl, vt, SUM (acoptijd) / SUM (totaal) ac_vt, SUM (uvoptijd) / SUM (totaal) uv_vt
|
|
FROM mldurgcx
|
|
GROUP BY maand, type, 'Totaal', cl, vt) vt
|
|
ON cl.maand = vt.maand AND cl.type = vt.type AND cl.vakgroep = vt.vakgroep AND cl.cl = vt.cl
|
|
LEFT JOIN ( SELECT alg_locatie_key, maand, type, 'Totaal' vakgroep, cl, vt, cx, SUM (totaal) totaal, SUM (acoptijd) acoptijd, SUM (uvoptijd) uvoptijd
|
|
FROM mldurgcx
|
|
GROUP BY alg_locatie_key, maand, type, 'Totaal', cl, vt, cx) cx
|
|
ON vt.maand = cx.maand AND vt.type = cx.type AND vt.vakgroep = cx.vakgroep AND vt.cl = cx.cl AND vt.vt = cx.vt
|
|
UNION ALL -- Per vakgroep over BEIDE vakgroeptypen!
|
|
SELECT cx.alg_locatie_key, nl.maand, nl.type, nl.vakgroep, cl.cl, vt.vt, cx.cx,
|
|
TO_CHAR (cx.totaal), TO_CHAR (cx.acoptijd), TO_CHAR (cx.uvoptijd),
|
|
TO_CHAR (100 * nl.ac_nl, '990') || '%',
|
|
TO_CHAR (100 * cl.ac_cl, '990') || '%',
|
|
TO_CHAR (100 * vt.ac_vt, '990') || '%',
|
|
TO_CHAR (100 * (cx.acoptijd / cx.totaal), '990') || '%',
|
|
TO_CHAR (100 * nl.uv_nl, '990') || '%',
|
|
TO_CHAR (100 * cl.uv_cl, '990') || '%',
|
|
TO_CHAR (100 * vt.uv_vt, '990') || '%',
|
|
TO_CHAR (100 * (cx.uvoptijd / cx.totaal), '990') || '%'
|
|
FROM ( SELECT maand, 'Beide' type, vakgroep, SUM (acoptijd) / SUM (totaal) ac_nl, SUM (uvoptijd) / SUM (totaal) uv_nl
|
|
FROM mldurgcx
|
|
GROUP BY maand, 'Beide', vakgroep) nl
|
|
LEFT JOIN ( SELECT maand, 'Beide' type, vakgroep, cl, SUM (acoptijd) / SUM (totaal) ac_cl, SUM (uvoptijd) / SUM (totaal) uv_cl
|
|
FROM mldurgcx
|
|
GROUP BY maand, 'Beide', vakgroep, cl) cl
|
|
ON nl.maand = cl.maand AND nl.type = cl.type AND nl.vakgroep = cl.vakgroep
|
|
LEFT JOIN ( SELECT maand, 'Beide' type, vakgroep, cl, vt, SUM (acoptijd) / SUM (totaal) ac_vt, SUM (uvoptijd) / SUM (totaal) uv_vt
|
|
FROM mldurgcx
|
|
GROUP BY maand, 'Beide', vakgroep, cl, vt) vt
|
|
ON cl.maand = vt.maand AND cl.type = vt.type AND cl.vakgroep = vt.vakgroep AND cl.cl = vt.cl
|
|
LEFT JOIN ( SELECT alg_locatie_key, maand, 'Beide' type, vakgroep, cl, vt, cx, SUM (totaal) totaal, SUM (acoptijd) acoptijd, SUM (uvoptijd) uvoptijd
|
|
FROM mldurgcx
|
|
GROUP BY alg_locatie_key, maand, 'Beide', vakgroep, cl, vt, cx) cx
|
|
ON vt.maand = cx.maand AND vt.type = cx.type AND vt.vakgroep = cx.vakgroep AND vt.cl = cx.cl AND vt.vt = cx.vt
|
|
UNION ALL -- ALLE vakgroepen over BEIDE vakgroeptypen!
|
|
SELECT cx.alg_locatie_key, nl.maand, nl.type, nl.vakgroep, cl.cl, vt.vt, cx.cx,
|
|
TO_CHAR (cx.totaal), TO_CHAR (cx.acoptijd), TO_CHAR (cx.uvoptijd),
|
|
TO_CHAR (100 * nl.ac_nl, '990') || '%',
|
|
TO_CHAR (100 * cl.ac_cl, '990') || '%',
|
|
TO_CHAR (100 * vt.ac_vt, '990') || '%',
|
|
TO_CHAR (100 * (cx.acoptijd / cx.totaal), '990') || '%',
|
|
TO_CHAR (100 * nl.uv_nl, '990') || '%',
|
|
TO_CHAR (100 * cl.uv_cl, '990') || '%',
|
|
TO_CHAR (100 * vt.uv_vt, '990') || '%',
|
|
TO_CHAR (100 * (cx.uvoptijd / cx.totaal), '990') || '%'
|
|
FROM ( SELECT maand, 'Beide' type, 'Totaal' vakgroep, SUM (acoptijd) / SUM (totaal) ac_nl, SUM (uvoptijd) / SUM (totaal) uv_nl
|
|
FROM mldurgcx
|
|
GROUP BY maand, 'Beide', 'Totaal') nl
|
|
LEFT JOIN ( SELECT maand, 'Beide' type, 'Totaal' vakgroep, cl, SUM (acoptijd) / SUM (totaal) ac_cl, SUM (uvoptijd) / SUM (totaal) uv_cl
|
|
FROM mldurgcx
|
|
GROUP BY maand, 'Beide', 'Totaal', cl) cl
|
|
ON nl.maand = cl.maand AND nl.type = cl.type AND nl.vakgroep = cl.vakgroep
|
|
LEFT JOIN ( SELECT maand, 'Beide' type, 'Totaal' vakgroep, cl, vt, SUM (acoptijd) / SUM (totaal) ac_vt, SUM (uvoptijd) / SUM (totaal) uv_vt
|
|
FROM mldurgcx
|
|
GROUP BY maand, 'Beide', 'Totaal', cl, vt) vt
|
|
ON cl.maand = vt.maand AND cl.type = vt.type AND cl.vakgroep = vt.vakgroep AND cl.cl = vt.cl
|
|
LEFT JOIN ( SELECT alg_locatie_key, maand, 'Beide' type, 'Totaal' vakgroep, cl, vt, cx, SUM (totaal) totaal, SUM (acoptijd) acoptijd, SUM (uvoptijd) uvoptijd
|
|
FROM mldurgcx
|
|
GROUP BY alg_locatie_key, maand, 'Beide', 'Totaal', cl, vt, cx) cx
|
|
ON vt.maand = cx.maand AND vt.type = cx.type AND vt.vakgroep = cx.vakgroep AND vt.cl = cx.cl AND vt.vt = cx.vt;
|
|
|
|
CREATE OR REPLACE VIEW djin_v_export_kpi_mld_urg
|
|
(
|
|
result,
|
|
result_order
|
|
)
|
|
AS
|
|
SELECT '"maand"'
|
|
|| ';"type"'
|
|
|| ';"vakgroep"'
|
|
|| ';"cluster"'
|
|
|| ';"vestiging"'
|
|
|| ';"complex"'
|
|
|| ';"n_tot_mld_urg_cx"'
|
|
|| ';"n_ac_mld_urg_cx"'
|
|
|| ';"n_uv_mld_urg_cx"'
|
|
|| ';"ac_mld_urg_nl"'
|
|
|| ';"ac_mld_urg_cl"'
|
|
|| ';"ac_mld_urg_vt"'
|
|
|| ';"ac_mld_urg_cx"'
|
|
|| ';"uv_mld_urg_nl"'
|
|
|| ';"uv_mld_urg_cl"'
|
|
|| ';"uv_mld_urg_vt"'
|
|
|| ';"uv_mld_urg_cx"',
|
|
0
|
|
FROM DUAL
|
|
UNION ALL
|
|
SELECT '"'
|
|
|| fclt_f_maand
|
|
|| '";"'
|
|
|| fclt_f_type
|
|
|| '";"'
|
|
|| fclt_f_vakgroep
|
|
|| '";"'
|
|
|| fclt_f_cluster
|
|
|| '";"'
|
|
|| fclt_f_vestiging
|
|
|| '";"'
|
|
|| fclt_f_complex
|
|
|| '";"'
|
|
|| n_tot_mld_urg_cx
|
|
|| '";"'
|
|
|| n_ac_mld_urg_cx
|
|
|| '";"'
|
|
|| n_uv_mld_urg_cx
|
|
|| '";"'
|
|
|| ac_mld_urg_nl
|
|
|| '";"'
|
|
|| ac_mld_urg_cl
|
|
|| '";"'
|
|
|| ac_mld_urg_vt
|
|
|| '";"'
|
|
|| ac_mld_urg_cx
|
|
|| '";"'
|
|
|| uv_mld_urg_nl
|
|
|| '";"'
|
|
|| uv_mld_urg_cl
|
|
|| '";"'
|
|
|| uv_mld_urg_vt
|
|
|| '";"'
|
|
|| uv_mld_urg_cx
|
|
|| '"',
|
|
1
|
|
FROM djin_v_rap_kpi_mld_urg;
|
|
|
|
CREATE OR REPLACE VIEW djin_v_rap_kpi_mld_vvg
|
|
(
|
|
fclt_3d_locatie_key,
|
|
fclt_f_maand,
|
|
fclt_f_type,
|
|
fclt_f_vakgroep,
|
|
fclt_f_cluster,
|
|
fclt_f_vestiging,
|
|
fclt_f_complex,
|
|
n_tot_mld_vvg_cx,
|
|
n_ac_mld_vvg_cx,
|
|
n_uv_mld_vvg_cx,
|
|
ac_mld_vvg_nl,
|
|
ac_mld_vvg_cl,
|
|
ac_mld_vvg_vt,
|
|
ac_mld_vvg_cx,
|
|
uv_mld_vvg_nl,
|
|
uv_mld_vvg_cl,
|
|
uv_mld_vvg_vt,
|
|
uv_mld_vvg_cx
|
|
)
|
|
AS
|
|
WITH mldvvgcx -- Per vakgroep/complex onder vakgroeptype=3+4 de VVG-meldingen (elke spoed) op MLDAFM-tijd!
|
|
AS ( SELECT l.alg_locatie_key,
|
|
TO_CHAR (t.fac_tracking_datum, 'yyyy-mm') maand,
|
|
sd.ins_srtdiscipline_prefix type,
|
|
md.ins_discipline_omschrijving vakgroep,
|
|
COALESCE (ud.fac_usrdata_omschr, 'Onbekend') cl,
|
|
d.alg_district_omschrijving vt,
|
|
l.alg_locatie_omschrijving cx,
|
|
COUNT ( * ) totaal,
|
|
SUM (DECODE (
|
|
SIGN(m.mld_melding_acceptdatum_std - fac.gettrackingdate ('MLDACP', m.mld_melding_key)),
|
|
-1, 0,
|
|
1))
|
|
acoptijd,
|
|
SUM (DECODE (
|
|
SIGN(m.mld_melding_einddatum_std - TRUNC (t.fac_tracking_datum, 'mi')),
|
|
-1, 0,
|
|
1))
|
|
uvoptijd
|
|
FROM fac_tracking t,
|
|
mld_melding m,
|
|
mld_stdmelding sm, -- Ook verwijderde meldingen,
|
|
mld_discipline md, -- en verwijderde vakgroepen,
|
|
ins_srtdiscipline sd, -- en verwijderde vakgroeptypen,
|
|
alg_locatie l, -- en verwijderde locaties,
|
|
alg_district d, -- en verwijderde districten!
|
|
alg_v_aanwezigonrgoedkenmerk ok,
|
|
fac_usrdata ud
|
|
WHERE t.fac_srtnotificatie_key = 38 -- MLDAFM
|
|
AND t.fac_tracking_datum > ADD_MONTHS (TRUNC (SYSDATE, 'mm'), -25)
|
|
AND t.fac_tracking_refkey = m.mld_melding_key
|
|
--AND m.mld_melding_status IN (5, 6) -- Afgemeld/Verwerkt
|
|
AND m.mld_melding_start_key IS NOT NULL -- Vervolgmeldingen
|
|
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
|
AND sm.mld_ins_discipline_key = md.ins_discipline_key
|
|
AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
|
AND sd.ins_srtdiscipline_key IN (3, 4) -- Melding Facilitair/Aanvraag
|
|
AND m.mld_alg_locatie_key = l.alg_locatie_key
|
|
AND l.alg_district_key = d.alg_district_key
|
|
AND l.alg_locatie_key = ok.alg_onrgoed_key(+)
|
|
AND ok.alg_onrgoed_niveau(+) = 'L'
|
|
AND ok.alg_kenmerk_key(+) = 1000 -- Cluster
|
|
AND ok.alg_onrgoedkenmerk_waarde = TO_CHAR (ud.fac_usrdata_key(+))
|
|
GROUP BY l.alg_locatie_key,
|
|
TO_CHAR (t.fac_tracking_datum, 'yyyy-mm'),
|
|
sd.ins_srtdiscipline_prefix,
|
|
md.ins_discipline_omschrijving,
|
|
COALESCE (ud.fac_usrdata_omschr, 'Onbekend'),
|
|
d.alg_district_omschrijving,
|
|
l.alg_locatie_omschrijving)
|
|
SELECT cx.alg_locatie_key, nl.maand, nl.type, nl.vakgroep, cl.cl, vt.vt, cx.cx, -- Per vakgroep per vakgroeptype!
|
|
TO_CHAR (cx.totaal), TO_CHAR (cx.acoptijd), TO_CHAR (cx.uvoptijd),
|
|
TO_CHAR (100 * nl.ac_nl, '990') || '%',
|
|
TO_CHAR (100 * cl.ac_cl, '990') || '%',
|
|
TO_CHAR (100 * vt.ac_vt, '990') || '%',
|
|
TO_CHAR (100 * (cx.acoptijd / cx.totaal), '990') || '%',
|
|
TO_CHAR (100 * nl.uv_nl, '990') || '%',
|
|
TO_CHAR (100 * cl.uv_cl, '990') || '%',
|
|
TO_CHAR (100 * vt.uv_vt, '990') || '%',
|
|
TO_CHAR (100 * (cx.uvoptijd / cx.totaal), '990') || '%'
|
|
FROM ( SELECT maand, type, vakgroep, SUM (acoptijd) / SUM (totaal) ac_nl, SUM (uvoptijd) / SUM (totaal) uv_nl
|
|
FROM mldvvgcx
|
|
GROUP BY maand, type, vakgroep) nl
|
|
LEFT JOIN ( SELECT maand, type, vakgroep, cl, SUM (acoptijd) / SUM (totaal) ac_cl, SUM (uvoptijd) / SUM (totaal) uv_cl
|
|
FROM mldvvgcx
|
|
GROUP BY maand, type, vakgroep, cl) cl
|
|
ON nl.maand = cl.maand AND nl.type = cl.type AND nl.vakgroep = cl.vakgroep
|
|
LEFT JOIN ( SELECT maand, type, vakgroep, cl, vt, SUM (acoptijd) / SUM (totaal) ac_vt, SUM (uvoptijd) / SUM (totaal) uv_vt
|
|
FROM mldvvgcx
|
|
GROUP BY maand, type, vakgroep, cl, vt) vt
|
|
ON cl.maand = vt.maand AND cl.type = vt.type AND cl.vakgroep = vt.vakgroep AND cl.cl = vt.cl
|
|
LEFT JOIN (SELECT alg_locatie_key, maand, type, vakgroep, cl, vt, cx, totaal, acoptijd, uvoptijd
|
|
FROM mldvvgcx) cx
|
|
ON vt.maand = cx.maand AND vt.type = cx.type AND vt.vakgroep = cx.vakgroep AND vt.cl = cx.cl AND vt.vt = cx.vt
|
|
UNION ALL -- ALLE vakgroepen per vakgroeptype!
|
|
SELECT cx.alg_locatie_key, nl.maand, nl.type, nl.vakgroep, cl.cl, vt.vt, cx.cx,
|
|
TO_CHAR (cx.totaal), TO_CHAR (cx.acoptijd), TO_CHAR (cx.uvoptijd),
|
|
TO_CHAR (100 * nl.ac_nl, '990') || '%',
|
|
TO_CHAR (100 * cl.ac_cl, '990') || '%',
|
|
TO_CHAR (100 * vt.ac_vt, '990') || '%',
|
|
TO_CHAR (100 * (cx.acoptijd / cx.totaal), '990') || '%',
|
|
TO_CHAR (100 * nl.uv_nl, '990') || '%',
|
|
TO_CHAR (100 * cl.uv_cl, '990') || '%',
|
|
TO_CHAR (100 * vt.uv_vt, '990') || '%',
|
|
TO_CHAR (100 * (cx.uvoptijd / cx.totaal), '990') || '%'
|
|
FROM ( SELECT maand, type, 'Totaal' vakgroep, SUM (acoptijd) / SUM (totaal) ac_nl, SUM (uvoptijd) / SUM (totaal) uv_nl
|
|
FROM mldvvgcx
|
|
GROUP BY maand, type, 'Totaal') nl
|
|
LEFT JOIN ( SELECT maand, type, 'Totaal' vakgroep, cl, SUM (acoptijd) / SUM (totaal) ac_cl, SUM (uvoptijd) / SUM (totaal) uv_cl
|
|
FROM mldvvgcx
|
|
GROUP BY maand, type, 'Totaal', cl) cl
|
|
ON nl.maand = cl.maand AND nl.type = cl.type AND nl.vakgroep = cl.vakgroep
|
|
LEFT JOIN ( SELECT maand, type, 'Totaal' vakgroep, cl, vt, SUM (acoptijd) / SUM (totaal) ac_vt, SUM (uvoptijd) / SUM (totaal) uv_vt
|
|
FROM mldvvgcx
|
|
GROUP BY maand, type, 'Totaal', cl, vt) vt
|
|
ON cl.maand = vt.maand AND cl.type = vt.type AND cl.vakgroep = vt.vakgroep AND cl.cl = vt.cl
|
|
LEFT JOIN ( SELECT alg_locatie_key, maand, type, 'Totaal' vakgroep, cl, vt, cx, SUM (totaal) totaal, SUM (acoptijd) acoptijd, SUM (uvoptijd) uvoptijd
|
|
FROM mldvvgcx
|
|
GROUP BY alg_locatie_key, maand, type, 'Totaal', cl, vt, cx) cx
|
|
ON vt.maand = cx.maand AND vt.type = cx.type AND vt.vakgroep = cx.vakgroep AND vt.cl = cx.cl AND vt.vt = cx.vt
|
|
UNION ALL -- Per vakgroep over BEIDE vakgroeptypen!
|
|
SELECT cx.alg_locatie_key, nl.maand, nl.type, nl.vakgroep, cl.cl, vt.vt, cx.cx,
|
|
TO_CHAR (cx.totaal), TO_CHAR (cx.acoptijd), TO_CHAR (cx.uvoptijd),
|
|
TO_CHAR (100 * nl.ac_nl, '990') || '%',
|
|
TO_CHAR (100 * cl.ac_cl, '990') || '%',
|
|
TO_CHAR (100 * vt.ac_vt, '990') || '%',
|
|
TO_CHAR (100 * (cx.acoptijd / cx.totaal), '990') || '%',
|
|
TO_CHAR (100 * nl.uv_nl, '990') || '%',
|
|
TO_CHAR (100 * cl.uv_cl, '990') || '%',
|
|
TO_CHAR (100 * vt.uv_vt, '990') || '%',
|
|
TO_CHAR (100 * (cx.uvoptijd / cx.totaal), '990') || '%'
|
|
FROM ( SELECT maand, 'Beide' type, vakgroep, SUM (acoptijd) / SUM (totaal) ac_nl, SUM (uvoptijd) / SUM (totaal) uv_nl
|
|
FROM mldvvgcx
|
|
GROUP BY maand, 'Beide', vakgroep) nl
|
|
LEFT JOIN ( SELECT maand, 'Beide' type, vakgroep, cl, SUM (acoptijd) / SUM (totaal) ac_cl, SUM (uvoptijd) / SUM (totaal) uv_cl
|
|
FROM mldvvgcx
|
|
GROUP BY maand, 'Beide', vakgroep, cl) cl
|
|
ON nl.maand = cl.maand AND nl.type = cl.type AND nl.vakgroep = cl.vakgroep
|
|
LEFT JOIN ( SELECT maand, 'Beide' type, vakgroep, cl, vt, SUM (acoptijd) / SUM (totaal) ac_vt, SUM (uvoptijd) / SUM (totaal) uv_vt
|
|
FROM mldvvgcx
|
|
GROUP BY maand, 'Beide', vakgroep, cl, vt) vt
|
|
ON cl.maand = vt.maand AND cl.type = vt.type AND cl.vakgroep = vt.vakgroep AND cl.cl = vt.cl
|
|
LEFT JOIN ( SELECT alg_locatie_key, maand, 'Beide' type, vakgroep, cl, vt, cx, SUM (totaal) totaal, SUM (acoptijd) acoptijd, SUM (uvoptijd) uvoptijd
|
|
FROM mldvvgcx
|
|
GROUP BY alg_locatie_key, maand, 'Beide', vakgroep, cl, vt, cx) cx
|
|
ON vt.maand = cx.maand AND vt.type = cx.type AND vt.vakgroep = cx.vakgroep AND vt.cl = cx.cl AND vt.vt = cx.vt
|
|
UNION ALL -- ALLE vakgroepen over BEIDE vakgroeptypen!
|
|
SELECT cx.alg_locatie_key, nl.maand, nl.type, nl.vakgroep, cl.cl, vt.vt, cx.cx,
|
|
TO_CHAR (cx.totaal), TO_CHAR (cx.acoptijd), TO_CHAR (cx.uvoptijd),
|
|
TO_CHAR (100 * nl.ac_nl, '990') || '%',
|
|
TO_CHAR (100 * cl.ac_cl, '990') || '%',
|
|
TO_CHAR (100 * vt.ac_vt, '990') || '%',
|
|
TO_CHAR (100 * (cx.acoptijd / cx.totaal), '990') || '%',
|
|
TO_CHAR (100 * nl.uv_nl, '990') || '%',
|
|
TO_CHAR (100 * cl.uv_cl, '990') || '%',
|
|
TO_CHAR (100 * vt.uv_vt, '990') || '%',
|
|
TO_CHAR (100 * (cx.uvoptijd / cx.totaal), '990') || '%'
|
|
FROM ( SELECT maand, 'Beide' type, 'Totaal' vakgroep, SUM (acoptijd) / SUM (totaal) ac_nl, SUM (uvoptijd) / SUM (totaal) uv_nl
|
|
FROM mldvvgcx
|
|
GROUP BY maand, 'Beide', 'Totaal') nl
|
|
LEFT JOIN ( SELECT maand, 'Beide' type, 'Totaal' vakgroep, cl, SUM (acoptijd) / SUM (totaal) ac_cl, SUM (uvoptijd) / SUM (totaal) uv_cl
|
|
FROM mldvvgcx
|
|
GROUP BY maand, 'Beide', 'Totaal', cl) cl
|
|
ON nl.maand = cl.maand AND nl.type = cl.type AND nl.vakgroep = cl.vakgroep
|
|
LEFT JOIN ( SELECT maand, 'Beide' type, 'Totaal' vakgroep, cl, vt, SUM (acoptijd) / SUM (totaal) ac_vt, SUM (uvoptijd) / SUM (totaal) uv_vt
|
|
FROM mldvvgcx
|
|
GROUP BY maand, 'Beide', 'Totaal', cl, vt) vt
|
|
ON cl.maand = vt.maand AND cl.type = vt.type AND cl.vakgroep = vt.vakgroep AND cl.cl = vt.cl
|
|
LEFT JOIN ( SELECT alg_locatie_key, maand, 'Beide' type, 'Totaal' vakgroep, cl, vt, cx, SUM (totaal) totaal, SUM (acoptijd) acoptijd, SUM (uvoptijd) uvoptijd
|
|
FROM mldvvgcx
|
|
GROUP BY alg_locatie_key, maand, 'Beide', 'Totaal', cl, vt, cx) cx
|
|
ON vt.maand = cx.maand AND vt.type = cx.type AND vt.vakgroep = cx.vakgroep AND vt.cl = cx.cl AND vt.vt = cx.vt;
|
|
|
|
CREATE OR REPLACE VIEW djin_v_export_kpi_mld_vvg
|
|
(
|
|
result,
|
|
result_order
|
|
)
|
|
AS
|
|
SELECT '"maand"'
|
|
|| ';"type"'
|
|
|| ';"vakgroep"'
|
|
|| ';"cluster"'
|
|
|| ';"vestiging"'
|
|
|| ';"complex"'
|
|
|| ';"n_tot_mld_vvg_cx"'
|
|
|| ';"n_ac_mld_vvg_cx"'
|
|
|| ';"n_uv_mld_vvg_cx"'
|
|
|| ';"ac_mld_vvg_nl"'
|
|
|| ';"ac_mld_vvg_cl"'
|
|
|| ';"ac_mld_vvg_vt"'
|
|
|| ';"ac_mld_vvg_cx"'
|
|
|| ';"uv_mld_vvg_nl"'
|
|
|| ';"uv_mld_vvg_cl"'
|
|
|| ';"uv_mld_vvg_vt"'
|
|
|| ';"uv_mld_vvg_cx"',
|
|
0
|
|
FROM DUAL
|
|
UNION ALL
|
|
SELECT '"'
|
|
|| fclt_f_maand
|
|
|| '";"'
|
|
|| fclt_f_type
|
|
|| '";"'
|
|
|| fclt_f_vakgroep
|
|
|| '";"'
|
|
|| fclt_f_cluster
|
|
|| '";"'
|
|
|| fclt_f_vestiging
|
|
|| '";"'
|
|
|| fclt_f_complex
|
|
|| '";"'
|
|
|| n_tot_mld_vvg_cx
|
|
|| '";"'
|
|
|| n_ac_mld_vvg_cx
|
|
|| '";"'
|
|
|| n_uv_mld_vvg_cx
|
|
|| '";"'
|
|
|| ac_mld_vvg_nl
|
|
|| '";"'
|
|
|| ac_mld_vvg_cl
|
|
|| '";"'
|
|
|| ac_mld_vvg_vt
|
|
|| '";"'
|
|
|| ac_mld_vvg_cx
|
|
|| '";"'
|
|
|| uv_mld_vvg_nl
|
|
|| '";"'
|
|
|| uv_mld_vvg_cl
|
|
|| '";"'
|
|
|| uv_mld_vvg_vt
|
|
|| '";"'
|
|
|| uv_mld_vvg_cx
|
|
|| '"',
|
|
1
|
|
FROM djin_v_rap_kpi_mld_vvg;
|
|
|
|
CREATE OR REPLACE VIEW djin_v_rap_kpi_klr
|
|
(
|
|
fclt_3d_locatie_key,
|
|
fclt_f_maand,
|
|
fclt_f_melding,
|
|
fclt_f_cluster,
|
|
fclt_f_vestiging,
|
|
fclt_f_complex,
|
|
n_tot_klr_cx,
|
|
n_ac_klr_cx,
|
|
n_uv_klr_cx,
|
|
ac_klr_nl,
|
|
ac_klr_cl,
|
|
ac_klr_vt,
|
|
ac_klr_cx,
|
|
uv_klr_nl,
|
|
uv_klr_cl,
|
|
uv_klr_vt,
|
|
uv_klr_cx
|
|
)
|
|
AS
|
|
WITH mldklrcx -- Per melding/complex onder vakgroeptype=2 de KLR-meldingen (klantreacties) op MLDAFM-tijd!
|
|
AS ( SELECT l.alg_locatie_key,
|
|
TO_CHAR (t.fac_tracking_datum, 'yyyy-mm') maand,
|
|
sm.mld_stdmelding_omschrijving melding,
|
|
COALESCE (ud.fac_usrdata_omschr, 'Onbekend') cl,
|
|
d.alg_district_omschrijving vt,
|
|
l.alg_locatie_omschrijving cx,
|
|
COUNT ( * ) totaal,
|
|
SUM (DECODE (
|
|
SIGN(m.mld_melding_acceptdatum_std - fac.gettrackingdate ('MLDACP', m.mld_melding_key)),
|
|
-1, 0,
|
|
1))
|
|
acoptijd,
|
|
SUM (DECODE (
|
|
SIGN(m.mld_melding_einddatum_std - TRUNC (t.fac_tracking_datum, 'mi')),
|
|
-1, 0,
|
|
1))
|
|
uvoptijd
|
|
FROM fac_tracking t,
|
|
mld_melding m,
|
|
mld_stdmelding sm, -- Ook verwijderde meldingen!
|
|
mld_discipline md, -- Ook verwijderde vakgroepen!
|
|
alg_locatie l, -- Ook verwijderde locaties!
|
|
alg_district d, -- Ook verwijderde districten!
|
|
alg_v_aanwezigonrgoedkenmerk ok,
|
|
fac_usrdata ud
|
|
WHERE t.fac_srtnotificatie_key = 38 -- MLDAFM
|
|
AND t.fac_tracking_datum > ADD_MONTHS (TRUNC (SYSDATE, 'mm'), -25)
|
|
AND t.fac_tracking_refkey = m.mld_melding_key
|
|
--AND m.mld_melding_status IN (5, 6) -- Afgemeld/Verwerkt
|
|
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
|
AND sm.mld_ins_discipline_key = md.ins_discipline_key
|
|
AND md.ins_srtdiscipline_key = 2 -- Klantreactie
|
|
AND m.mld_alg_locatie_key = l.alg_locatie_key
|
|
AND l.alg_district_key = d.alg_district_key
|
|
AND l.alg_locatie_key = ok.alg_onrgoed_key(+)
|
|
AND ok.alg_onrgoed_niveau(+) = 'L'
|
|
AND ok.alg_kenmerk_key(+) = 1000 -- Cluster
|
|
AND ok.alg_onrgoedkenmerk_waarde = TO_CHAR (ud.fac_usrdata_key(+))
|
|
GROUP BY l.alg_locatie_key,
|
|
TO_CHAR (t.fac_tracking_datum, 'yyyy-mm'),
|
|
sm.mld_stdmelding_omschrijving,
|
|
COALESCE (ud.fac_usrdata_omschr, 'Onbekend'),
|
|
d.alg_district_omschrijving,
|
|
l.alg_locatie_omschrijving)
|
|
SELECT cx.alg_locatie_key, nl.maand, nl.melding, cl.cl, vt.vt, cx.cx, -- Per KLR-vakgroep!
|
|
TO_CHAR (cx.totaal), TO_CHAR (cx.acoptijd), TO_CHAR (cx.uvoptijd),
|
|
TO_CHAR (100 * nl.ac_nl, '990') || '%',
|
|
TO_CHAR (100 * cl.ac_cl, '990') || '%',
|
|
TO_CHAR (100 * vt.ac_vt, '990') || '%',
|
|
TO_CHAR (100 * (cx.acoptijd / cx.totaal), '990') || '%',
|
|
TO_CHAR (100 * nl.uv_nl, '990') || '%',
|
|
TO_CHAR (100 * cl.uv_cl, '990') || '%',
|
|
TO_CHAR (100 * vt.uv_vt, '990') || '%',
|
|
TO_CHAR (100 * (cx.uvoptijd / cx.totaal), '990') || '%'
|
|
FROM ( SELECT maand, melding, SUM (acoptijd) / SUM (totaal) ac_nl, SUM (uvoptijd) / SUM (totaal) uv_nl
|
|
FROM mldklrcx
|
|
GROUP BY maand, melding) nl
|
|
LEFT JOIN ( SELECT maand, melding, cl, SUM (acoptijd) / SUM (totaal) ac_cl, SUM (uvoptijd) / SUM (totaal) uv_cl
|
|
FROM mldklrcx
|
|
GROUP BY maand, melding, cl) cl
|
|
ON nl.maand = cl.maand AND nl.melding = cl.melding
|
|
LEFT JOIN ( SELECT maand, melding, cl, vt, SUM (acoptijd) / SUM (totaal) ac_vt, SUM (uvoptijd) / SUM (totaal) uv_vt
|
|
FROM mldklrcx
|
|
GROUP BY maand, melding, cl, vt) vt
|
|
ON cl.maand = vt.maand AND cl.melding = vt.melding AND cl.cl = vt.cl
|
|
LEFT JOIN (SELECT alg_locatie_key, maand, melding, cl, vt, cx, totaal, acoptijd, uvoptijd
|
|
FROM mldklrcx) cx
|
|
ON vt.maand = cx.maand AND vt.melding = cx.melding AND vt.cl = cx.cl AND vt.vt = cx.vt
|
|
UNION ALL -- ALLE KLR-vakgroepen!
|
|
SELECT cx.alg_locatie_key, nl.maand, nl.vakgroep, cl.cl, vt.vt, cx.cx,
|
|
TO_CHAR (cx.totaal), TO_CHAR (cx.acoptijd), TO_CHAR (cx.uvoptijd),
|
|
TO_CHAR (100 * nl.ac_nl, '990') || '%',
|
|
TO_CHAR (100 * cl.ac_cl, '990') || '%',
|
|
TO_CHAR (100 * vt.ac_vt, '990') || '%',
|
|
TO_CHAR (100 * (cx.acoptijd / cx.totaal), '990') || '%',
|
|
TO_CHAR (100 * nl.uv_nl, '990') || '%',
|
|
TO_CHAR (100 * cl.uv_cl, '990') || '%',
|
|
TO_CHAR (100 * vt.uv_vt, '990') || '%',
|
|
TO_CHAR (100 * (cx.uvoptijd / cx.totaal), '990') || '%'
|
|
FROM ( SELECT maand, 'Totaal' vakgroep, SUM (acoptijd) / SUM (totaal) ac_nl, SUM (uvoptijd) / SUM (totaal) uv_nl
|
|
FROM mldklrcx
|
|
GROUP BY maand, 'Totaal') nl
|
|
LEFT JOIN ( SELECT maand, 'Totaal' vakgroep, cl, SUM (acoptijd) / SUM (totaal) ac_cl, SUM (uvoptijd) / SUM (totaal) uv_cl
|
|
FROM mldklrcx
|
|
GROUP BY maand, 'Totaal', cl) cl
|
|
ON nl.maand = cl.maand AND nl.vakgroep = cl.vakgroep
|
|
LEFT JOIN ( SELECT maand, 'Totaal' vakgroep, cl, vt, SUM (acoptijd) / SUM (totaal) ac_vt, SUM (uvoptijd) / SUM (totaal) uv_vt
|
|
FROM mldklrcx
|
|
GROUP BY maand, 'Totaal', cl, vt) vt
|
|
ON cl.maand = vt.maand AND cl.vakgroep = vt.vakgroep AND cl.cl = vt.cl
|
|
LEFT JOIN ( SELECT alg_locatie_key, maand, 'Totaal' vakgroep, cl, vt, cx, SUM (totaal) totaal, SUM (acoptijd) acoptijd, SUM (uvoptijd) uvoptijd
|
|
FROM mldklrcx
|
|
GROUP BY alg_locatie_key, maand, 'Totaal', cl, vt, cx) cx
|
|
ON vt.maand = cx.maand AND vt.vakgroep = cx.vakgroep AND vt.cl = cx.cl AND vt.vt = cx.vt;
|
|
|
|
CREATE OR REPLACE VIEW djin_v_export_kpi_klr
|
|
(
|
|
result,
|
|
result_order
|
|
)
|
|
AS
|
|
SELECT '"maand"'
|
|
|| ';"melding"'
|
|
|| ';"cluster"'
|
|
|| ';"vestiging"'
|
|
|| ';"complex"'
|
|
|| ';"n_tot_klr_cx"'
|
|
|| ';"n_ac_klr_cx"'
|
|
|| ';"n_uv_klr_cx"'
|
|
|| ';"ac_klr_nl"'
|
|
|| ';"ac_klr_cl"'
|
|
|| ';"ac_klr_vt"'
|
|
|| ';"ac_klr_cx"'
|
|
|| ';"uv_klr_nl"'
|
|
|| ';"uv_klr_cl"'
|
|
|| ';"uv_klr_vt"'
|
|
|| ';"uv_klr_cx"',
|
|
0
|
|
FROM DUAL
|
|
UNION ALL
|
|
SELECT '"'
|
|
|| fclt_f_maand
|
|
|| '";"'
|
|
|| fclt_f_melding
|
|
|| '";"'
|
|
|| fclt_f_cluster
|
|
|| '";"'
|
|
|| fclt_f_vestiging
|
|
|| '";"'
|
|
|| fclt_f_complex
|
|
|| '";"'
|
|
|| n_tot_klr_cx
|
|
|| '";"'
|
|
|| n_ac_klr_cx
|
|
|| '";"'
|
|
|| n_uv_klr_cx
|
|
|| '";"'
|
|
|| ac_klr_nl
|
|
|| '";"'
|
|
|| ac_klr_cl
|
|
|| '";"'
|
|
|| ac_klr_vt
|
|
|| '";"'
|
|
|| ac_klr_cx
|
|
|| '";"'
|
|
|| uv_klr_nl
|
|
|| '";"'
|
|
|| uv_klr_cl
|
|
|| '";"'
|
|
|| uv_klr_vt
|
|
|| '";"'
|
|
|| uv_klr_cx
|
|
|| '"',
|
|
1
|
|
FROM djin_v_rap_kpi_klr;
|
|
|
|
/* Formatted on 2-9-2016 10:50:10 (QP5 v5.136.908.31019) */
|
|
CREATE OR REPLACE VIEW djin_v_rap_kpi_res
|
|
(
|
|
fclt_3d_locatie_key,
|
|
fclt_f_maand,
|
|
fclt_f_catalogus,
|
|
fclt_f_cluster,
|
|
fclt_f_vestiging,
|
|
fclt_f_complex,
|
|
res_ant_nl,
|
|
res_ant_cl,
|
|
res_ant_vt,
|
|
res_ant_cx,
|
|
res_bzg_nl,
|
|
res_bzg_cl,
|
|
res_bzg_vt,
|
|
res_bzg_cx
|
|
)
|
|
AS
|
|
WITH rescatcx -- Per catalogus/complex de reserveringen van ruimten en voorzieningen op tot-tijd!
|
|
AS ( SELECT l.alg_locatie_key,
|
|
resbes.mnd,
|
|
COALESCE (rd.ins_discipline_omschrijving, 'Ruimtes') catalogus,
|
|
COALESCE (ud.fac_usrdata_omschr, 'Onbekend') cl,
|
|
d.alg_district_omschrijving vt,
|
|
l.alg_locatie_omschrijving cx,
|
|
SUM (resbez.aant) aantal_reserveringen,
|
|
SUM (ROUND (resbes.uren, 2)) bes_uren,
|
|
SUM (ROUND (resbez.uren, 2)) bez_uren
|
|
FROM (SELECT DISTINCT TO_CHAR (p.mnd, 'yyyy-mm') mnd, -- DISTINCT igv. verwijderde res_alg_ruimte!
|
|
-1 res_discipline_key, -- Ruimte-catalogi niet per catalogus onderverdelen!
|
|
rr.res_ruimte_key resource_key,
|
|
rar.alg_ruimte_key,
|
|
fac.count_work_days (p.mnd - 1, ADD_MONTHS (p.mnd, 1) - 1)
|
|
* (LEAST (COALESCE (rr.res_ruimte_eindtijd, 17), 17)
|
|
- GREATEST (COALESCE (rr.res_ruimte_begintijd, 8), 8))
|
|
uren
|
|
FROM res_ruimte rr, res_alg_ruimte rar,
|
|
(SELECT ADD_MONTHS (TRUNC (SYSDATE, 'mm'), LEVEL - 26) mnd FROM DUAL CONNECT BY LEVEL <= 25) p
|
|
WHERE rr.res_ruimte_key = rar.res_ruimte_key
|
|
AND rar.res_alg_ruimte_aanmaak < ADD_MONTHS (p.mnd, 1)
|
|
AND (rar.res_alg_ruimte_verwijder IS NULL OR rar.res_alg_ruimte_verwijder >= p.mnd)
|
|
UNION ALL
|
|
SELECT TO_CHAR (p.mnd, 'yyyy-mm') mnd, -- DISTINCT per definitie!
|
|
rd.res_discipline_key,
|
|
rd.res_deel_key resource_key,
|
|
COALESCE (d.ins_alg_ruimte_key_org, d.ins_alg_ruimte_key) alg_ruimte_key,
|
|
fac.count_work_days (p.mnd - 1, ADD_MONTHS (p.mnd, 1) - 1) * 9 -- = 17-8
|
|
uren
|
|
FROM res_deel rd, ins_deel d,
|
|
(SELECT ADD_MONTHS (TRUNC (SYSDATE, 'mm'), LEVEL - 26) mnd FROM DUAL CONNECT BY LEVEL <= 25) p
|
|
WHERE rd.res_ins_deel_key = d.ins_deel_key
|
|
AND COALESCE (d.ins_alg_ruimte_type_org, d.ins_alg_ruimte_type) = 'R' -- Noodzakelijk?
|
|
AND rd.res_deel_aanmaak < ADD_MONTHS (p.mnd, 1)
|
|
AND (rd.res_deel_verwijder IS NULL OR rd.res_deel_verwijder >= p.mnd)) resbes,
|
|
( SELECT TO_CHAR (rrr.res_rsv_ruimte_tot, 'yyyy-mm') mnd,
|
|
-1 res_discipline_key, -- Ruimte-catalogi niet per catalogus onderverdelen!
|
|
rr.res_ruimte_key resource_key,
|
|
ra.alg_ruimte_key,
|
|
COUNT ( * ) aant,
|
|
SUM (LEAST ((rrr.res_rsv_ruimte_tot - TRUNC (rrr.res_rsv_ruimte_tot)) * 24, 17)
|
|
- GREATEST ((rrr.res_rsv_ruimte_van - TRUNC (rrr.res_rsv_ruimte_van)) * 24, 8))
|
|
uren
|
|
FROM res_rsv_ruimte rrr, res_ruimte_opstelling ro, res_ruimte rr, res_alg_ruimte ra
|
|
WHERE rrr.res_rsv_ruimte_verwijder IS NULL
|
|
AND rrr.res_rsv_ruimte_dirtlevel = 0
|
|
AND rrr.res_status_fo_key IN (1, 2) -- Optie/Definitief
|
|
AND rrr.res_rsv_ruimte_tot BETWEEN ADD_MONTHS (TRUNC (SYSDATE, 'mm'), -25) AND TRUNC (SYSDATE, 'mm')
|
|
AND TO_CHAR (rrr.res_rsv_ruimte_tot, 'd') BETWEEN '2' AND '6'
|
|
AND NOT EXISTS (SELECT 1 FROM mld_vrije_dagen WHERE TRUNC (mld_vrije_dagen_datum) = TRUNC (rrr.res_rsv_ruimte_tot))
|
|
--AND TO_CHAR (rrr.res_rsv_ruimte_van, 'hh24') < '17'
|
|
--AND TO_CHAR (rrr.res_rsv_ruimte_tot, 'hh24') > '08'
|
|
AND rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
|
|
AND ro.res_ruimte_key = rr.res_ruimte_key
|
|
AND rr.res_ruimte_key = ra.res_ruimte_key
|
|
GROUP BY TO_CHAR (rrr.res_rsv_ruimte_tot, 'yyyy-mm'),
|
|
-1,
|
|
rr.res_ruimte_key,
|
|
ra.alg_ruimte_key
|
|
UNION ALL -- Eendaagse voorzieningen!
|
|
SELECT TO_CHAR (rrd.res_rsv_deel_tot, 'yyyy-mm') mnd,
|
|
rd.res_discipline_key,
|
|
rd.res_deel_key resource_key,
|
|
COALESCE (d.ins_alg_ruimte_key_org, d.ins_alg_ruimte_key) alg_ruimte_key,
|
|
COUNT ( * ) aant,
|
|
SUM (LEAST ((rrd.res_rsv_deel_tot - TRUNC (rrd.res_rsv_deel_tot)) * 24, 17)
|
|
- GREATEST ((rrd.res_rsv_deel_van - TRUNC (rrd.res_rsv_deel_van)) * 24, 8))
|
|
uren
|
|
FROM res_rsv_deel rrd, res_rsv_ruimte rrr, res_deel rd, ins_deel d
|
|
WHERE rrd.res_rsv_deel_verwijder IS NULL
|
|
AND rrd.res_rsv_deel_dirtlevel = 0
|
|
AND TRUNC (rrd.res_rsv_deel_van) = TRUNC (rrd.res_rsv_deel_tot) -- Eendaags!
|
|
AND rrd.res_rsv_deel_tot BETWEEN ADD_MONTHS (TRUNC (SYSDATE, 'mm'), -25) AND TRUNC (SYSDATE, 'mm')
|
|
AND TO_CHAR (rrd.res_rsv_deel_tot, 'd') BETWEEN '2' AND '6'
|
|
AND NOT EXISTS (SELECT 1 FROM mld_vrije_dagen WHERE TRUNC (mld_vrije_dagen_datum) = TRUNC (rrd.res_rsv_deel_tot))
|
|
--AND TO_CHAR (rrd.res_rsv_deel_van, 'hh24') < '17'
|
|
--AND TO_CHAR (rrd.res_rsv_deel_tot, 'hh24') > '08'
|
|
--AND rrd.bez_bezoekers_key IS NULL -- Geen parkeerplaatsen!
|
|
AND rrd.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key(+)
|
|
AND rrr.res_status_fo_key(+) IN (1, 2) -- Optie/Definitief
|
|
AND rrd.res_deel_key = rd.res_deel_key
|
|
AND rd.res_ins_deel_key = d.ins_deel_key
|
|
AND COALESCE (d.ins_alg_ruimte_type_org, d.ins_alg_ruimte_type) = 'R' -- Noodzakelijk?
|
|
GROUP BY TO_CHAR (rrd.res_rsv_deel_tot, 'yyyy-mm'),
|
|
rd.res_discipline_key,
|
|
rd.res_deel_key,
|
|
COALESCE (d.ins_alg_ruimte_key_org, d.ins_alg_ruimte_key)
|
|
UNION ALL -- Meerdaagse voorzieningen!
|
|
SELECT TO_CHAR (p.dag, 'yyyy-mm') mnd,
|
|
rd.res_discipline_key,
|
|
rd.res_deel_key resource_key,
|
|
COALESCE (d.ins_alg_ruimte_key_org, d.ins_alg_ruimte_key) alg_ruimte_key,
|
|
COUNT ( * ) aant,
|
|
SUM (DECODE (p.dag,
|
|
TRUNC (rrd.res_rsv_deel_van), 17 - GREATEST ((rrd.res_rsv_deel_van - TRUNC (rrd.res_rsv_deel_van)) * 24, 8),
|
|
TRUNC (rrd.res_rsv_deel_tot), LEAST ((rrd.res_rsv_deel_tot - TRUNC (rrd.res_rsv_deel_tot)) * 24, 17) - 8,
|
|
9)) -- = 17-8
|
|
uren
|
|
FROM res_rsv_deel rrd, res_rsv_ruimte rrr, res_deel rd, ins_deel d,
|
|
(SELECT TRUNC (SYSDATE, 'mm') - LEVEL dag FROM DUAL CONNECT BY LEVEL <= TRUNC (SYSDATE, 'mm') - ADD_MONTHS (TRUNC (SYSDATE, 'mm'), -25)) p
|
|
WHERE rrd.res_rsv_deel_verwijder IS NULL
|
|
AND rrd.res_rsv_deel_dirtlevel = 0
|
|
AND TRUNC (rrd.res_rsv_deel_van) != TRUNC (rrd.res_rsv_deel_tot) -- Meerdaags!
|
|
AND rrd.res_rsv_deel_tot BETWEEN ADD_MONTHS (TRUNC (SYSDATE, 'mm'), -25) AND TRUNC (SYSDATE, 'mm')
|
|
--AND TO_CHAR (rrd.res_rsv_deel_van, 'hh24') < '17'
|
|
--AND TO_CHAR (rrd.res_rsv_deel_tot, 'hh24') > '08'
|
|
--AND rrd.bez_bezoekers_key IS NULL -- Geen parkeerplaatsen!
|
|
AND rrd.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key(+)
|
|
AND rrr.res_status_fo_key(+) IN (1, 2) -- Optie/Definitief
|
|
AND rrd.res_deel_key = rd.res_deel_key
|
|
AND rd.res_ins_deel_key = d.ins_deel_key
|
|
AND COALESCE (d.ins_alg_ruimte_type_org, d.ins_alg_ruimte_type) = 'R' -- Noodzakelijk?
|
|
AND p.dag BETWEEN TRUNC (rrd.res_rsv_deel_van) AND TRUNC (rrd.res_rsv_deel_tot)
|
|
AND TO_CHAR (p.dag, 'd') BETWEEN '2' AND '6'
|
|
AND NOT EXISTS (SELECT 1 FROM mld_vrije_dagen WHERE TRUNC (mld_vrije_dagen_datum) = TRUNC (p.dag))
|
|
GROUP BY TO_CHAR (p.dag, 'yyyy-mm'),
|
|
rd.res_discipline_key,
|
|
rd.res_deel_key,
|
|
COALESCE (d.ins_alg_ruimte_key_org, d.ins_alg_ruimte_key)) resbez,
|
|
res_discipline rd, -- Ook verwijderde catalogi!
|
|
alg_v_onrgoed_boom aob, -- Ook verwijderde ruimten!
|
|
alg_locatie l, -- Ook verwijderde locaties!
|
|
alg_district d, -- Ook verwijderde districten!
|
|
alg_v_aanwezigonrgoedkenmerk ok,
|
|
fac_usrdata ud
|
|
WHERE resbes.mnd = resbez.mnd(+)
|
|
AND resbes.res_discipline_key = resbez.res_discipline_key(+)
|
|
AND resbes.resource_key = resbez.resource_key(+)
|
|
AND resbes.alg_ruimte_key = resbez.alg_ruimte_key(+)
|
|
AND resbes.res_discipline_key = rd.ins_discipline_key(+)
|
|
AND resbes.alg_ruimte_key = aob.alg_ruimte_key
|
|
AND aob.alg_locatie_key = l.alg_locatie_key
|
|
AND l.alg_district_key = d.alg_district_key
|
|
AND l.alg_locatie_key = ok.alg_onrgoed_key(+)
|
|
AND ok.alg_onrgoed_niveau(+) = 'L'
|
|
AND ok.alg_kenmerk_key(+) = 1000 -- Cluster
|
|
AND ok.alg_onrgoedkenmerk_waarde = TO_CHAR (ud.fac_usrdata_key(+))
|
|
AND resbes.uren > 0 -- Soms 0 of zelfs negatief bij vreemde/gelijke begin- en eindtijden (van reserveerbare ruimte = res_ruimte)!
|
|
AND COALESCE (resbez.uren, 1) > 0 -- Soms 0 of zelfs negatief bij vreemde/gelijke begin- en eindtijden (van res_rsv_ruimte/deel)!
|
|
GROUP BY l.alg_locatie_key,
|
|
resbes.mnd,
|
|
COALESCE (rd.ins_discipline_omschrijving, 'Ruimtes'),
|
|
COALESCE (ud.fac_usrdata_omschr, 'Onbekend'),
|
|
d.alg_district_omschrijving,
|
|
l.alg_locatie_omschrijving)
|
|
SELECT cx.alg_locatie_key, nl.mnd, nl.catalogus, cl.cl, vt.vt, cx.cx,
|
|
TO_CHAR (nl.ant_nl, '999990'),
|
|
TO_CHAR (cl.ant_cl, '999990'),
|
|
TO_CHAR (vt.ant_vt, '999990'),
|
|
TO_CHAR (cx.ant_cx, '999990'),
|
|
TO_CHAR (100 * nl.bzg_nl, '990') || '%',
|
|
TO_CHAR (100 * cl.bzg_cl, '990') || '%',
|
|
TO_CHAR (100 * vt.bzg_vt, '990') || '%',
|
|
TO_CHAR (100 * cx.bzg_cx, '990') || '%'
|
|
FROM ( SELECT mnd, catalogus, SUM (aantal_reserveringen) ant_nl, SUM (COALESCE (bez_uren, 0)) / SUM (bes_uren) bzg_nl
|
|
FROM rescatcx
|
|
GROUP BY mnd, catalogus) nl
|
|
LEFT JOIN ( SELECT mnd, catalogus, cl, SUM (aantal_reserveringen) ant_cl, SUM (COALESCE (bez_uren, 0)) / SUM (bes_uren) bzg_cl
|
|
FROM rescatcx
|
|
GROUP BY mnd, catalogus, cl) cl
|
|
ON nl.mnd = cl.mnd AND nl.catalogus = cl.catalogus
|
|
LEFT JOIN ( SELECT mnd, catalogus, cl, vt, SUM (aantal_reserveringen) ant_vt, SUM (COALESCE (bez_uren, 0)) / SUM (bes_uren) bzg_vt
|
|
FROM rescatcx
|
|
GROUP BY mnd, catalogus, cl, vt) vt
|
|
ON cl.mnd = vt.mnd AND cl.catalogus = vt.catalogus AND cl.cl = vt.cl
|
|
LEFT JOIN (SELECT alg_locatie_key, mnd, catalogus, cl, vt, cx, aantal_reserveringen ant_cx, COALESCE (bez_uren, 0) / bes_uren bzg_cx
|
|
FROM rescatcx) cx
|
|
ON vt.mnd = cx.mnd AND vt.catalogus = cx.catalogus AND vt.cl = cx.cl AND vt.vt = cx.vt;
|
|
|
|
/* Formatted on 5-9-2016 16:32:28 (QP5 v5.136.908.31019) */
|
|
CREATE OR REPLACE VIEW djin_v_export_kpi_res
|
|
(
|
|
result,
|
|
result_order
|
|
)
|
|
AS
|
|
SELECT '"maand"'
|
|
|| ';"catalogus"'
|
|
|| ';"cluster"'
|
|
|| ';"vestiging"'
|
|
|| ';"complex"'
|
|
|| ';"res_ant_nl"'
|
|
|| ';"res_ant_cl"'
|
|
|| ';"res_ant_vt"'
|
|
|| ';"res_ant_cx"'
|
|
|| ';"res_bzg_nl"'
|
|
|| ';"res_bzg_cl"'
|
|
|| ';"res_bzg_vt"'
|
|
|| ';"res_bzg_cx"',
|
|
0
|
|
FROM DUAL
|
|
UNION ALL
|
|
SELECT '"'
|
|
|| fclt_f_maand
|
|
|| '";"'
|
|
|| fclt_f_catalogus
|
|
|| '";"'
|
|
|| fclt_f_cluster
|
|
|| '";"'
|
|
|| fclt_f_vestiging
|
|
|| '";"'
|
|
|| fclt_f_complex
|
|
|| '";"'
|
|
|| res_ant_nl
|
|
|| '";"'
|
|
|| res_ant_cl
|
|
|| '";"'
|
|
|| res_ant_vt
|
|
|| '";"'
|
|
|| res_ant_cx
|
|
|| '";"'
|
|
|| res_bzg_nl
|
|
|| '";"'
|
|
|| res_bzg_cl
|
|
|| '";"'
|
|
|| res_bzg_vt
|
|
|| '";"'
|
|
|| res_bzg_cx
|
|
|| '"',
|
|
1
|
|
FROM djin_v_rap_kpi_res;
|
|
|
|
CREATE OR REPLACE VIEW djin_v_rap_kpi_tot
|
|
(
|
|
fclt_3d_locatie_key,
|
|
fclt_f_maand,
|
|
fclt_f_type,
|
|
fclt_f_vakgroep,
|
|
fclt_f_cluster,
|
|
fclt_f_vestiging,
|
|
fclt_f_complex,
|
|
tot_mld,
|
|
ac_mld,
|
|
uv_mld,
|
|
tot_ord
|
|
)
|
|
AS
|
|
WITH mldtot -- Per vakgroep/complex alle meldingen (incl. onderliggende opdrachten) op MLDAFM-tijd!
|
|
AS ( SELECT l.alg_locatie_key,
|
|
TO_CHAR (t.fac_tracking_datum, 'yyyy-mm') maand,
|
|
sd.ins_srtdiscipline_prefix type,
|
|
md.ins_discipline_omschrijving vakgroep,
|
|
COALESCE (ud.fac_usrdata_omschr, 'Onbekend') cl,
|
|
d.alg_district_omschrijving vt,
|
|
l.alg_locatie_omschrijving cx,
|
|
COUNT ( * ) tot_mld,
|
|
SUM (DECODE (
|
|
SIGN(m.mld_melding_acceptdatum_std - fac.gettrackingdate ('MLDACP', m.mld_melding_key)),
|
|
-1, 0,
|
|
1))
|
|
acoptijd,
|
|
SUM (DECODE (
|
|
SIGN(m.mld_melding_einddatum_std - TRUNC (t.fac_tracking_datum, 'mi')),
|
|
-1, 0,
|
|
1))
|
|
uvoptijd,
|
|
COUNT (o.mld_opdr_key) tot_ord
|
|
FROM fac_tracking t,
|
|
mld_melding m,
|
|
mld_opdr o,
|
|
mld_stdmelding sm, -- Ook verwijderde meldingen,
|
|
mld_discipline md, -- en verwijderde vakgroepen,
|
|
ins_srtdiscipline sd, -- en verwijderde vakgroeptypen,
|
|
alg_locatie l, -- en verwijderde locaties,
|
|
alg_district d, -- en verwijderde districten!
|
|
alg_v_aanwezigonrgoedkenmerk ok,
|
|
fac_usrdata ud
|
|
WHERE t.fac_srtnotificatie_key = 38 -- MLDAFM
|
|
AND t.fac_tracking_datum > ADD_MONTHS (TRUNC (SYSDATE, 'mm'), -25)
|
|
AND t.fac_tracking_refkey = m.mld_melding_key
|
|
AND m.mld_melding_key = o.mld_melding_key
|
|
--AND m.mld_melding_status IN (5, 6) -- Afgemeld/Verwerkt
|
|
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
|
AND sm.mld_ins_discipline_key = md.ins_discipline_key
|
|
AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
|
AND m.mld_alg_locatie_key = l.alg_locatie_key
|
|
AND l.alg_district_key = d.alg_district_key
|
|
AND l.alg_locatie_key = ok.alg_onrgoed_key(+)
|
|
AND ok.alg_onrgoed_niveau(+) = 'L'
|
|
AND ok.alg_kenmerk_key(+) = 1000 -- Cluster
|
|
AND ok.alg_onrgoedkenmerk_waarde = TO_CHAR (ud.fac_usrdata_key(+))
|
|
GROUP BY l.alg_locatie_key,
|
|
TO_CHAR (t.fac_tracking_datum, 'yyyy-mm'),
|
|
sd.ins_srtdiscipline_prefix,
|
|
md.ins_discipline_omschrijving,
|
|
COALESCE (ud.fac_usrdata_omschr, 'Onbekend'),
|
|
d.alg_district_omschrijving,
|
|
l.alg_locatie_omschrijving)
|
|
SELECT alg_locatie_key, maand, type, vakgroep, cl, vt, cx, -- Per vakgroep per vakgroeptype!
|
|
TO_CHAR (tot_mld), TO_CHAR (acoptijd), TO_CHAR (uvoptijd), TO_CHAR (tot_ord)
|
|
FROM mldtot
|
|
UNION ALL -- ALLE vakgroepen over ALLE vakgroeptypen!
|
|
SELECT alg_locatie_key, maand, 'Alle' type, 'Totaal' vakgroep, cl, vt, cx,
|
|
TO_CHAR (SUM (tot_mld)), TO_CHAR (SUM (acoptijd)), TO_CHAR (SUM (uvoptijd)), TO_CHAR (SUM (tot_ord))
|
|
FROM mldtot
|
|
GROUP BY alg_locatie_key, maand, 'Alle', 'Totaal', cl, vt, cx;
|
|
|
|
CREATE OR REPLACE VIEW djin_v_export_kpi_tot
|
|
(
|
|
result,
|
|
result_order
|
|
)
|
|
AS
|
|
SELECT '"maand"'
|
|
|| ';"type"'
|
|
|| ';"vakgroep"'
|
|
|| ';"cluster"'
|
|
|| ';"vestiging"'
|
|
|| ';"complex"'
|
|
|| ';"mld"'
|
|
|| ';"ac"'
|
|
|| ';"uv"'
|
|
|| ';"ord"',
|
|
0
|
|
FROM DUAL
|
|
UNION ALL
|
|
SELECT '"'
|
|
|| fclt_f_maand
|
|
|| '";"'
|
|
|| fclt_f_type
|
|
|| '";"'
|
|
|| fclt_f_vakgroep
|
|
|| '";"'
|
|
|| fclt_f_cluster
|
|
|| '";"'
|
|
|| fclt_f_vestiging
|
|
|| '";"'
|
|
|| fclt_f_complex
|
|
|| '";"'
|
|
|| tot_mld
|
|
|| '";"'
|
|
|| ac_mld
|
|
|| '";"'
|
|
|| uv_mld
|
|
|| '";"'
|
|
|| tot_ord
|
|
|| '"',
|
|
1
|
|
FROM djin_v_rap_kpi_tot;
|
|
|
|
-- *** PER WEEK ***
|
|
/* Formatted on 30-8-2016 11:42:24 (QP5 v5.136.908.31019) */
|
|
CREATE OR REPLACE VIEW djin_v_rap_kpi_mld_std_pw
|
|
(
|
|
fclt_3d_locatie_key,
|
|
--fclt_f_maand,
|
|
fclt_f_week,
|
|
fclt_f_type,
|
|
fclt_f_vakgroep,
|
|
fclt_f_cluster,
|
|
fclt_f_vestiging,
|
|
fclt_f_complex,
|
|
n_tot_mld_std_cx,
|
|
n_ac_mld_std_cx,
|
|
n_uv_mld_std_cx,
|
|
ac_mld_std_nl,
|
|
ac_mld_std_cl,
|
|
ac_mld_std_vt,
|
|
ac_mld_std_cx,
|
|
uv_mld_std_nl,
|
|
uv_mld_std_cl,
|
|
uv_mld_std_vt,
|
|
uv_mld_std_cx
|
|
)
|
|
AS
|
|
WITH mldstdcx -- Per vakgroep/complex onder vakgroeptype=3+4 de STD-meldingen=normaal+laag op MLDAFM-tijd!
|
|
AS ( SELECT l.alg_locatie_key,
|
|
--TO_CHAR (t.fac_tracking_datum, 'yyyy-mm') maand,
|
|
TO_CHAR (t.fac_tracking_datum, 'iyyy-iw') week,
|
|
sd.ins_srtdiscipline_prefix type,
|
|
md.ins_discipline_omschrijving vakgroep,
|
|
COALESCE (ud.fac_usrdata_omschr, 'Onbekend') cl,
|
|
d.alg_district_omschrijving vt,
|
|
l.alg_locatie_omschrijving cx,
|
|
COUNT ( * ) totaal,
|
|
SUM (DECODE (
|
|
SIGN(m.mld_melding_acceptdatum_std - fac.gettrackingdate ('MLDACP', m.mld_melding_key)),
|
|
-1, 0,
|
|
1))
|
|
acoptijd,
|
|
SUM (DECODE (
|
|
SIGN(m.mld_melding_einddatum_std - TRUNC (t.fac_tracking_datum, 'mi')),
|
|
-1, 0,
|
|
1))
|
|
uvoptijd
|
|
FROM fac_tracking t,
|
|
mld_melding m,
|
|
mld_stdmelding sm, -- Ook verwijderde meldingen,
|
|
mld_discipline md, -- en verwijderde vakgroepen,
|
|
ins_srtdiscipline sd, -- en verwijderde vakgroeptypen,
|
|
alg_locatie l, -- en verwijderde locaties,
|
|
alg_district d, -- en verwijderde districten!
|
|
alg_v_aanwezigonrgoedkenmerk ok,
|
|
fac_usrdata ud
|
|
WHERE t.fac_srtnotificatie_key = 38 -- MLDAFM
|
|
--AND t.fac_tracking_datum > ADD_MONTHS (TRUNC (SYSDATE, 'mm'), -25)
|
|
AND t.fac_tracking_datum > TRUNC (SYSDATE, 'iw') - 770 -- Afgelopen 110 weken
|
|
AND t.fac_tracking_refkey = m.mld_melding_key
|
|
--AND m.mld_melding_status IN (5, 6) -- Afgemeld/Verwerkt
|
|
AND m.mld_melding_start_key IS NULL -- Muv. vervolgmeldingen
|
|
AND m.mld_melding_spoed IN (3, 4) -- Normaal/Laag
|
|
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
|
AND sm.mld_ins_discipline_key = md.ins_discipline_key
|
|
AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
|
AND sd.ins_srtdiscipline_key IN (3, 4) -- Melding Facilitair/Aanvraag
|
|
AND m.mld_alg_locatie_key = l.alg_locatie_key
|
|
AND l.alg_district_key = d.alg_district_key
|
|
AND l.alg_locatie_key = ok.alg_onrgoed_key(+)
|
|
AND ok.alg_onrgoed_niveau(+) = 'L'
|
|
AND ok.alg_kenmerk_key(+) = 1000 -- Cluster
|
|
AND ok.alg_onrgoedkenmerk_waarde = TO_CHAR (ud.fac_usrdata_key(+))
|
|
GROUP BY l.alg_locatie_key,
|
|
TO_CHAR (t.fac_tracking_datum, 'iyyy-iw'),
|
|
sd.ins_srtdiscipline_prefix,
|
|
md.ins_discipline_omschrijving,
|
|
COALESCE (ud.fac_usrdata_omschr, 'Onbekend'),
|
|
d.alg_district_omschrijving,
|
|
l.alg_locatie_omschrijving)
|
|
SELECT cx.alg_locatie_key, nl.week, nl.type, nl.vakgroep, cl.cl, vt.vt, cx.cx, -- Per vakgroep per vakgroeptype!
|
|
TO_CHAR (cx.totaal), TO_CHAR (cx.acoptijd), TO_CHAR (cx.uvoptijd),
|
|
TO_CHAR (100 * nl.ac_nl, '990') || '%',
|
|
TO_CHAR (100 * cl.ac_cl, '990') || '%',
|
|
TO_CHAR (100 * vt.ac_vt, '990') || '%',
|
|
TO_CHAR (100 * (cx.acoptijd / cx.totaal), '990') || '%',
|
|
TO_CHAR (100 * nl.uv_nl, '990') || '%',
|
|
TO_CHAR (100 * cl.uv_cl, '990') || '%',
|
|
TO_CHAR (100 * vt.uv_vt, '990') || '%',
|
|
TO_CHAR (100 * (cx.uvoptijd / cx.totaal), '990') || '%'
|
|
FROM ( SELECT week, type, vakgroep, SUM (acoptijd) / SUM (totaal) ac_nl, SUM (uvoptijd) / SUM (totaal) uv_nl
|
|
FROM mldstdcx
|
|
GROUP BY week, type, vakgroep) nl
|
|
LEFT JOIN ( SELECT week, type, vakgroep, cl, SUM (acoptijd) / SUM (totaal) ac_cl, SUM (uvoptijd) / SUM (totaal) uv_cl
|
|
FROM mldstdcx
|
|
GROUP BY week, type, vakgroep, cl) cl
|
|
ON nl.week = cl.week AND nl.type = cl.type AND nl.vakgroep = cl.vakgroep
|
|
LEFT JOIN ( SELECT week, type, vakgroep, cl, vt, SUM (acoptijd) / SUM (totaal) ac_vt, SUM (uvoptijd) / SUM (totaal) uv_vt
|
|
FROM mldstdcx
|
|
GROUP BY week, type, vakgroep, cl, vt) vt
|
|
ON cl.week = vt.week AND cl.type = vt.type AND cl.vakgroep = vt.vakgroep AND cl.cl = vt.cl
|
|
LEFT JOIN (SELECT alg_locatie_key, week, type, vakgroep, cl, vt, cx, totaal, acoptijd, uvoptijd
|
|
FROM mldstdcx) cx
|
|
ON vt.week = cx.week AND vt.type = cx.type AND vt.vakgroep = cx.vakgroep AND vt.cl = cx.cl AND vt.vt = cx.vt
|
|
UNION ALL -- ALLE vakgroepen per vakgroeptype!
|
|
SELECT cx.alg_locatie_key, nl.week, nl.type, nl.vakgroep, cl.cl, vt.vt, cx.cx,
|
|
TO_CHAR (cx.totaal), TO_CHAR (cx.acoptijd), TO_CHAR (cx.uvoptijd),
|
|
TO_CHAR (100 * nl.ac_nl, '990') || '%',
|
|
TO_CHAR (100 * cl.ac_cl, '990') || '%',
|
|
TO_CHAR (100 * vt.ac_vt, '990') || '%',
|
|
TO_CHAR (100 * (cx.acoptijd / cx.totaal), '990') || '%',
|
|
TO_CHAR (100 * nl.uv_nl, '990') || '%',
|
|
TO_CHAR (100 * cl.uv_cl, '990') || '%',
|
|
TO_CHAR (100 * vt.uv_vt, '990') || '%',
|
|
TO_CHAR (100 * (cx.uvoptijd / cx.totaal), '990') || '%'
|
|
FROM ( SELECT week, type, 'Totaal' vakgroep, SUM (acoptijd) / SUM (totaal) ac_nl, SUM (uvoptijd) / SUM (totaal) uv_nl
|
|
FROM mldstdcx
|
|
GROUP BY week, type, 'Totaal') nl
|
|
LEFT JOIN ( SELECT week, type, 'Totaal' vakgroep, cl, SUM (acoptijd) / SUM (totaal) ac_cl, SUM (uvoptijd) / SUM (totaal) uv_cl
|
|
FROM mldstdcx
|
|
GROUP BY week, type, 'Totaal', cl) cl
|
|
ON nl.week = cl.week AND nl.type = cl.type AND nl.vakgroep = cl.vakgroep
|
|
LEFT JOIN ( SELECT week, type, 'Totaal' vakgroep, cl, vt, SUM (acoptijd) / SUM (totaal) ac_vt, SUM (uvoptijd) / SUM (totaal) uv_vt
|
|
FROM mldstdcx
|
|
GROUP BY week, type, 'Totaal', cl, vt) vt
|
|
ON cl.week = vt.week AND cl.type = vt.type AND cl.vakgroep = vt.vakgroep AND cl.cl = vt.cl
|
|
LEFT JOIN ( SELECT alg_locatie_key, week, type, 'Totaal' vakgroep, cl, vt, cx, SUM (totaal) totaal, SUM (acoptijd) acoptijd, SUM (uvoptijd) uvoptijd
|
|
FROM mldstdcx
|
|
GROUP BY alg_locatie_key, week, type, 'Totaal', cl, vt, cx) cx
|
|
ON vt.week = cx.week AND vt.type = cx.type AND vt.vakgroep = cx.vakgroep AND vt.cl = cx.cl AND vt.vt = cx.vt
|
|
UNION ALL -- Per vakgroep over BEIDE vakgroeptypen!
|
|
SELECT cx.alg_locatie_key, nl.week, nl.type, nl.vakgroep, cl.cl, vt.vt, cx.cx,
|
|
TO_CHAR (cx.totaal), TO_CHAR (cx.acoptijd), TO_CHAR (cx.uvoptijd),
|
|
TO_CHAR (100 * nl.ac_nl, '990') || '%',
|
|
TO_CHAR (100 * cl.ac_cl, '990') || '%',
|
|
TO_CHAR (100 * vt.ac_vt, '990') || '%',
|
|
TO_CHAR (100 * (cx.acoptijd / cx.totaal), '990') || '%',
|
|
TO_CHAR (100 * nl.uv_nl, '990') || '%',
|
|
TO_CHAR (100 * cl.uv_cl, '990') || '%',
|
|
TO_CHAR (100 * vt.uv_vt, '990') || '%',
|
|
TO_CHAR (100 * (cx.uvoptijd / cx.totaal), '990') || '%'
|
|
FROM ( SELECT week, 'Beide' type, vakgroep, SUM (acoptijd) / SUM (totaal) ac_nl, SUM (uvoptijd) / SUM (totaal) uv_nl
|
|
FROM mldstdcx
|
|
GROUP BY week, 'Beide', vakgroep) nl
|
|
LEFT JOIN ( SELECT week, 'Beide' type, vakgroep, cl, SUM (acoptijd) / SUM (totaal) ac_cl, SUM (uvoptijd) / SUM (totaal) uv_cl
|
|
FROM mldstdcx
|
|
GROUP BY week, 'Beide', vakgroep, cl) cl
|
|
ON nl.week = cl.week AND nl.type = cl.type AND nl.vakgroep = cl.vakgroep
|
|
LEFT JOIN ( SELECT week, 'Beide' type, vakgroep, cl, vt, SUM (acoptijd) / SUM (totaal) ac_vt, SUM (uvoptijd) / SUM (totaal) uv_vt
|
|
FROM mldstdcx
|
|
GROUP BY week, 'Beide', vakgroep, cl, vt) vt
|
|
ON cl.week = vt.week AND cl.type = vt.type AND cl.vakgroep = vt.vakgroep AND cl.cl = vt.cl
|
|
LEFT JOIN ( SELECT alg_locatie_key, week, 'Beide' type, vakgroep, cl, vt, cx, SUM (totaal) totaal, SUM (acoptijd) acoptijd, SUM (uvoptijd) uvoptijd
|
|
FROM mldstdcx
|
|
GROUP BY alg_locatie_key, week, 'Beide', vakgroep, cl, vt, cx) cx
|
|
ON vt.week = cx.week AND vt.type = cx.type AND vt.vakgroep = cx.vakgroep AND vt.cl = cx.cl AND vt.vt = cx.vt
|
|
UNION ALL -- ALLE vakgroepen over BEIDE vakgroeptypen!
|
|
SELECT cx.alg_locatie_key, nl.week, nl.type, nl.vakgroep, cl.cl, vt.vt, cx.cx,
|
|
TO_CHAR (cx.totaal), TO_CHAR (cx.acoptijd), TO_CHAR (cx.uvoptijd),
|
|
TO_CHAR (100 * nl.ac_nl, '990') || '%',
|
|
TO_CHAR (100 * cl.ac_cl, '990') || '%',
|
|
TO_CHAR (100 * vt.ac_vt, '990') || '%',
|
|
TO_CHAR (100 * (cx.acoptijd / cx.totaal), '990') || '%',
|
|
TO_CHAR (100 * nl.uv_nl, '990') || '%',
|
|
TO_CHAR (100 * cl.uv_cl, '990') || '%',
|
|
TO_CHAR (100 * vt.uv_vt, '990') || '%',
|
|
TO_CHAR (100 * (cx.uvoptijd / cx.totaal), '990') || '%'
|
|
FROM ( SELECT week, 'Beide' type, 'Totaal' vakgroep, SUM (acoptijd) / SUM (totaal) ac_nl, SUM (uvoptijd) / SUM (totaal) uv_nl
|
|
FROM mldstdcx
|
|
GROUP BY week, 'Beide', 'Totaal') nl
|
|
LEFT JOIN ( SELECT week, 'Beide' type, 'Totaal' vakgroep, cl, SUM (acoptijd) / SUM (totaal) ac_cl, SUM (uvoptijd) / SUM (totaal) uv_cl
|
|
FROM mldstdcx
|
|
GROUP BY week, 'Beide', 'Totaal', cl) cl
|
|
ON nl.week = cl.week AND nl.type = cl.type AND nl.vakgroep = cl.vakgroep
|
|
LEFT JOIN ( SELECT week, 'Beide' type, 'Totaal' vakgroep, cl, vt, SUM (acoptijd) / SUM (totaal) ac_vt, SUM (uvoptijd) / SUM (totaal) uv_vt
|
|
FROM mldstdcx
|
|
GROUP BY week, 'Beide', 'Totaal', cl, vt) vt
|
|
ON cl.week = vt.week AND cl.type = vt.type AND cl.vakgroep = vt.vakgroep AND cl.cl = vt.cl
|
|
LEFT JOIN ( SELECT alg_locatie_key, week, 'Beide' type, 'Totaal' vakgroep, cl, vt, cx, SUM (totaal) totaal, SUM (acoptijd) acoptijd, SUM (uvoptijd) uvoptijd
|
|
FROM mldstdcx
|
|
GROUP BY alg_locatie_key, week, 'Beide', 'Totaal', cl, vt, cx) cx
|
|
ON vt.week = cx.week AND vt.type = cx.type AND vt.vakgroep = cx.vakgroep AND vt.cl = cx.cl AND vt.vt = cx.vt;
|
|
|
|
CREATE OR REPLACE VIEW djin_v_export_kpi_mld_std_pw
|
|
(
|
|
result,
|
|
result_order
|
|
)
|
|
AS
|
|
SELECT '"week"'
|
|
|| ';"type"'
|
|
|| ';"vakgroep"'
|
|
|| ';"cluster"'
|
|
|| ';"vestiging"'
|
|
|| ';"complex"'
|
|
|| ';"n_tot_mld_std_cx"'
|
|
|| ';"n_ac_mld_std_cx"'
|
|
|| ';"n_uv_mld_std_cx"'
|
|
|| ';"ac_mld_std_nl"'
|
|
|| ';"ac_mld_std_cl"'
|
|
|| ';"ac_mld_std_vt"'
|
|
|| ';"ac_mld_std_cx"'
|
|
|| ';"uv_mld_std_nl"'
|
|
|| ';"uv_mld_std_cl"'
|
|
|| ';"uv_mld_std_vt"'
|
|
|| ';"uv_mld_std_cx"',
|
|
0
|
|
FROM DUAL
|
|
UNION ALL
|
|
SELECT '"'
|
|
|| fclt_f_week
|
|
|| '";"'
|
|
|| fclt_f_type
|
|
|| '";"'
|
|
|| fclt_f_vakgroep
|
|
|| '";"'
|
|
|| fclt_f_cluster
|
|
|| '";"'
|
|
|| fclt_f_vestiging
|
|
|| '";"'
|
|
|| fclt_f_complex
|
|
|| '";"'
|
|
|| n_tot_mld_std_cx
|
|
|| '";"'
|
|
|| n_ac_mld_std_cx
|
|
|| '";"'
|
|
|| n_uv_mld_std_cx
|
|
|| '";"'
|
|
|| ac_mld_std_nl
|
|
|| '";"'
|
|
|| ac_mld_std_cl
|
|
|| '";"'
|
|
|| ac_mld_std_vt
|
|
|| '";"'
|
|
|| ac_mld_std_cx
|
|
|| '";"'
|
|
|| uv_mld_std_nl
|
|
|| '";"'
|
|
|| uv_mld_std_cl
|
|
|| '";"'
|
|
|| uv_mld_std_vt
|
|
|| '";"'
|
|
|| uv_mld_std_cx
|
|
|| '"',
|
|
1
|
|
FROM djin_v_rap_kpi_mld_std_pw;
|
|
|
|
CREATE OR REPLACE VIEW djin_v_rap_kpi_mld_urg_pw
|
|
(
|
|
fclt_3d_locatie_key,
|
|
--fclt_f_maand,
|
|
fclt_f_week,
|
|
fclt_f_type,
|
|
fclt_f_vakgroep,
|
|
fclt_f_cluster,
|
|
fclt_f_vestiging,
|
|
fclt_f_complex,
|
|
n_tot_mld_urg_cx,
|
|
n_ac_mld_urg_cx,
|
|
n_uv_mld_urg_cx,
|
|
ac_mld_urg_nl,
|
|
ac_mld_urg_cl,
|
|
ac_mld_urg_vt,
|
|
ac_mld_urg_cx,
|
|
uv_mld_urg_nl,
|
|
uv_mld_urg_cl,
|
|
uv_mld_urg_vt,
|
|
uv_mld_urg_cx
|
|
)
|
|
AS
|
|
WITH mldurgcx -- Per vakgroep/complex onder vakgroeptype=3+4 de URG-meldingen=kritiek+hoog op MLDAFM-tijd!
|
|
AS ( SELECT l.alg_locatie_key,
|
|
--TO_CHAR (t.fac_tracking_datum, 'yyyy-mm') maand,
|
|
TO_CHAR (t.fac_tracking_datum, 'iyyy-iw') week,
|
|
sd.ins_srtdiscipline_prefix type,
|
|
md.ins_discipline_omschrijving vakgroep,
|
|
COALESCE (ud.fac_usrdata_omschr, 'Onbekend') cl,
|
|
d.alg_district_omschrijving vt,
|
|
l.alg_locatie_omschrijving cx,
|
|
COUNT ( * ) totaal,
|
|
SUM (DECODE (
|
|
SIGN(m.mld_melding_acceptdatum_std - fac.gettrackingdate ('MLDACP', m.mld_melding_key)),
|
|
-1, 0,
|
|
1))
|
|
acoptijd,
|
|
SUM (DECODE (
|
|
SIGN(m.mld_melding_einddatum_std - TRUNC (t.fac_tracking_datum, 'mi')),
|
|
-1, 0,
|
|
1))
|
|
uvoptijd
|
|
FROM fac_tracking t,
|
|
mld_melding m,
|
|
mld_stdmelding sm, -- Ook verwijderde meldingen,
|
|
mld_discipline md, -- en verwijderde vakgroepen,
|
|
ins_srtdiscipline sd, -- en verwijderde vakgroeptypen,
|
|
alg_locatie l, -- en verwijderde locaties,
|
|
alg_district d, -- en verwijderde districten!
|
|
alg_v_aanwezigonrgoedkenmerk ok,
|
|
fac_usrdata ud
|
|
WHERE t.fac_srtnotificatie_key = 38 -- MLDAFM
|
|
--AND t.fac_tracking_datum > ADD_MONTHS (TRUNC (SYSDATE, 'mm'), -25)
|
|
AND t.fac_tracking_datum > TRUNC (SYSDATE, 'iw') - 770 -- Afgelopen 110 weken
|
|
AND t.fac_tracking_refkey = m.mld_melding_key
|
|
--AND m.mld_melding_status IN (5, 6) -- Afgemeld/Verwerkt
|
|
AND m.mld_melding_start_key IS NULL -- Muv. vervolgmeldingen
|
|
AND m.mld_melding_spoed IN (1, 2) -- Kritisch/Hoog
|
|
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
|
AND sm.mld_ins_discipline_key = md.ins_discipline_key
|
|
AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
|
AND sd.ins_srtdiscipline_key IN (3, 4) -- Melding Facilitair/Aanvraag
|
|
AND m.mld_alg_locatie_key = l.alg_locatie_key
|
|
AND l.alg_district_key = d.alg_district_key
|
|
AND l.alg_locatie_key = ok.alg_onrgoed_key(+)
|
|
AND ok.alg_onrgoed_niveau(+) = 'L'
|
|
AND ok.alg_kenmerk_key(+) = 1000 -- Cluster
|
|
AND ok.alg_onrgoedkenmerk_waarde = TO_CHAR (ud.fac_usrdata_key(+))
|
|
GROUP BY l.alg_locatie_key,
|
|
TO_CHAR (t.fac_tracking_datum, 'iyyy-iw'),
|
|
sd.ins_srtdiscipline_prefix,
|
|
md.ins_discipline_omschrijving,
|
|
COALESCE (ud.fac_usrdata_omschr, 'Onbekend'),
|
|
d.alg_district_omschrijving,
|
|
l.alg_locatie_omschrijving)
|
|
SELECT cx.alg_locatie_key, nl.week, nl.type, nl.vakgroep, cl.cl, vt.vt, cx.cx, -- Per vakgroep per vakgroeptype!
|
|
TO_CHAR (cx.totaal), TO_CHAR (cx.acoptijd), TO_CHAR (cx.uvoptijd),
|
|
TO_CHAR (100 * nl.ac_nl, '990') || '%',
|
|
TO_CHAR (100 * cl.ac_cl, '990') || '%',
|
|
TO_CHAR (100 * vt.ac_vt, '990') || '%',
|
|
TO_CHAR (100 * (cx.acoptijd / cx.totaal), '990') || '%',
|
|
TO_CHAR (100 * nl.uv_nl, '990') || '%',
|
|
TO_CHAR (100 * cl.uv_cl, '990') || '%',
|
|
TO_CHAR (100 * vt.uv_vt, '990') || '%',
|
|
TO_CHAR (100 * (cx.uvoptijd / cx.totaal), '990') || '%'
|
|
FROM ( SELECT week, type, vakgroep, SUM (acoptijd) / SUM (totaal) ac_nl, SUM (uvoptijd) / SUM (totaal) uv_nl
|
|
FROM mldurgcx
|
|
GROUP BY week, type, vakgroep) nl
|
|
LEFT JOIN ( SELECT week, type, vakgroep, cl, SUM (acoptijd) / SUM (totaal) ac_cl, SUM (uvoptijd) / SUM (totaal) uv_cl
|
|
FROM mldurgcx
|
|
GROUP BY week, type, vakgroep, cl) cl
|
|
ON nl.week = cl.week AND nl.type = cl.type AND nl.vakgroep = cl.vakgroep
|
|
LEFT JOIN ( SELECT week, type, vakgroep, cl, vt, SUM (acoptijd) / SUM (totaal) ac_vt, SUM (uvoptijd) / SUM (totaal) uv_vt
|
|
FROM mldurgcx
|
|
GROUP BY week, type, vakgroep, cl, vt) vt
|
|
ON cl.week = vt.week AND cl.type = vt.type AND cl.vakgroep = vt.vakgroep AND cl.cl = vt.cl
|
|
LEFT JOIN (SELECT alg_locatie_key, week, type, vakgroep, cl, vt, cx, totaal, acoptijd, uvoptijd
|
|
FROM mldurgcx) cx
|
|
ON vt.week = cx.week AND vt.type = cx.type AND vt.vakgroep = cx.vakgroep AND vt.cl = cx.cl AND vt.vt = cx.vt
|
|
UNION ALL -- ALLE vakgroepen per vakgroeptype!
|
|
SELECT cx.alg_locatie_key, nl.week, nl.type, nl.vakgroep, cl.cl, vt.vt, cx.cx,
|
|
TO_CHAR (cx.totaal), TO_CHAR (cx.acoptijd), TO_CHAR (cx.uvoptijd),
|
|
TO_CHAR (100 * nl.ac_nl, '990') || '%',
|
|
TO_CHAR (100 * cl.ac_cl, '990') || '%',
|
|
TO_CHAR (100 * vt.ac_vt, '990') || '%',
|
|
TO_CHAR (100 * (cx.acoptijd / cx.totaal), '990') || '%',
|
|
TO_CHAR (100 * nl.uv_nl, '990') || '%',
|
|
TO_CHAR (100 * cl.uv_cl, '990') || '%',
|
|
TO_CHAR (100 * vt.uv_vt, '990') || '%',
|
|
TO_CHAR (100 * (cx.uvoptijd / cx.totaal), '990') || '%'
|
|
FROM ( SELECT week, type, 'Totaal' vakgroep, SUM (acoptijd) / SUM (totaal) ac_nl, SUM (uvoptijd) / SUM (totaal) uv_nl
|
|
FROM mldurgcx
|
|
GROUP BY week, type, 'Totaal') nl
|
|
LEFT JOIN ( SELECT week, type, 'Totaal' vakgroep, cl, SUM (acoptijd) / SUM (totaal) ac_cl, SUM (uvoptijd) / SUM (totaal) uv_cl
|
|
FROM mldurgcx
|
|
GROUP BY week, type, 'Totaal', cl) cl
|
|
ON nl.week = cl.week AND nl.type = cl.type AND nl.vakgroep = cl.vakgroep
|
|
LEFT JOIN ( SELECT week, type, 'Totaal' vakgroep, cl, vt, SUM (acoptijd) / SUM (totaal) ac_vt, SUM (uvoptijd) / SUM (totaal) uv_vt
|
|
FROM mldurgcx
|
|
GROUP BY week, type, 'Totaal', cl, vt) vt
|
|
ON cl.week = vt.week AND cl.type = vt.type AND cl.vakgroep = vt.vakgroep AND cl.cl = vt.cl
|
|
LEFT JOIN ( SELECT alg_locatie_key, week, type, 'Totaal' vakgroep, cl, vt, cx, SUM (totaal) totaal, SUM (acoptijd) acoptijd, SUM (uvoptijd) uvoptijd
|
|
FROM mldurgcx
|
|
GROUP BY alg_locatie_key, week, type, 'Totaal', cl, vt, cx) cx
|
|
ON vt.week = cx.week AND vt.type = cx.type AND vt.vakgroep = cx.vakgroep AND vt.cl = cx.cl AND vt.vt = cx.vt
|
|
UNION ALL -- Per vakgroep over BEIDE vakgroeptypen!
|
|
SELECT cx.alg_locatie_key, nl.week, nl.type, nl.vakgroep, cl.cl, vt.vt, cx.cx,
|
|
TO_CHAR (cx.totaal), TO_CHAR (cx.acoptijd), TO_CHAR (cx.uvoptijd),
|
|
TO_CHAR (100 * nl.ac_nl, '990') || '%',
|
|
TO_CHAR (100 * cl.ac_cl, '990') || '%',
|
|
TO_CHAR (100 * vt.ac_vt, '990') || '%',
|
|
TO_CHAR (100 * (cx.acoptijd / cx.totaal), '990') || '%',
|
|
TO_CHAR (100 * nl.uv_nl, '990') || '%',
|
|
TO_CHAR (100 * cl.uv_cl, '990') || '%',
|
|
TO_CHAR (100 * vt.uv_vt, '990') || '%',
|
|
TO_CHAR (100 * (cx.uvoptijd / cx.totaal), '990') || '%'
|
|
FROM ( SELECT week, 'Beide' type, vakgroep, SUM (acoptijd) / SUM (totaal) ac_nl, SUM (uvoptijd) / SUM (totaal) uv_nl
|
|
FROM mldurgcx
|
|
GROUP BY week, 'Beide', vakgroep) nl
|
|
LEFT JOIN ( SELECT week, 'Beide' type, vakgroep, cl, SUM (acoptijd) / SUM (totaal) ac_cl, SUM (uvoptijd) / SUM (totaal) uv_cl
|
|
FROM mldurgcx
|
|
GROUP BY week, 'Beide', vakgroep, cl) cl
|
|
ON nl.week = cl.week AND nl.type = cl.type AND nl.vakgroep = cl.vakgroep
|
|
LEFT JOIN ( SELECT week, 'Beide' type, vakgroep, cl, vt, SUM (acoptijd) / SUM (totaal) ac_vt, SUM (uvoptijd) / SUM (totaal) uv_vt
|
|
FROM mldurgcx
|
|
GROUP BY week, 'Beide', vakgroep, cl, vt) vt
|
|
ON cl.week = vt.week AND cl.type = vt.type AND cl.vakgroep = vt.vakgroep AND cl.cl = vt.cl
|
|
LEFT JOIN ( SELECT alg_locatie_key, week, 'Beide' type, vakgroep, cl, vt, cx, SUM (totaal) totaal, SUM (acoptijd) acoptijd, SUM (uvoptijd) uvoptijd
|
|
FROM mldurgcx
|
|
GROUP BY alg_locatie_key, week, 'Beide', vakgroep, cl, vt, cx) cx
|
|
ON vt.week = cx.week AND vt.type = cx.type AND vt.vakgroep = cx.vakgroep AND vt.cl = cx.cl AND vt.vt = cx.vt
|
|
UNION ALL -- ALLE vakgroepen over BEIDE vakgroeptypen!
|
|
SELECT cx.alg_locatie_key, nl.week, nl.type, nl.vakgroep, cl.cl, vt.vt, cx.cx,
|
|
TO_CHAR (cx.totaal), TO_CHAR (cx.acoptijd), TO_CHAR (cx.uvoptijd),
|
|
TO_CHAR (100 * nl.ac_nl, '990') || '%',
|
|
TO_CHAR (100 * cl.ac_cl, '990') || '%',
|
|
TO_CHAR (100 * vt.ac_vt, '990') || '%',
|
|
TO_CHAR (100 * (cx.acoptijd / cx.totaal), '990') || '%',
|
|
TO_CHAR (100 * nl.uv_nl, '990') || '%',
|
|
TO_CHAR (100 * cl.uv_cl, '990') || '%',
|
|
TO_CHAR (100 * vt.uv_vt, '990') || '%',
|
|
TO_CHAR (100 * (cx.uvoptijd / cx.totaal), '990') || '%'
|
|
FROM ( SELECT week, 'Beide' type, 'Totaal' vakgroep, SUM (acoptijd) / SUM (totaal) ac_nl, SUM (uvoptijd) / SUM (totaal) uv_nl
|
|
FROM mldurgcx
|
|
GROUP BY week, 'Beide', 'Totaal') nl
|
|
LEFT JOIN ( SELECT week, 'Beide' type, 'Totaal' vakgroep, cl, SUM (acoptijd) / SUM (totaal) ac_cl, SUM (uvoptijd) / SUM (totaal) uv_cl
|
|
FROM mldurgcx
|
|
GROUP BY week, 'Beide', 'Totaal', cl) cl
|
|
ON nl.week = cl.week AND nl.type = cl.type AND nl.vakgroep = cl.vakgroep
|
|
LEFT JOIN ( SELECT week, 'Beide' type, 'Totaal' vakgroep, cl, vt, SUM (acoptijd) / SUM (totaal) ac_vt, SUM (uvoptijd) / SUM (totaal) uv_vt
|
|
FROM mldurgcx
|
|
GROUP BY week, 'Beide', 'Totaal', cl, vt) vt
|
|
ON cl.week = vt.week AND cl.type = vt.type AND cl.vakgroep = vt.vakgroep AND cl.cl = vt.cl
|
|
LEFT JOIN ( SELECT alg_locatie_key, week, 'Beide' type, 'Totaal' vakgroep, cl, vt, cx, SUM (totaal) totaal, SUM (acoptijd) acoptijd, SUM (uvoptijd) uvoptijd
|
|
FROM mldurgcx
|
|
GROUP BY alg_locatie_key, week, 'Beide', 'Totaal', cl, vt, cx) cx
|
|
ON vt.week = cx.week AND vt.type = cx.type AND vt.vakgroep = cx.vakgroep AND vt.cl = cx.cl AND vt.vt = cx.vt;
|
|
|
|
CREATE OR REPLACE VIEW djin_v_export_kpi_mld_urg_pw
|
|
(
|
|
result,
|
|
result_order
|
|
)
|
|
AS
|
|
SELECT '"week"'
|
|
|| ';"type"'
|
|
|| ';"vakgroep"'
|
|
|| ';"cluster"'
|
|
|| ';"vestiging"'
|
|
|| ';"complex"'
|
|
|| ';"n_tot_mld_urg_cx"'
|
|
|| ';"n_ac_mld_urg_cx"'
|
|
|| ';"n_uv_mld_urg_cx"'
|
|
|| ';"ac_mld_urg_nl"'
|
|
|| ';"ac_mld_urg_cl"'
|
|
|| ';"ac_mld_urg_vt"'
|
|
|| ';"ac_mld_urg_cx"'
|
|
|| ';"uv_mld_urg_nl"'
|
|
|| ';"uv_mld_urg_cl"'
|
|
|| ';"uv_mld_urg_vt"'
|
|
|| ';"uv_mld_urg_cx"',
|
|
0
|
|
FROM DUAL
|
|
UNION ALL
|
|
SELECT '"'
|
|
|| fclt_f_week
|
|
|| '";"'
|
|
|| fclt_f_type
|
|
|| '";"'
|
|
|| fclt_f_vakgroep
|
|
|| '";"'
|
|
|| fclt_f_cluster
|
|
|| '";"'
|
|
|| fclt_f_vestiging
|
|
|| '";"'
|
|
|| fclt_f_complex
|
|
|| '";"'
|
|
|| n_tot_mld_urg_cx
|
|
|| '";"'
|
|
|| n_ac_mld_urg_cx
|
|
|| '";"'
|
|
|| n_uv_mld_urg_cx
|
|
|| '";"'
|
|
|| ac_mld_urg_nl
|
|
|| '";"'
|
|
|| ac_mld_urg_cl
|
|
|| '";"'
|
|
|| ac_mld_urg_vt
|
|
|| '";"'
|
|
|| ac_mld_urg_cx
|
|
|| '";"'
|
|
|| uv_mld_urg_nl
|
|
|| '";"'
|
|
|| uv_mld_urg_cl
|
|
|| '";"'
|
|
|| uv_mld_urg_vt
|
|
|| '";"'
|
|
|| uv_mld_urg_cx
|
|
|| '"',
|
|
1
|
|
FROM djin_v_rap_kpi_mld_urg_pw;
|
|
|
|
CREATE OR REPLACE VIEW djin_v_rap_kpi_mld_vvg_pw
|
|
(
|
|
fclt_3d_locatie_key,
|
|
--fclt_f_maand,
|
|
fclt_f_week,
|
|
fclt_f_type,
|
|
fclt_f_vakgroep,
|
|
fclt_f_cluster,
|
|
fclt_f_vestiging,
|
|
fclt_f_complex,
|
|
n_tot_mld_vvg_cx,
|
|
n_ac_mld_vvg_cx,
|
|
n_uv_mld_vvg_cx,
|
|
ac_mld_vvg_nl,
|
|
ac_mld_vvg_cl,
|
|
ac_mld_vvg_vt,
|
|
ac_mld_vvg_cx,
|
|
uv_mld_vvg_nl,
|
|
uv_mld_vvg_cl,
|
|
uv_mld_vvg_vt,
|
|
uv_mld_vvg_cx
|
|
)
|
|
AS
|
|
WITH mldvvgcx -- Per vakgroep/complex onder vakgroeptype=3+4 de VVG-meldingen (elke spoed) op MLDAFM-tijd!
|
|
AS ( SELECT l.alg_locatie_key,
|
|
--TO_CHAR (t.fac_tracking_datum, 'yyyy-mm') maand,
|
|
TO_CHAR (t.fac_tracking_datum, 'iyyy-iw') week,
|
|
sd.ins_srtdiscipline_prefix type,
|
|
md.ins_discipline_omschrijving vakgroep,
|
|
COALESCE (ud.fac_usrdata_omschr, 'Onbekend') cl,
|
|
d.alg_district_omschrijving vt,
|
|
l.alg_locatie_omschrijving cx,
|
|
COUNT ( * ) totaal,
|
|
SUM (DECODE (
|
|
SIGN(m.mld_melding_acceptdatum_std - fac.gettrackingdate ('MLDACP', m.mld_melding_key)),
|
|
-1, 0,
|
|
1))
|
|
acoptijd,
|
|
SUM (DECODE (
|
|
SIGN(m.mld_melding_einddatum_std - TRUNC (t.fac_tracking_datum, 'mi')),
|
|
-1, 0,
|
|
1))
|
|
uvoptijd
|
|
FROM fac_tracking t,
|
|
mld_melding m,
|
|
mld_stdmelding sm, -- Ook verwijderde meldingen,
|
|
mld_discipline md, -- en verwijderde vakgroepen,
|
|
ins_srtdiscipline sd, -- en verwijderde vakgroeptypen,
|
|
alg_locatie l, -- en verwijderde locaties,
|
|
alg_district d, -- en verwijderde districten!
|
|
alg_v_aanwezigonrgoedkenmerk ok,
|
|
fac_usrdata ud
|
|
WHERE t.fac_srtnotificatie_key = 38 -- MLDAFM
|
|
--AND t.fac_tracking_datum > ADD_MONTHS (TRUNC (SYSDATE, 'mm'), -25)
|
|
AND t.fac_tracking_datum > TRUNC (SYSDATE, 'iw') - 770 -- Afgelopen 110 weken
|
|
AND t.fac_tracking_refkey = m.mld_melding_key
|
|
--AND m.mld_melding_status IN (5, 6) -- Afgemeld/Verwerkt
|
|
AND m.mld_melding_start_key IS NOT NULL -- Vervolgmeldingen
|
|
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
|
AND sm.mld_ins_discipline_key = md.ins_discipline_key
|
|
AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
|
AND sd.ins_srtdiscipline_key IN (3, 4) -- Melding Facilitair/Aanvraag
|
|
AND m.mld_alg_locatie_key = l.alg_locatie_key
|
|
AND l.alg_district_key = d.alg_district_key
|
|
AND l.alg_locatie_key = ok.alg_onrgoed_key(+)
|
|
AND ok.alg_onrgoed_niveau(+) = 'L'
|
|
AND ok.alg_kenmerk_key(+) = 1000 -- Cluster
|
|
AND ok.alg_onrgoedkenmerk_waarde = TO_CHAR (ud.fac_usrdata_key(+))
|
|
GROUP BY l.alg_locatie_key,
|
|
TO_CHAR (t.fac_tracking_datum, 'iyyy-iw'),
|
|
sd.ins_srtdiscipline_prefix,
|
|
md.ins_discipline_omschrijving,
|
|
COALESCE (ud.fac_usrdata_omschr, 'Onbekend'),
|
|
d.alg_district_omschrijving,
|
|
l.alg_locatie_omschrijving)
|
|
SELECT cx.alg_locatie_key, nl.week, nl.type, nl.vakgroep, cl.cl, vt.vt, cx.cx, -- Per vakgroep per vakgroeptype!
|
|
TO_CHAR (cx.totaal), TO_CHAR (cx.acoptijd), TO_CHAR (cx.uvoptijd),
|
|
TO_CHAR (100 * nl.ac_nl, '990') || '%',
|
|
TO_CHAR (100 * cl.ac_cl, '990') || '%',
|
|
TO_CHAR (100 * vt.ac_vt, '990') || '%',
|
|
TO_CHAR (100 * (cx.acoptijd / cx.totaal), '990') || '%',
|
|
TO_CHAR (100 * nl.uv_nl, '990') || '%',
|
|
TO_CHAR (100 * cl.uv_cl, '990') || '%',
|
|
TO_CHAR (100 * vt.uv_vt, '990') || '%',
|
|
TO_CHAR (100 * (cx.uvoptijd / cx.totaal), '990') || '%'
|
|
FROM ( SELECT week, type, vakgroep, SUM (acoptijd) / SUM (totaal) ac_nl, SUM (uvoptijd) / SUM (totaal) uv_nl
|
|
FROM mldvvgcx
|
|
GROUP BY week, type, vakgroep) nl
|
|
LEFT JOIN ( SELECT week, type, vakgroep, cl, SUM (acoptijd) / SUM (totaal) ac_cl, SUM (uvoptijd) / SUM (totaal) uv_cl
|
|
FROM mldvvgcx
|
|
GROUP BY week, type, vakgroep, cl) cl
|
|
ON nl.week = cl.week AND nl.type = cl.type AND nl.vakgroep = cl.vakgroep
|
|
LEFT JOIN ( SELECT week, type, vakgroep, cl, vt, SUM (acoptijd) / SUM (totaal) ac_vt, SUM (uvoptijd) / SUM (totaal) uv_vt
|
|
FROM mldvvgcx
|
|
GROUP BY week, type, vakgroep, cl, vt) vt
|
|
ON cl.week = vt.week AND cl.type = vt.type AND cl.vakgroep = vt.vakgroep AND cl.cl = vt.cl
|
|
LEFT JOIN (SELECT alg_locatie_key, week, type, vakgroep, cl, vt, cx, totaal, acoptijd, uvoptijd
|
|
FROM mldvvgcx) cx
|
|
ON vt.week = cx.week AND vt.type = cx.type AND vt.vakgroep = cx.vakgroep AND vt.cl = cx.cl AND vt.vt = cx.vt
|
|
UNION ALL -- ALLE vakgroepen per vakgroeptype!
|
|
SELECT cx.alg_locatie_key, nl.week, nl.type, nl.vakgroep, cl.cl, vt.vt, cx.cx,
|
|
TO_CHAR (cx.totaal), TO_CHAR (cx.acoptijd), TO_CHAR (cx.uvoptijd),
|
|
TO_CHAR (100 * nl.ac_nl, '990') || '%',
|
|
TO_CHAR (100 * cl.ac_cl, '990') || '%',
|
|
TO_CHAR (100 * vt.ac_vt, '990') || '%',
|
|
TO_CHAR (100 * (cx.acoptijd / cx.totaal), '990') || '%',
|
|
TO_CHAR (100 * nl.uv_nl, '990') || '%',
|
|
TO_CHAR (100 * cl.uv_cl, '990') || '%',
|
|
TO_CHAR (100 * vt.uv_vt, '990') || '%',
|
|
TO_CHAR (100 * (cx.uvoptijd / cx.totaal), '990') || '%'
|
|
FROM ( SELECT week, type, 'Totaal' vakgroep, SUM (acoptijd) / SUM (totaal) ac_nl, SUM (uvoptijd) / SUM (totaal) uv_nl
|
|
FROM mldvvgcx
|
|
GROUP BY week, type, 'Totaal') nl
|
|
LEFT JOIN ( SELECT week, type, 'Totaal' vakgroep, cl, SUM (acoptijd) / SUM (totaal) ac_cl, SUM (uvoptijd) / SUM (totaal) uv_cl
|
|
FROM mldvvgcx
|
|
GROUP BY week, type, 'Totaal', cl) cl
|
|
ON nl.week = cl.week AND nl.type = cl.type AND nl.vakgroep = cl.vakgroep
|
|
LEFT JOIN ( SELECT week, type, 'Totaal' vakgroep, cl, vt, SUM (acoptijd) / SUM (totaal) ac_vt, SUM (uvoptijd) / SUM (totaal) uv_vt
|
|
FROM mldvvgcx
|
|
GROUP BY week, type, 'Totaal', cl, vt) vt
|
|
ON cl.week = vt.week AND cl.type = vt.type AND cl.vakgroep = vt.vakgroep AND cl.cl = vt.cl
|
|
LEFT JOIN ( SELECT alg_locatie_key, week, type, 'Totaal' vakgroep, cl, vt, cx, SUM (totaal) totaal, SUM (acoptijd) acoptijd, SUM (uvoptijd) uvoptijd
|
|
FROM mldvvgcx
|
|
GROUP BY alg_locatie_key, week, type, 'Totaal', cl, vt, cx) cx
|
|
ON vt.week = cx.week AND vt.type = cx.type AND vt.vakgroep = cx.vakgroep AND vt.cl = cx.cl AND vt.vt = cx.vt
|
|
UNION ALL -- Per vakgroep over BEIDE vakgroeptypen!
|
|
SELECT cx.alg_locatie_key, nl.week, nl.type, nl.vakgroep, cl.cl, vt.vt, cx.cx,
|
|
TO_CHAR (cx.totaal), TO_CHAR (cx.acoptijd), TO_CHAR (cx.uvoptijd),
|
|
TO_CHAR (100 * nl.ac_nl, '990') || '%',
|
|
TO_CHAR (100 * cl.ac_cl, '990') || '%',
|
|
TO_CHAR (100 * vt.ac_vt, '990') || '%',
|
|
TO_CHAR (100 * (cx.acoptijd / cx.totaal), '990') || '%',
|
|
TO_CHAR (100 * nl.uv_nl, '990') || '%',
|
|
TO_CHAR (100 * cl.uv_cl, '990') || '%',
|
|
TO_CHAR (100 * vt.uv_vt, '990') || '%',
|
|
TO_CHAR (100 * (cx.uvoptijd / cx.totaal), '990') || '%'
|
|
FROM ( SELECT week, 'Beide' type, vakgroep, SUM (acoptijd) / SUM (totaal) ac_nl, SUM (uvoptijd) / SUM (totaal) uv_nl
|
|
FROM mldvvgcx
|
|
GROUP BY week, 'Beide', vakgroep) nl
|
|
LEFT JOIN ( SELECT week, 'Beide' type, vakgroep, cl, SUM (acoptijd) / SUM (totaal) ac_cl, SUM (uvoptijd) / SUM (totaal) uv_cl
|
|
FROM mldvvgcx
|
|
GROUP BY week, 'Beide', vakgroep, cl) cl
|
|
ON nl.week = cl.week AND nl.type = cl.type AND nl.vakgroep = cl.vakgroep
|
|
LEFT JOIN ( SELECT week, 'Beide' type, vakgroep, cl, vt, SUM (acoptijd) / SUM (totaal) ac_vt, SUM (uvoptijd) / SUM (totaal) uv_vt
|
|
FROM mldvvgcx
|
|
GROUP BY week, 'Beide', vakgroep, cl, vt) vt
|
|
ON cl.week = vt.week AND cl.type = vt.type AND cl.vakgroep = vt.vakgroep AND cl.cl = vt.cl
|
|
LEFT JOIN ( SELECT alg_locatie_key, week, 'Beide' type, vakgroep, cl, vt, cx, SUM (totaal) totaal, SUM (acoptijd) acoptijd, SUM (uvoptijd) uvoptijd
|
|
FROM mldvvgcx
|
|
GROUP BY alg_locatie_key, week, 'Beide', vakgroep, cl, vt, cx) cx
|
|
ON vt.week = cx.week AND vt.type = cx.type AND vt.vakgroep = cx.vakgroep AND vt.cl = cx.cl AND vt.vt = cx.vt
|
|
UNION ALL -- ALLE vakgroepen over BEIDE vakgroeptypen!
|
|
SELECT cx.alg_locatie_key, nl.week, nl.type, nl.vakgroep, cl.cl, vt.vt, cx.cx,
|
|
TO_CHAR (cx.totaal), TO_CHAR (cx.acoptijd), TO_CHAR (cx.uvoptijd),
|
|
TO_CHAR (100 * nl.ac_nl, '990') || '%',
|
|
TO_CHAR (100 * cl.ac_cl, '990') || '%',
|
|
TO_CHAR (100 * vt.ac_vt, '990') || '%',
|
|
TO_CHAR (100 * (cx.acoptijd / cx.totaal), '990') || '%',
|
|
TO_CHAR (100 * nl.uv_nl, '990') || '%',
|
|
TO_CHAR (100 * cl.uv_cl, '990') || '%',
|
|
TO_CHAR (100 * vt.uv_vt, '990') || '%',
|
|
TO_CHAR (100 * (cx.uvoptijd / cx.totaal), '990') || '%'
|
|
FROM ( SELECT week, 'Beide' type, 'Totaal' vakgroep, SUM (acoptijd) / SUM (totaal) ac_nl, SUM (uvoptijd) / SUM (totaal) uv_nl
|
|
FROM mldvvgcx
|
|
GROUP BY week, 'Beide', 'Totaal') nl
|
|
LEFT JOIN ( SELECT week, 'Beide' type, 'Totaal' vakgroep, cl, SUM (acoptijd) / SUM (totaal) ac_cl, SUM (uvoptijd) / SUM (totaal) uv_cl
|
|
FROM mldvvgcx
|
|
GROUP BY week, 'Beide', 'Totaal', cl) cl
|
|
ON nl.week = cl.week AND nl.type = cl.type AND nl.vakgroep = cl.vakgroep
|
|
LEFT JOIN ( SELECT week, 'Beide' type, 'Totaal' vakgroep, cl, vt, SUM (acoptijd) / SUM (totaal) ac_vt, SUM (uvoptijd) / SUM (totaal) uv_vt
|
|
FROM mldvvgcx
|
|
GROUP BY week, 'Beide', 'Totaal', cl, vt) vt
|
|
ON cl.week = vt.week AND cl.type = vt.type AND cl.vakgroep = vt.vakgroep AND cl.cl = vt.cl
|
|
LEFT JOIN ( SELECT alg_locatie_key, week, 'Beide' type, 'Totaal' vakgroep, cl, vt, cx, SUM (totaal) totaal, SUM (acoptijd) acoptijd, SUM (uvoptijd) uvoptijd
|
|
FROM mldvvgcx
|
|
GROUP BY alg_locatie_key, week, 'Beide', 'Totaal', cl, vt, cx) cx
|
|
ON vt.week = cx.week AND vt.type = cx.type AND vt.vakgroep = cx.vakgroep AND vt.cl = cx.cl AND vt.vt = cx.vt;
|
|
|
|
CREATE OR REPLACE VIEW djin_v_export_kpi_mld_vvg_pw
|
|
(
|
|
result,
|
|
result_order
|
|
)
|
|
AS
|
|
SELECT '"week"'
|
|
|| ';"type"'
|
|
|| ';"vakgroep"'
|
|
|| ';"cluster"'
|
|
|| ';"vestiging"'
|
|
|| ';"complex"'
|
|
|| ';"n_tot_mld_vvg_cx"'
|
|
|| ';"n_ac_mld_vvg_cx"'
|
|
|| ';"n_uv_mld_vvg_cx"'
|
|
|| ';"ac_mld_vvg_nl"'
|
|
|| ';"ac_mld_vvg_cl"'
|
|
|| ';"ac_mld_vvg_vt"'
|
|
|| ';"ac_mld_vvg_cx"'
|
|
|| ';"uv_mld_vvg_nl"'
|
|
|| ';"uv_mld_vvg_cl"'
|
|
|| ';"uv_mld_vvg_vt"'
|
|
|| ';"uv_mld_vvg_cx"',
|
|
0
|
|
FROM DUAL
|
|
UNION ALL
|
|
SELECT '"'
|
|
|| fclt_f_week
|
|
|| '";"'
|
|
|| fclt_f_type
|
|
|| '";"'
|
|
|| fclt_f_vakgroep
|
|
|| '";"'
|
|
|| fclt_f_cluster
|
|
|| '";"'
|
|
|| fclt_f_vestiging
|
|
|| '";"'
|
|
|| fclt_f_complex
|
|
|| '";"'
|
|
|| n_tot_mld_vvg_cx
|
|
|| '";"'
|
|
|| n_ac_mld_vvg_cx
|
|
|| '";"'
|
|
|| n_uv_mld_vvg_cx
|
|
|| '";"'
|
|
|| ac_mld_vvg_nl
|
|
|| '";"'
|
|
|| ac_mld_vvg_cl
|
|
|| '";"'
|
|
|| ac_mld_vvg_vt
|
|
|| '";"'
|
|
|| ac_mld_vvg_cx
|
|
|| '";"'
|
|
|| uv_mld_vvg_nl
|
|
|| '";"'
|
|
|| uv_mld_vvg_cl
|
|
|| '";"'
|
|
|| uv_mld_vvg_vt
|
|
|| '";"'
|
|
|| uv_mld_vvg_cx
|
|
|| '"',
|
|
1
|
|
FROM djin_v_rap_kpi_mld_vvg_pw;
|
|
|
|
CREATE OR REPLACE VIEW djin_v_rap_kpi_klr_pw
|
|
(
|
|
fclt_3d_locatie_key,
|
|
--fclt_f_maand,
|
|
fclt_f_week,
|
|
fclt_f_melding,
|
|
fclt_f_cluster,
|
|
fclt_f_vestiging,
|
|
fclt_f_complex,
|
|
n_tot_klr_cx,
|
|
n_ac_klr_cx,
|
|
n_uv_klr_cx,
|
|
ac_klr_nl,
|
|
ac_klr_cl,
|
|
ac_klr_vt,
|
|
ac_klr_cx,
|
|
uv_klr_nl,
|
|
uv_klr_cl,
|
|
uv_klr_vt,
|
|
uv_klr_cx
|
|
)
|
|
AS
|
|
WITH mldklrcx -- Per melding/complex onder vakgroeptype=2 de KLR-meldingen (klantreacties) op MLDAFM-tijd!
|
|
AS ( SELECT l.alg_locatie_key,
|
|
--TO_CHAR (t.fac_tracking_datum, 'yyyy-mm') maand,
|
|
TO_CHAR (t.fac_tracking_datum, 'iyyy-iw') week,
|
|
sm.mld_stdmelding_omschrijving melding,
|
|
COALESCE (ud.fac_usrdata_omschr, 'Onbekend') cl,
|
|
d.alg_district_omschrijving vt,
|
|
l.alg_locatie_omschrijving cx,
|
|
COUNT ( * ) totaal,
|
|
SUM (DECODE (
|
|
SIGN(m.mld_melding_acceptdatum_std - fac.gettrackingdate ('MLDACP', m.mld_melding_key)),
|
|
-1, 0,
|
|
1))
|
|
acoptijd,
|
|
SUM (DECODE (
|
|
SIGN(m.mld_melding_einddatum_std - TRUNC (t.fac_tracking_datum, 'mi')),
|
|
-1, 0,
|
|
1))
|
|
uvoptijd
|
|
FROM fac_tracking t,
|
|
mld_melding m,
|
|
mld_stdmelding sm, -- Ook verwijderde meldingen!
|
|
mld_discipline md, -- Ook verwijderde vakgroepen!
|
|
alg_locatie l, -- Ook verwijderde locaties!
|
|
alg_district d, -- Ook verwijderde districten!
|
|
alg_v_aanwezigonrgoedkenmerk ok,
|
|
fac_usrdata ud
|
|
WHERE t.fac_srtnotificatie_key = 38 -- MLDAFM
|
|
--AND t.fac_tracking_datum > ADD_MONTHS (TRUNC (SYSDATE, 'mm'), -25)
|
|
AND t.fac_tracking_datum > TRUNC (SYSDATE, 'iw') - 770 -- Afgelopen 110 weken
|
|
AND t.fac_tracking_refkey = m.mld_melding_key
|
|
--AND m.mld_melding_status IN (5, 6) -- Afgemeld/Verwerkt
|
|
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
|
AND sm.mld_ins_discipline_key = md.ins_discipline_key
|
|
AND md.ins_srtdiscipline_key = 2 -- Klantreactie
|
|
AND m.mld_alg_locatie_key = l.alg_locatie_key
|
|
AND l.alg_district_key = d.alg_district_key
|
|
AND l.alg_locatie_key = ok.alg_onrgoed_key(+)
|
|
AND ok.alg_onrgoed_niveau(+) = 'L'
|
|
AND ok.alg_kenmerk_key(+) = 1000 -- Cluster
|
|
AND ok.alg_onrgoedkenmerk_waarde = TO_CHAR (ud.fac_usrdata_key(+))
|
|
GROUP BY l.alg_locatie_key,
|
|
TO_CHAR (t.fac_tracking_datum, 'iyyy-iw'),
|
|
sm.mld_stdmelding_omschrijving,
|
|
COALESCE (ud.fac_usrdata_omschr, 'Onbekend'),
|
|
d.alg_district_omschrijving,
|
|
l.alg_locatie_omschrijving)
|
|
SELECT cx.alg_locatie_key, nl.week, nl.melding, cl.cl, vt.vt, cx.cx, -- Per KLR-vakgroep!
|
|
TO_CHAR (cx.totaal), TO_CHAR (cx.acoptijd), TO_CHAR (cx.uvoptijd),
|
|
TO_CHAR (100 * nl.ac_nl, '990') || '%',
|
|
TO_CHAR (100 * cl.ac_cl, '990') || '%',
|
|
TO_CHAR (100 * vt.ac_vt, '990') || '%',
|
|
TO_CHAR (100 * (cx.acoptijd / cx.totaal), '990') || '%',
|
|
TO_CHAR (100 * nl.uv_nl, '990') || '%',
|
|
TO_CHAR (100 * cl.uv_cl, '990') || '%',
|
|
TO_CHAR (100 * vt.uv_vt, '990') || '%',
|
|
TO_CHAR (100 * (cx.uvoptijd / cx.totaal), '990') || '%'
|
|
FROM ( SELECT week, melding, SUM (acoptijd) / SUM (totaal) ac_nl, SUM (uvoptijd) / SUM (totaal) uv_nl
|
|
FROM mldklrcx
|
|
GROUP BY week, melding) nl
|
|
LEFT JOIN ( SELECT week, melding, cl, SUM (acoptijd) / SUM (totaal) ac_cl, SUM (uvoptijd) / SUM (totaal) uv_cl
|
|
FROM mldklrcx
|
|
GROUP BY week, melding, cl) cl
|
|
ON nl.week = cl.week AND nl.melding = cl.melding
|
|
LEFT JOIN ( SELECT week, melding, cl, vt, SUM (acoptijd) / SUM (totaal) ac_vt, SUM (uvoptijd) / SUM (totaal) uv_vt
|
|
FROM mldklrcx
|
|
GROUP BY week, melding, cl, vt) vt
|
|
ON cl.week = vt.week AND cl.melding = vt.melding AND cl.cl = vt.cl
|
|
LEFT JOIN (SELECT alg_locatie_key, week, melding, cl, vt, cx, totaal, acoptijd, uvoptijd
|
|
FROM mldklrcx) cx
|
|
ON vt.week = cx.week AND vt.melding = cx.melding AND vt.cl = cx.cl AND vt.vt = cx.vt
|
|
UNION ALL -- ALLE KLR-vakgroepen!
|
|
SELECT cx.alg_locatie_key, nl.week, nl.vakgroep, cl.cl, vt.vt, cx.cx,
|
|
TO_CHAR (cx.totaal), TO_CHAR (cx.acoptijd), TO_CHAR (cx.uvoptijd),
|
|
TO_CHAR (100 * nl.ac_nl, '990') || '%',
|
|
TO_CHAR (100 * cl.ac_cl, '990') || '%',
|
|
TO_CHAR (100 * vt.ac_vt, '990') || '%',
|
|
TO_CHAR (100 * (cx.acoptijd / cx.totaal), '990') || '%',
|
|
TO_CHAR (100 * nl.uv_nl, '990') || '%',
|
|
TO_CHAR (100 * cl.uv_cl, '990') || '%',
|
|
TO_CHAR (100 * vt.uv_vt, '990') || '%',
|
|
TO_CHAR (100 * (cx.uvoptijd / cx.totaal), '990') || '%'
|
|
FROM ( SELECT week, 'Totaal' vakgroep, SUM (acoptijd) / SUM (totaal) ac_nl, SUM (uvoptijd) / SUM (totaal) uv_nl
|
|
FROM mldklrcx
|
|
GROUP BY week, 'Totaal') nl
|
|
LEFT JOIN ( SELECT week, 'Totaal' vakgroep, cl, SUM (acoptijd) / SUM (totaal) ac_cl, SUM (uvoptijd) / SUM (totaal) uv_cl
|
|
FROM mldklrcx
|
|
GROUP BY week, 'Totaal', cl) cl
|
|
ON nl.week = cl.week AND nl.vakgroep = cl.vakgroep
|
|
LEFT JOIN ( SELECT week, 'Totaal' vakgroep, cl, vt, SUM (acoptijd) / SUM (totaal) ac_vt, SUM (uvoptijd) / SUM (totaal) uv_vt
|
|
FROM mldklrcx
|
|
GROUP BY week, 'Totaal', cl, vt) vt
|
|
ON cl.week = vt.week AND cl.vakgroep = vt.vakgroep AND cl.cl = vt.cl
|
|
LEFT JOIN ( SELECT alg_locatie_key, week, 'Totaal' vakgroep, cl, vt, cx, SUM (totaal) totaal, SUM (acoptijd) acoptijd, SUM (uvoptijd) uvoptijd
|
|
FROM mldklrcx
|
|
GROUP BY alg_locatie_key, week, 'Totaal', cl, vt, cx) cx
|
|
ON vt.week = cx.week AND vt.vakgroep = cx.vakgroep AND vt.cl = cx.cl AND vt.vt = cx.vt;
|
|
|
|
CREATE OR REPLACE VIEW djin_v_export_kpi_klr_pw
|
|
(
|
|
result,
|
|
result_order
|
|
)
|
|
AS
|
|
SELECT '"week"'
|
|
|| ';"melding"'
|
|
|| ';"cluster"'
|
|
|| ';"vestiging"'
|
|
|| ';"complex"'
|
|
|| ';"n_tot_klr_cx"'
|
|
|| ';"n_ac_klr_cx"'
|
|
|| ';"n_uv_klr_cx"'
|
|
|| ';"ac_klr_nl"'
|
|
|| ';"ac_klr_cl"'
|
|
|| ';"ac_klr_vt"'
|
|
|| ';"ac_klr_cx"'
|
|
|| ';"uv_klr_nl"'
|
|
|| ';"uv_klr_cl"'
|
|
|| ';"uv_klr_vt"'
|
|
|| ';"uv_klr_cx"',
|
|
0
|
|
FROM DUAL
|
|
UNION ALL
|
|
SELECT '"'
|
|
|| fclt_f_week
|
|
|| '";"'
|
|
|| fclt_f_melding
|
|
|| '";"'
|
|
|| fclt_f_cluster
|
|
|| '";"'
|
|
|| fclt_f_vestiging
|
|
|| '";"'
|
|
|| fclt_f_complex
|
|
|| '";"'
|
|
|| n_tot_klr_cx
|
|
|| '";"'
|
|
|| n_ac_klr_cx
|
|
|| '";"'
|
|
|| n_uv_klr_cx
|
|
|| '";"'
|
|
|| ac_klr_nl
|
|
|| '";"'
|
|
|| ac_klr_cl
|
|
|| '";"'
|
|
|| ac_klr_vt
|
|
|| '";"'
|
|
|| ac_klr_cx
|
|
|| '";"'
|
|
|| uv_klr_nl
|
|
|| '";"'
|
|
|| uv_klr_cl
|
|
|| '";"'
|
|
|| uv_klr_vt
|
|
|| '";"'
|
|
|| uv_klr_cx
|
|
|| '"',
|
|
1
|
|
FROM djin_v_rap_kpi_klr_pw;
|
|
|
|
/* Formatted on 2-9-2016 10:50:10 (QP5 v5.136.908.31019) */
|
|
CREATE OR REPLACE VIEW djin_v_rap_kpi_res_pw
|
|
(
|
|
fclt_3d_locatie_key,
|
|
fclt_f_week,
|
|
fclt_f_catalogus,
|
|
fclt_f_cluster,
|
|
fclt_f_vestiging,
|
|
fclt_f_complex,
|
|
res_ant_nl,
|
|
res_ant_cl,
|
|
res_ant_vt,
|
|
res_ant_cx,
|
|
res_bzg_nl,
|
|
res_bzg_cl,
|
|
res_bzg_vt,
|
|
res_bzg_cx
|
|
)
|
|
AS
|
|
WITH rescatcx -- Per catalogus/complex de reserveringen van ruimten en voorzieningen op tot-tijd!
|
|
AS ( SELECT l.alg_locatie_key,
|
|
resbes.wk,
|
|
COALESCE (rd.ins_discipline_omschrijving, 'Ruimtes') catalogus,
|
|
COALESCE (ud.fac_usrdata_omschr, 'Onbekend') cl,
|
|
d.alg_district_omschrijving vt,
|
|
l.alg_locatie_omschrijving cx,
|
|
SUM (resbez.aant) aantal_reserveringen,
|
|
SUM (ROUND (resbes.uren, 2)) bes_uren,
|
|
SUM (ROUND (resbez.uren, 2)) bez_uren
|
|
FROM (SELECT DISTINCT TO_CHAR (p.wk, 'iyyy-iw') wk, -- DISTINCT igv. verwijderde res_alg_ruimte!
|
|
-1 res_discipline_key, -- Ruimte-catalogi niet per catalogus onderverdelen!
|
|
rr.res_ruimte_key resource_key,
|
|
rar.alg_ruimte_key,
|
|
fac.count_work_days (p.wk - 1, p.wk + 5)
|
|
* (LEAST (COALESCE (rr.res_ruimte_eindtijd, 17), 17)
|
|
- GREATEST (COALESCE (rr.res_ruimte_begintijd, 8), 8))
|
|
uren
|
|
FROM res_ruimte rr, res_alg_ruimte rar,
|
|
(SELECT TRUNC (SYSDATE, 'iw') - (LEVEL * 7) wk FROM DUAL CONNECT BY LEVEL <= 110) p
|
|
WHERE rr.res_ruimte_key = rar.res_ruimte_key
|
|
AND rar.res_alg_ruimte_aanmaak < p.wk + 7
|
|
AND (rar.res_alg_ruimte_verwijder IS NULL OR rar.res_alg_ruimte_verwijder >= p.wk)
|
|
UNION ALL
|
|
SELECT TO_CHAR (p.wk, 'iyyy-iw') wk, -- DISTINCT per definitie!
|
|
rd.res_discipline_key,
|
|
rd.res_deel_key resource_key,
|
|
COALESCE (d.ins_alg_ruimte_key_org, d.ins_alg_ruimte_key) alg_ruimte_key,
|
|
fac.count_work_days (p.wk - 1, p.wk + 5) * 9 -- = 17-8
|
|
uren
|
|
FROM res_deel rd, ins_deel d,
|
|
(SELECT TRUNC (SYSDATE, 'iw') - (LEVEL * 7) wk FROM DUAL CONNECT BY LEVEL <= 110) p
|
|
WHERE rd.res_ins_deel_key = d.ins_deel_key
|
|
AND COALESCE (d.ins_alg_ruimte_type_org, d.ins_alg_ruimte_type) = 'R' -- Noodzakelijk?
|
|
AND rd.res_deel_aanmaak < p.wk + 7
|
|
AND (rd.res_deel_verwijder IS NULL OR rd.res_deel_verwijder >= p.wk)) resbes,
|
|
( SELECT TO_CHAR (rrr.res_rsv_ruimte_tot, 'iyyy-iw') wk,
|
|
-1 res_discipline_key, -- Ruimte-catalogi niet per catalogus onderverdelen!
|
|
rr.res_ruimte_key resource_key,
|
|
ra.alg_ruimte_key,
|
|
COUNT ( * ) aant,
|
|
SUM (LEAST ((rrr.res_rsv_ruimte_tot - TRUNC (rrr.res_rsv_ruimte_tot)) * 24, 17)
|
|
- GREATEST ((rrr.res_rsv_ruimte_van - TRUNC (rrr.res_rsv_ruimte_van)) * 24, 8))
|
|
uren
|
|
FROM res_rsv_ruimte rrr, res_ruimte_opstelling ro, res_ruimte rr, res_alg_ruimte ra
|
|
WHERE rrr.res_rsv_ruimte_verwijder IS NULL
|
|
AND rrr.res_rsv_ruimte_dirtlevel = 0
|
|
AND rrr.res_status_fo_key IN (1, 2) -- Optie/Definitief
|
|
AND rrr.res_rsv_ruimte_tot BETWEEN TRUNC (SYSDATE, 'iw') - 770 AND TRUNC (SYSDATE, 'iw')
|
|
AND TO_CHAR (rrr.res_rsv_ruimte_tot, 'd') BETWEEN '2' AND '6'
|
|
AND NOT EXISTS (SELECT 1 FROM mld_vrije_dagen WHERE TRUNC (mld_vrije_dagen_datum) = TRUNC (rrr.res_rsv_ruimte_tot))
|
|
--AND TO_CHAR (rrr.res_rsv_ruimte_van, 'hh24') < '17'
|
|
--AND TO_CHAR (rrr.res_rsv_ruimte_tot, 'hh24') > '08'
|
|
AND rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
|
|
AND ro.res_ruimte_key = rr.res_ruimte_key
|
|
AND rr.res_ruimte_key = ra.res_ruimte_key
|
|
GROUP BY TO_CHAR (rrr.res_rsv_ruimte_tot, 'iyyy-iw'),
|
|
-1,
|
|
rr.res_ruimte_key,
|
|
ra.alg_ruimte_key
|
|
UNION ALL -- Eendaagse voorzieningen!
|
|
SELECT TO_CHAR (rrd.res_rsv_deel_tot, 'iyyy-iw') wk,
|
|
rd.res_discipline_key,
|
|
rd.res_deel_key resource_key,
|
|
COALESCE (d.ins_alg_ruimte_key_org, d.ins_alg_ruimte_key) alg_ruimte_key,
|
|
COUNT ( * ) aant,
|
|
SUM (LEAST ((rrd.res_rsv_deel_tot - TRUNC (rrd.res_rsv_deel_tot)) * 24, 17)
|
|
- GREATEST ((rrd.res_rsv_deel_van - TRUNC (rrd.res_rsv_deel_van)) * 24, 8))
|
|
uren
|
|
FROM res_rsv_deel rrd, res_rsv_ruimte rrr, res_deel rd, ins_deel d
|
|
WHERE rrd.res_rsv_deel_verwijder IS NULL
|
|
AND rrd.res_rsv_deel_dirtlevel = 0
|
|
AND TRUNC (rrd.res_rsv_deel_van) = TRUNC (rrd.res_rsv_deel_tot) -- Eendaags!
|
|
AND rrd.res_rsv_deel_tot BETWEEN TRUNC (SYSDATE, 'iw') - 770 AND TRUNC (SYSDATE, 'iw')
|
|
AND TO_CHAR (rrd.res_rsv_deel_tot, 'd') BETWEEN '2' AND '6'
|
|
AND NOT EXISTS (SELECT 1 FROM mld_vrije_dagen WHERE TRUNC (mld_vrije_dagen_datum) = TRUNC (rrd.res_rsv_deel_tot))
|
|
--AND TO_CHAR (rrd.res_rsv_deel_van, 'hh24') < '17'
|
|
--AND TO_CHAR (rrd.res_rsv_deel_tot, 'hh24') > '08'
|
|
--AND rrd.bez_bezoekers_key IS NULL -- Geen parkeerplaatsen!
|
|
AND rrd.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key(+)
|
|
AND rrr.res_status_fo_key(+) IN (1, 2) -- Optie/Definitief
|
|
AND rrd.res_deel_key = rd.res_deel_key
|
|
AND rd.res_ins_deel_key = d.ins_deel_key
|
|
AND COALESCE (d.ins_alg_ruimte_type_org, d.ins_alg_ruimte_type) = 'R' -- Noodzakelijk?
|
|
GROUP BY TO_CHAR (rrd.res_rsv_deel_tot, 'iyyy-iw'),
|
|
rd.res_discipline_key,
|
|
rd.res_deel_key,
|
|
COALESCE (d.ins_alg_ruimte_key_org, d.ins_alg_ruimte_key)
|
|
UNION ALL -- Meerdaagse voorzieningen!
|
|
SELECT TO_CHAR (p.dag, 'iyyy-iw') wk,
|
|
rd.res_discipline_key,
|
|
rd.res_deel_key resource_key,
|
|
COALESCE (d.ins_alg_ruimte_key_org, d.ins_alg_ruimte_key) alg_ruimte_key,
|
|
COUNT ( * ) aant,
|
|
SUM (DECODE (p.dag,
|
|
TRUNC (rrd.res_rsv_deel_van), 17 - GREATEST ((rrd.res_rsv_deel_van - TRUNC (rrd.res_rsv_deel_van)) * 24, 8),
|
|
TRUNC (rrd.res_rsv_deel_tot), LEAST ((rrd.res_rsv_deel_tot - TRUNC (rrd.res_rsv_deel_tot)) * 24, 17) - 8,
|
|
9)) -- = 17-8
|
|
uren
|
|
FROM res_rsv_deel rrd, res_rsv_ruimte rrr, res_deel rd, ins_deel d,
|
|
(SELECT TRUNC (SYSDATE, 'iw') - LEVEL dag FROM DUAL CONNECT BY LEVEL <= 770) p
|
|
WHERE rrd.res_rsv_deel_verwijder IS NULL
|
|
AND rrd.res_rsv_deel_dirtlevel = 0
|
|
AND TRUNC (rrd.res_rsv_deel_van) != TRUNC (rrd.res_rsv_deel_tot) -- Meerdaags!
|
|
AND rrd.res_rsv_deel_tot BETWEEN TRUNC (SYSDATE, 'iw') - 770 AND TRUNC (SYSDATE, 'iw')
|
|
--AND TO_CHAR (rrd.res_rsv_deel_van, 'hh24') < '17'
|
|
--AND TO_CHAR (rrd.res_rsv_deel_tot, 'hh24') > '08'
|
|
--AND rrd.bez_bezoekers_key IS NULL -- Geen parkeerplaatsen!
|
|
AND rrd.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key(+)
|
|
AND rrr.res_status_fo_key(+) IN (1, 2) -- Optie/Definitief
|
|
AND rrd.res_deel_key = rd.res_deel_key
|
|
AND rd.res_ins_deel_key = d.ins_deel_key
|
|
AND COALESCE (d.ins_alg_ruimte_type_org, d.ins_alg_ruimte_type) = 'R' -- Noodzakelijk?
|
|
AND p.dag BETWEEN TRUNC (rrd.res_rsv_deel_van) AND TRUNC (rrd.res_rsv_deel_tot)
|
|
AND TO_CHAR (p.dag, 'd') BETWEEN '2' AND '6'
|
|
AND NOT EXISTS (SELECT 1 FROM mld_vrije_dagen WHERE TRUNC (mld_vrije_dagen_datum) = TRUNC (p.dag))
|
|
GROUP BY TO_CHAR (p.dag, 'iyyy-iw'),
|
|
rd.res_discipline_key,
|
|
rd.res_deel_key,
|
|
COALESCE (d.ins_alg_ruimte_key_org, d.ins_alg_ruimte_key)) resbez,
|
|
res_discipline rd, -- Ook verwijderde catalogi!
|
|
alg_v_onrgoed_boom aob, -- Ook verwijderde ruimten!
|
|
alg_locatie l, -- Ook verwijderde locaties!
|
|
alg_district d, -- Ook verwijderde districten!
|
|
alg_v_aanwezigonrgoedkenmerk ok,
|
|
fac_usrdata ud
|
|
WHERE resbes.wk = resbez.wk(+)
|
|
AND resbes.res_discipline_key = resbez.res_discipline_key(+)
|
|
AND resbes.resource_key = resbez.resource_key(+)
|
|
AND resbes.alg_ruimte_key = resbez.alg_ruimte_key(+)
|
|
AND resbes.res_discipline_key = rd.ins_discipline_key(+)
|
|
AND resbes.alg_ruimte_key = aob.alg_ruimte_key
|
|
AND aob.alg_locatie_key = l.alg_locatie_key
|
|
AND l.alg_district_key = d.alg_district_key
|
|
AND l.alg_locatie_key = ok.alg_onrgoed_key(+)
|
|
AND ok.alg_onrgoed_niveau(+) = 'L'
|
|
AND ok.alg_kenmerk_key(+) = 1000 -- Cluster
|
|
AND ok.alg_onrgoedkenmerk_waarde = TO_CHAR (ud.fac_usrdata_key(+))
|
|
AND resbes.uren > 0 -- Soms 0 of zelfs negatief bij vreemde/gelijke begin- en eindtijden (van reserveerbare ruimte = res_ruimte)!
|
|
AND COALESCE (resbez.uren, 1) > 0 -- Soms 0 of zelfs negatief bij vreemde/gelijke begin- en eindtijden (van res_rsv_ruimte/deel)!
|
|
GROUP BY l.alg_locatie_key,
|
|
resbes.wk,
|
|
COALESCE (rd.ins_discipline_omschrijving, 'Ruimtes'),
|
|
COALESCE (ud.fac_usrdata_omschr, 'Onbekend'),
|
|
d.alg_district_omschrijving,
|
|
l.alg_locatie_omschrijving)
|
|
SELECT cx.alg_locatie_key, nl.wk, nl.catalogus, cl.cl, vt.vt, cx.cx,
|
|
TO_CHAR (nl.ant_nl, '999990'),
|
|
TO_CHAR (cl.ant_cl, '999990'),
|
|
TO_CHAR (vt.ant_vt, '999990'),
|
|
TO_CHAR (cx.ant_cx, '999990'),
|
|
TO_CHAR (100 * nl.bzg_nl, '990') || '%',
|
|
TO_CHAR (100 * cl.bzg_cl, '990') || '%',
|
|
TO_CHAR (100 * vt.bzg_vt, '990') || '%',
|
|
TO_CHAR (100 * cx.bzg_cx, '990') || '%'
|
|
FROM ( SELECT wk, catalogus, SUM (aantal_reserveringen) ant_nl, SUM (COALESCE (bez_uren, 0)) / SUM (bes_uren) bzg_nl
|
|
FROM rescatcx
|
|
GROUP BY wk, catalogus) nl
|
|
LEFT JOIN ( SELECT wk, catalogus, cl, SUM (aantal_reserveringen) ant_cl, SUM (COALESCE (bez_uren, 0)) / SUM (bes_uren) bzg_cl
|
|
FROM rescatcx
|
|
GROUP BY wk, catalogus, cl) cl
|
|
ON nl.wk = cl.wk AND nl.catalogus = cl.catalogus
|
|
LEFT JOIN ( SELECT wk, catalogus, cl, vt, SUM (aantal_reserveringen) ant_vt, SUM (COALESCE (bez_uren, 0)) / SUM (bes_uren) bzg_vt
|
|
FROM rescatcx
|
|
GROUP BY wk, catalogus, cl, vt) vt
|
|
ON cl.wk = vt.wk AND cl.catalogus = vt.catalogus AND cl.cl = vt.cl
|
|
LEFT JOIN (SELECT alg_locatie_key, wk, catalogus, cl, vt, cx, aantal_reserveringen ant_cx, COALESCE (bez_uren, 0) / bes_uren bzg_cx
|
|
FROM rescatcx) cx
|
|
ON vt.wk = cx.wk AND vt.catalogus = cx.catalogus AND vt.cl = cx.cl AND vt.vt = cx.vt;
|
|
|
|
/* Formatted on 5-9-2016 16:32:28 (QP5 v5.136.908.31019) */
|
|
CREATE OR REPLACE VIEW djin_v_export_kpi_res_pw
|
|
(
|
|
result,
|
|
result_order
|
|
)
|
|
AS
|
|
SELECT '"week"'
|
|
|| ';"catalogus"'
|
|
|| ';"cluster"'
|
|
|| ';"vestiging"'
|
|
|| ';"complex"'
|
|
|| ';"res_ant_nl"'
|
|
|| ';"res_ant_cl"'
|
|
|| ';"res_ant_vt"'
|
|
|| ';"res_ant_cx"'
|
|
|| ';"res_bzg_nl"'
|
|
|| ';"res_bzg_cl"'
|
|
|| ';"res_bzg_vt"'
|
|
|| ';"res_bzg_cx"',
|
|
0
|
|
FROM DUAL
|
|
UNION ALL
|
|
SELECT '"'
|
|
|| fclt_f_week
|
|
|| '";"'
|
|
|| fclt_f_catalogus
|
|
|| '";"'
|
|
|| fclt_f_cluster
|
|
|| '";"'
|
|
|| fclt_f_vestiging
|
|
|| '";"'
|
|
|| fclt_f_complex
|
|
|| '";"'
|
|
|| res_ant_nl
|
|
|| '";"'
|
|
|| res_ant_cl
|
|
|| '";"'
|
|
|| res_ant_vt
|
|
|| '";"'
|
|
|| res_ant_cx
|
|
|| '";"'
|
|
|| res_bzg_nl
|
|
|| '";"'
|
|
|| res_bzg_cl
|
|
|| '";"'
|
|
|| res_bzg_vt
|
|
|| '";"'
|
|
|| res_bzg_cx
|
|
|| '"',
|
|
1
|
|
FROM djin_v_rap_kpi_res_pw;
|
|
|
|
CREATE OR REPLACE VIEW djin_v_rap_kpi_tot_pw
|
|
(
|
|
fclt_3d_locatie_key,
|
|
fclt_f_week,
|
|
fclt_f_type,
|
|
fclt_f_vakgroep,
|
|
fclt_f_cluster,
|
|
fclt_f_vestiging,
|
|
fclt_f_complex,
|
|
tot_mld,
|
|
ac_mld,
|
|
uv_mld,
|
|
tot_ord
|
|
)
|
|
AS
|
|
WITH mldtot -- Per vakgroep/complex alle meldingen (incl. onderliggende opdrachten) op MLDAFM-tijd!
|
|
AS ( SELECT l.alg_locatie_key,
|
|
TO_CHAR (t.fac_tracking_datum, 'iyyy-iw') week,
|
|
sd.ins_srtdiscipline_prefix type,
|
|
md.ins_discipline_omschrijving vakgroep,
|
|
COALESCE (ud.fac_usrdata_omschr, 'Onbekend') cl,
|
|
d.alg_district_omschrijving vt,
|
|
l.alg_locatie_omschrijving cx,
|
|
COUNT ( * ) tot_mld,
|
|
SUM (DECODE (
|
|
SIGN(m.mld_melding_acceptdatum_std - fac.gettrackingdate ('MLDACP', m.mld_melding_key)),
|
|
-1, 0,
|
|
1))
|
|
acoptijd,
|
|
SUM (DECODE (
|
|
SIGN(m.mld_melding_einddatum_std - TRUNC (t.fac_tracking_datum, 'mi')),
|
|
-1, 0,
|
|
1))
|
|
uvoptijd,
|
|
COUNT (o.mld_opdr_key) tot_ord
|
|
FROM fac_tracking t,
|
|
mld_melding m,
|
|
mld_opdr o,
|
|
mld_stdmelding sm, -- Ook verwijderde meldingen,
|
|
mld_discipline md, -- en verwijderde vakgroepen,
|
|
ins_srtdiscipline sd, -- en verwijderde vakgroeptypen,
|
|
alg_locatie l, -- en verwijderde locaties,
|
|
alg_district d, -- en verwijderde districten!
|
|
alg_v_aanwezigonrgoedkenmerk ok,
|
|
fac_usrdata ud
|
|
WHERE t.fac_srtnotificatie_key = 38 -- MLDAFM
|
|
AND t.fac_tracking_datum > TRUNC (SYSDATE, 'iw') - 770 -- Afgelopen 110 weken
|
|
AND t.fac_tracking_refkey = m.mld_melding_key
|
|
AND m.mld_melding_key = o.mld_melding_key
|
|
--AND m.mld_melding_status IN (5, 6) -- Afgemeld/Verwerkt
|
|
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
|
AND sm.mld_ins_discipline_key = md.ins_discipline_key
|
|
AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
|
AND m.mld_alg_locatie_key = l.alg_locatie_key
|
|
AND l.alg_district_key = d.alg_district_key
|
|
AND l.alg_locatie_key = ok.alg_onrgoed_key(+)
|
|
AND ok.alg_onrgoed_niveau(+) = 'L'
|
|
AND ok.alg_kenmerk_key(+) = 1000 -- Cluster
|
|
AND ok.alg_onrgoedkenmerk_waarde = TO_CHAR (ud.fac_usrdata_key(+))
|
|
GROUP BY l.alg_locatie_key,
|
|
TO_CHAR (t.fac_tracking_datum, 'iyyy-iw'),
|
|
sd.ins_srtdiscipline_prefix,
|
|
md.ins_discipline_omschrijving,
|
|
COALESCE (ud.fac_usrdata_omschr, 'Onbekend'),
|
|
d.alg_district_omschrijving,
|
|
l.alg_locatie_omschrijving)
|
|
SELECT alg_locatie_key, week, type, vakgroep, cl, vt, cx, -- Per vakgroep per vakgroeptype!
|
|
TO_CHAR (tot_mld), TO_CHAR (acoptijd), TO_CHAR (uvoptijd), TO_CHAR (tot_ord)
|
|
FROM mldtot
|
|
UNION ALL -- ALLE vakgroepen over ALLE vakgroeptypen!
|
|
SELECT alg_locatie_key, week, 'Alle' type, 'Totaal' vakgroep, cl, vt, cx,
|
|
TO_CHAR (SUM (tot_mld)), TO_CHAR (SUM (acoptijd)), TO_CHAR (SUM (uvoptijd)), TO_CHAR (SUM (tot_ord))
|
|
FROM mldtot
|
|
GROUP BY alg_locatie_key, week, 'Alle', 'Totaal', cl, vt, cx;
|
|
|
|
CREATE OR REPLACE VIEW djin_v_export_kpi_tot_pw
|
|
(
|
|
result,
|
|
result_order
|
|
)
|
|
AS
|
|
SELECT '"week"'
|
|
|| ';"type"'
|
|
|| ';"vakgroep"'
|
|
|| ';"cluster"'
|
|
|| ';"vestiging"'
|
|
|| ';"complex"'
|
|
|| ';"mld"'
|
|
|| ';"ac"'
|
|
|| ';"uv"'
|
|
|| ';"ord"',
|
|
0
|
|
FROM DUAL
|
|
UNION ALL
|
|
SELECT '"'
|
|
|| fclt_f_week
|
|
|| '";"'
|
|
|| fclt_f_type
|
|
|| '";"'
|
|
|| fclt_f_vakgroep
|
|
|| '";"'
|
|
|| fclt_f_cluster
|
|
|| '";"'
|
|
|| fclt_f_vestiging
|
|
|| '";"'
|
|
|| fclt_f_complex
|
|
|| '";"'
|
|
|| tot_mld
|
|
|| '";"'
|
|
|| ac_mld
|
|
|| '";"'
|
|
|| uv_mld
|
|
|| '";"'
|
|
|| tot_ord
|
|
|| '"',
|
|
1
|
|
FROM djin_v_rap_kpi_tot_pw;
|
|
|
|
-- DJIN#38162: RTM-inrichting
|
|
-- SLA van melding bepalend voor oranje-criterium (1 werkdag voor einddatum)!
|
|
/* Formatted on 11-1-2017 16:45:15 (QP5 v5.136.908.31019) */
|
|
CREATE OR REPLACE VIEW DJIN_V_RAP_ORDOPEN_ORANJE
|
|
(
|
|
FCLT_3D_LOCATIE_KEY,
|
|
--FCLT_3D_AFDELING_KEY,
|
|
HIDE_F_SORTERING,
|
|
PRIO,
|
|
PREFIX,
|
|
MLD_MELDING_KEY,
|
|
VOLGNR,
|
|
MLD_OPDR_KEY,
|
|
OPDR_ID,
|
|
OPDRACHTTYPE,
|
|
PLAATS,
|
|
ALG_RUIMTE_OMSCHRIJVING,
|
|
INS_SRTDISCIPLINE_KEY,
|
|
INS_DISCIPLINE_KEY,
|
|
INS_DISCIPLINE_OMS,
|
|
MLD_STDMELDING_KEY,
|
|
MLD_STDMELDING_OMS,
|
|
OMSCHRIJVING,
|
|
BEGINDATUM,
|
|
MELDINGSTATUS,
|
|
OPDRACHTSTATUS,
|
|
EINDDATUM,
|
|
UITVOERENDE_KEY,
|
|
UITVOERENDE_NAAM,
|
|
BEHANDELAAR_NAAM,
|
|
AFHANDELING,
|
|
KOSTEN,
|
|
GEBOUWBEHEER_JN,
|
|
URGENT_JN,
|
|
VERVOLG_JN
|
|
)
|
|
AS
|
|
WITH kantoortijden
|
|
AS (SELECT fac.safe_to_number (fac.getsetting ('fac_t_endofworkday'))
|
|
- fac.safe_to_number (fac.getsetting ('fac_t_startofworkday'))
|
|
uren
|
|
FROM DUAL)
|
|
SELECT l.alg_locatie_key,
|
|
--p.prs_afdeling_key,
|
|
TO_CHAR (o.mld_opdr_einddatum, 'yyyymmddhh24:mi:ss'),
|
|
TO_CHAR (m.mld_melding_spoed),
|
|
sd.ins_srtdiscipline_prefix,
|
|
TO_CHAR (m.mld_melding_key),
|
|
TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr),
|
|
TO_CHAR (o.mld_opdr_key),
|
|
sd.ins_srtdiscipline_prefix || TO_CHAR (m.mld_melding_key) || '/' || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr),
|
|
ot.mld_typeopdr_omschrijving,
|
|
DECODE (
|
|
og.alg_type,
|
|
'R',
|
|
l.alg_locatie_code
|
|
|| '-'
|
|
|| og.alg_gebouw_code
|
|
|| '-'
|
|
|| og.alg_verdieping_code
|
|
|| og.alg_ruimte_nr,
|
|
'V',
|
|
l.alg_locatie_code
|
|
|| '-'
|
|
|| og.alg_gebouw_code
|
|
|| '-'
|
|
|| og.alg_verdieping_code,
|
|
'G',
|
|
l.alg_locatie_code || '-' || og.alg_gebouw_code,
|
|
'T',
|
|
l.alg_locatie_code || '-' || og.alg_terreinsector_code,
|
|
l.alg_locatie_code)
|
|
plaatsaanduiding,
|
|
DECODE (og.alg_type, 'R', og.alg_ruimte_omschrijving, NULL)
|
|
alg_ruimte_omschrijving,
|
|
sd.ins_srtdiscipline_key,
|
|
md.ins_discipline_key,
|
|
md.ins_discipline_omschrijving,
|
|
sm.mld_stdmelding_key,
|
|
sm.mld_stdmelding_omschrijving,
|
|
o.mld_opdr_omschrijving,
|
|
o.mld_opdr_datumbegin datum,
|
|
ms.mld_statuses_omschrijving,
|
|
os.mld_statusopdr_omschrijving,
|
|
o.mld_opdr_einddatum einddatum,
|
|
o.mld_uitvoerende_keys,
|
|
COALESCE (b.prs_bedrijf_naam, puv.prs_perslid_naam_full)
|
|
uitvoerende_naam,
|
|
pb.prs_perslid_naam_full,
|
|
o.mld_opdr_opmerking,
|
|
o.mld_opdr_kosten,
|
|
DECODE (md.ins_discipline_key, 24, 'J', 'N'), -- Gebouwbeheer J/N
|
|
DECODE (m.mld_melding_spoed, 1, 'J', 2, 'J', 'N'), -- Urgent J/N
|
|
DECODE (m.mld_melding_start_key, NULL, 'N', 'J') -- Vervolg J/N
|
|
FROM kantoortijden kt,
|
|
mld_opdr o,
|
|
mld_statusopdr os,
|
|
mld_typeopdr ot,
|
|
prs_bedrijf b, -- Externe leverancier
|
|
prs_v_perslid_fullnames_all puv, -- Interne uitvoerende
|
|
mld_melding m,
|
|
mld_statuses ms,
|
|
mld_stdmelding sm,
|
|
mld_discipline md,
|
|
ins_srtdiscipline sd,
|
|
alg_locatie l,
|
|
alg_v_onroerendgoed_gegevens og,
|
|
--prs_perslid p,
|
|
prs_v_perslid_fullnames_all pb -- Behandelaar (per 2016.3 de gewenste?)
|
|
WHERE o.mld_statusopdr_key IN (3, 4, 5, 8, 10) -- 3-Ter fiattering, 4-Gefiatteerd, 5-Uitgegeven, 8-Geaccepteerd, 10-Ter goedkeuring
|
|
AND o.mld_statusopdr_key = os.mld_statusopdr_key
|
|
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
|
|
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key(+)
|
|
AND o.mld_uitvoerende_keys = puv.prs_perslid_key(+)
|
|
AND o.mld_melding_key = m.mld_melding_key
|
|
AND m.mld_melding_status IN (2, 3, 4, 7, 0) -- 2-Ingevoerd, 3-Ingezien, 4-Geaccepteerd, 7-Uitgegeven, 0-Pending
|
|
AND m.mld_melding_einddatum_std > SYSDATE
|
|
AND m.mld_melding_status = ms.mld_statuses_key
|
|
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
|
AND sm.mld_ins_discipline_key = md.ins_discipline_key
|
|
AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
|
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
|
AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys(+)
|
|
--AND m.prs_perslid_key_voor = p.prs_perslid_key
|
|
AND o.prs_perslid_key = pb.prs_perslid_key(+)
|
|
AND SIGN(mld.geteinddatum (
|
|
m.mld_melding_datum,
|
|
m.mld_stdmelding_key,
|
|
m.mld_melding_spoed,
|
|
NULL, -- Plaats binnen/kleiner locatie!
|
|
NULL, -- Object met laagste uitvoertijd
|
|
MLD_T_UITVOERTIJD (
|
|
DECODE (m.mld_melding_t_uitvoertijd.eenheid,
|
|
'D', GREATEST (0, m.mld_melding_t_uitvoertijd.tijdsduur - 1),
|
|
GREATEST (0, m.mld_melding_t_uitvoertijd.tijdsduur - kt.uren)),
|
|
m.mld_melding_t_uitvoertijd.eenheid))
|
|
- TRUNC (SYSDATE, 'mi')) = -1;
|
|
|
|
-- Lopende opdrachten per vakgroep onder alle vakgroepen behalve Gebouwbeheer (24) tov. SLA van melding.
|
|
-- NB. Alle prio en exclusief vervolgmeldingen.
|
|
CREATE OR REPLACE VIEW DJIN_V_GRAPH_ORDOPEN_STD_NGB
|
|
(
|
|
FCLT_3D_LOCATIE_KEY,
|
|
FCLT_XAS_,
|
|
FCLT_YAS_, -- groen=ruim op tijd (>1 werkdag voor SLA-einddatum)
|
|
FCLT_YAS2_, -- oranje=krap op tijd (<1 werkdag voor SLA-einddatum)
|
|
FCLT_YAS3_, -- rood=echt te laat
|
|
VOLGORDE,
|
|
FCLT_URL
|
|
)
|
|
AS
|
|
WITH kantoortijden
|
|
AS (SELECT fac.safe_to_number (fac.getsetting ('fac_t_endofworkday'))
|
|
- fac.safe_to_number (fac.getsetting ('fac_t_startofworkday'))
|
|
uren
|
|
FROM DUAL)
|
|
SELECT alg_locatie_key,
|
|
alg_locatie_code || '/' || vakgroep_oms,
|
|
ruimoptijd groen,
|
|
totaal - ruimoptijd - echttelaat oranje,
|
|
echttelaat rood,
|
|
TO_CHAR (999999 - totaal) || vakgroep_oms volgorde,
|
|
'appl/fac/fac_report.asp?mode=list'
|
|
|| '&'
|
|
|| 'usrrap_key=31'
|
|
|| '&'
|
|
|| 'ins_discipline_key='
|
|
|| TO_CHAR (ins_discipline_key)
|
|
|| '&'
|
|
|| 'gebouwbeheer_jn=N'
|
|
--|| '&'
|
|
--|| 'urgent_jn=N'
|
|
|| '&'
|
|
|| 'vervolg_jn=N'
|
|
FROM ( SELECT l.alg_locatie_key,
|
|
l.alg_locatie_code,
|
|
md.ins_discipline_key,
|
|
sd.ins_srtdiscipline_prefix
|
|
|| '-'
|
|
|| md.ins_discipline_omschrijving
|
|
vakgroep_oms,
|
|
COUNT ( * ) totaal,
|
|
SUM(DECODE (
|
|
SIGN(mld.geteinddatum (
|
|
m.mld_melding_datum,
|
|
m.mld_stdmelding_key,
|
|
m.mld_melding_spoed,
|
|
NULL, -- Plaats binnen/kleiner locatie!
|
|
NULL, -- Object met laagste uitvoertijd
|
|
MLD_T_UITVOERTIJD (
|
|
DECODE (m.mld_melding_t_uitvoertijd.eenheid,
|
|
'D', GREATEST (0, m.mld_melding_t_uitvoertijd.tijdsduur - 1),
|
|
GREATEST (0, m.mld_melding_t_uitvoertijd.tijdsduur - kt.uren)),
|
|
m.mld_melding_t_uitvoertijd.eenheid))
|
|
- TRUNC (SYSDATE, 'mi')),
|
|
1, 1,
|
|
0))
|
|
ruimoptijd,
|
|
SUM(DECODE (
|
|
SIGN(m.mld_melding_einddatum_std
|
|
- TRUNC (SYSDATE, 'mi')),
|
|
-1, 1,
|
|
0))
|
|
echttelaat
|
|
FROM kantoortijden kt,
|
|
mld_opdr o,
|
|
mld_melding m,
|
|
mld_stdmelding sm,
|
|
mld_discipline md,
|
|
ins_srtdiscipline sd,
|
|
alg_locatie l
|
|
WHERE o.mld_statusopdr_key IN (3, 4, 5, 8, 10) -- 3-Ter fiattering, 4-Gefiatteerd, 5-Uitgegeven, 8-Geaccepteerd, 10-Ter goedkeuring
|
|
AND o.mld_melding_key = m.mld_melding_key
|
|
--AND m.mld_melding_status IN (2, 3, 4, 7, 0) -- 2-Ingevoerd, 3-Ingezien, 4-Geaccepteerd, 7-Uitgegeven, 0-Pending
|
|
AND m.mld_melding_start_key IS NULL -- Muv. vervolgmeldingen
|
|
--AND m.mld_melding_spoed IN (3, 4) -- Normaal/Laag
|
|
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
|
AND sm.mld_ins_discipline_key = md.ins_discipline_key
|
|
AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
|
AND md.ins_discipline_key != 24 -- Gebouwbeheer
|
|
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
|
GROUP BY l.alg_locatie_key,
|
|
l.alg_locatie_code,
|
|
md.ins_discipline_key,
|
|
sd.ins_srtdiscipline_prefix
|
|
|| '-'
|
|
|| md.ins_discipline_omschrijving) x;
|
|
|
|
-- Lopende opdrachten per melding onder alleen vakgroep Gebouwbeheer (24) tov. SLA van melding.
|
|
-- NB. Alle prio en exclusief vervolgmeldingen.
|
|
CREATE OR REPLACE VIEW DJIN_V_GRAPH_ORDOPEN_STD_GEB
|
|
(
|
|
FCLT_3D_LOCATIE_KEY,
|
|
FCLT_XAS_,
|
|
FCLT_YAS_, -- groen=ruim op tijd (>1 werkdag voor SLA-einddatum)
|
|
FCLT_YAS2_, -- oranje=krap op tijd (<1 werkdag voor SLA-einddatum)
|
|
FCLT_YAS3_, -- rood=echt te laat
|
|
VOLGORDE,
|
|
FCLT_URL
|
|
)
|
|
AS
|
|
WITH kantoortijden
|
|
AS (SELECT fac.safe_to_number (fac.getsetting ('fac_t_endofworkday'))
|
|
- fac.safe_to_number (fac.getsetting ('fac_t_startofworkday'))
|
|
uren
|
|
FROM DUAL)
|
|
SELECT alg_locatie_key,
|
|
alg_locatie_code || '/' || mld_stdmelding_omschrijving,
|
|
ruimoptijd groen,
|
|
totaal - ruimoptijd - echttelaat oranje,
|
|
echttelaat rood,
|
|
TO_CHAR (999999 - totaal) || mld_stdmelding_omschrijving volgorde,
|
|
'appl/fac/fac_report.asp?mode=list'
|
|
|| '&'
|
|
|| 'usrrap_key=31'
|
|
|| '&'
|
|
|| 'mld_stdmelding_key='
|
|
|| TO_CHAR (mld_stdmelding_key)
|
|
|| '&'
|
|
|| 'gebouwbeheer_jn=J'
|
|
--|| '&'
|
|
--|| 'urgent_jn=N'
|
|
|| '&'
|
|
|| 'vervolg_jn=N'
|
|
FROM ( SELECT l.alg_locatie_key,
|
|
l.alg_locatie_code,
|
|
sm.mld_stdmelding_key,
|
|
sm.mld_stdmelding_omschrijving,
|
|
COUNT ( * ) totaal,
|
|
SUM(DECODE (
|
|
SIGN(mld.geteinddatum (
|
|
m.mld_melding_datum,
|
|
m.mld_stdmelding_key,
|
|
m.mld_melding_spoed,
|
|
NULL, -- Plaats binnen/kleiner locatie!
|
|
NULL, -- Object met laagste uitvoertijd
|
|
MLD_T_UITVOERTIJD (
|
|
DECODE (m.mld_melding_t_uitvoertijd.eenheid,
|
|
'D', GREATEST (0, m.mld_melding_t_uitvoertijd.tijdsduur - 1),
|
|
GREATEST (0, m.mld_melding_t_uitvoertijd.tijdsduur - kt.uren)),
|
|
m.mld_melding_t_uitvoertijd.eenheid))
|
|
- TRUNC (SYSDATE, 'mi')),
|
|
1, 1,
|
|
0))
|
|
ruimoptijd,
|
|
SUM(DECODE (
|
|
SIGN(m.mld_melding_einddatum_std
|
|
- TRUNC (SYSDATE, 'mi')),
|
|
-1, 1,
|
|
0))
|
|
echttelaat
|
|
FROM kantoortijden kt,
|
|
mld_opdr o,
|
|
mld_melding m,
|
|
mld_stdmelding sm,
|
|
mld_discipline md,
|
|
ins_srtdiscipline sd,
|
|
alg_locatie l
|
|
WHERE o.mld_statusopdr_key IN (3, 4, 5, 8, 10) -- 3-Ter fiattering, 4-Gefiatteerd, 5-Uitgegeven, 8-Geaccepteerd, 10-Ter goedkeuring
|
|
AND o.mld_melding_key = m.mld_melding_key
|
|
--AND m.mld_melding_status IN (2, 3, 4, 7, 0) -- 2-Ingevoerd, 3-Ingezien, 4-Geaccepteerd, 7-Uitgegeven, 0-Pending
|
|
AND m.mld_melding_start_key IS NULL -- Muv. vervolgmeldingen
|
|
--AND m.mld_melding_spoed IN (3, 4) -- Normaal/Laag
|
|
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
|
AND sm.mld_ins_discipline_key = md.ins_discipline_key
|
|
AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
|
AND md.ins_discipline_key = 24 -- Gebouwbeheer
|
|
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
|
GROUP BY l.alg_locatie_key, l.alg_locatie_code, sm.mld_stdmelding_key, sm.mld_stdmelding_omschrijving) x;
|
|
|
|
-- Lopende urgente opdrachten per vakgroep onder alle vakgroepen behalve Gebouwbeheer (24) tov. SLA van melding.
|
|
-- NB. Alleen kritische/hoge prio en exclusief vervolgmeldingen.
|
|
CREATE OR REPLACE VIEW DJIN_V_GRAPH_ORDOPEN_URG_NGB
|
|
(
|
|
FCLT_3D_LOCATIE_KEY,
|
|
FCLT_XAS_,
|
|
FCLT_YAS_, -- groen=ruim op tijd (>1 werkdag voor SLA-einddatum)
|
|
FCLT_YAS2_, -- oranje=krap op tijd (<1 werkdag voor SLA-einddatum)
|
|
FCLT_YAS3_, -- rood=echt te laat
|
|
VOLGORDE,
|
|
FCLT_URL
|
|
)
|
|
AS
|
|
WITH kantoortijden
|
|
AS (SELECT fac.safe_to_number (fac.getsetting ('fac_t_endofworkday'))
|
|
- fac.safe_to_number (fac.getsetting ('fac_t_startofworkday'))
|
|
uren
|
|
FROM DUAL)
|
|
SELECT alg_locatie_key,
|
|
alg_locatie_code || '/' || vakgroep_oms,
|
|
ruimoptijd groen,
|
|
totaal - ruimoptijd - echttelaat oranje,
|
|
echttelaat rood,
|
|
TO_CHAR (999999 - totaal) || vakgroep_oms volgorde,
|
|
'appl/fac/fac_report.asp?mode=list'
|
|
|| '&'
|
|
|| 'usrrap_key=31'
|
|
|| '&'
|
|
|| 'ins_discipline_key='
|
|
|| TO_CHAR (ins_discipline_key)
|
|
|| '&'
|
|
|| 'gebouwbeheer_jn=N'
|
|
|| '&'
|
|
|| 'urgent_jn=J'
|
|
|| '&'
|
|
|| 'vervolg_jn=N'
|
|
FROM ( SELECT l.alg_locatie_key,
|
|
l.alg_locatie_code,
|
|
md.ins_discipline_key,
|
|
sd.ins_srtdiscipline_prefix
|
|
|| '-'
|
|
|| md.ins_discipline_omschrijving
|
|
vakgroep_oms,
|
|
COUNT ( * ) totaal,
|
|
SUM(DECODE (
|
|
SIGN(mld.geteinddatum (
|
|
m.mld_melding_datum,
|
|
m.mld_stdmelding_key,
|
|
m.mld_melding_spoed,
|
|
NULL, -- Plaats binnen/kleiner locatie!
|
|
NULL, -- Object met laagste uitvoertijd
|
|
MLD_T_UITVOERTIJD (
|
|
DECODE (m.mld_melding_t_uitvoertijd.eenheid,
|
|
'D', GREATEST (0, m.mld_melding_t_uitvoertijd.tijdsduur - 1),
|
|
GREATEST (0, m.mld_melding_t_uitvoertijd.tijdsduur - kt.uren)),
|
|
m.mld_melding_t_uitvoertijd.eenheid))
|
|
- TRUNC (SYSDATE, 'mi')),
|
|
1, 1,
|
|
0))
|
|
ruimoptijd,
|
|
SUM(DECODE (
|
|
SIGN(m.mld_melding_einddatum_std
|
|
- TRUNC (SYSDATE, 'mi')),
|
|
-1, 1,
|
|
0))
|
|
echttelaat
|
|
FROM kantoortijden kt,
|
|
mld_opdr o,
|
|
mld_melding m,
|
|
mld_stdmelding sm,
|
|
mld_discipline md,
|
|
ins_srtdiscipline sd,
|
|
alg_locatie l
|
|
WHERE o.mld_statusopdr_key IN (3, 4, 5, 8, 10) -- 3-Ter fiattering, 4-Gefiatteerd, 5-Uitgegeven, 8-Geaccepteerd, 10-Ter goedkeuring
|
|
AND o.mld_melding_key = m.mld_melding_key
|
|
--AND m.mld_melding_status IN (2, 3, 4, 7, 0) -- 2-Ingevoerd, 3-Ingezien, 4-Geaccepteerd, 7-Uitgegeven, 0-Pending
|
|
AND m.mld_melding_start_key IS NULL -- Muv. vervolgmeldingen
|
|
AND m.mld_melding_spoed IN (1, 2) -- Kritisch/Hoog
|
|
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
|
AND sm.mld_ins_discipline_key = md.ins_discipline_key
|
|
AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
|
AND md.ins_discipline_key != 24 -- Gebouwbeheer
|
|
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
|
GROUP BY l.alg_locatie_key,
|
|
l.alg_locatie_code,
|
|
md.ins_discipline_key,
|
|
sd.ins_srtdiscipline_prefix
|
|
|| '-'
|
|
|| md.ins_discipline_omschrijving) x;
|
|
|
|
-- Lopende urgente opdrachten per melding onder alleen Gebouwbeheer (24) tov. SLA van melding.
|
|
-- NB. Alle prio en exclusief vervolgmeldingen.
|
|
CREATE OR REPLACE VIEW DJIN_V_GRAPH_ORDOPEN_URG_GEB
|
|
(
|
|
FCLT_3D_LOCATIE_KEY,
|
|
FCLT_XAS_,
|
|
FCLT_YAS_, -- groen=ruim op tijd (>1 werkdag voor SLA-einddatum)
|
|
FCLT_YAS2_, -- oranje=krap op tijd (<1 werkdag voor SLA-einddatum)
|
|
FCLT_YAS3_, -- rood=echt te laat
|
|
VOLGORDE,
|
|
FCLT_URL
|
|
)
|
|
AS
|
|
WITH kantoortijden
|
|
AS (SELECT fac.safe_to_number (fac.getsetting ('fac_t_endofworkday'))
|
|
- fac.safe_to_number (fac.getsetting ('fac_t_startofworkday'))
|
|
uren
|
|
FROM DUAL)
|
|
SELECT alg_locatie_key,
|
|
alg_locatie_code || '/' || mld_stdmelding_omschrijving,
|
|
ruimoptijd groen,
|
|
totaal - ruimoptijd - echttelaat oranje,
|
|
echttelaat rood,
|
|
TO_CHAR (999999 - totaal) || mld_stdmelding_omschrijving volgorde,
|
|
'appl/fac/fac_report.asp?mode=list'
|
|
|| '&'
|
|
|| 'usrrap_key=31'
|
|
|| '&'
|
|
|| 'mld_stdmelding_key='
|
|
|| TO_CHAR (mld_stdmelding_key)
|
|
|| '&'
|
|
|| 'gebouwbeheer_jn=J'
|
|
|| '&'
|
|
|| 'urgent_jn=J'
|
|
|| '&'
|
|
|| 'vervolg_jn=N'
|
|
FROM ( SELECT l.alg_locatie_key,
|
|
l.alg_locatie_code,
|
|
sm.mld_stdmelding_key,
|
|
sm.mld_stdmelding_omschrijving,
|
|
COUNT ( * ) totaal,
|
|
SUM(DECODE (
|
|
SIGN(mld.geteinddatum (
|
|
m.mld_melding_datum,
|
|
m.mld_stdmelding_key,
|
|
m.mld_melding_spoed,
|
|
NULL, -- Plaats binnen/kleiner locatie!
|
|
NULL, -- Object met laagste uitvoertijd
|
|
MLD_T_UITVOERTIJD (
|
|
DECODE (m.mld_melding_t_uitvoertijd.eenheid,
|
|
'D', GREATEST (0, m.mld_melding_t_uitvoertijd.tijdsduur - 1),
|
|
GREATEST (0, m.mld_melding_t_uitvoertijd.tijdsduur - kt.uren)),
|
|
m.mld_melding_t_uitvoertijd.eenheid))
|
|
- TRUNC (SYSDATE, 'mi')),
|
|
1, 1,
|
|
0))
|
|
ruimoptijd,
|
|
SUM(DECODE (
|
|
SIGN(m.mld_melding_einddatum_std
|
|
- TRUNC (SYSDATE, 'mi')),
|
|
-1, 1,
|
|
0))
|
|
echttelaat
|
|
FROM kantoortijden kt,
|
|
mld_opdr o,
|
|
mld_melding m,
|
|
mld_stdmelding sm,
|
|
mld_discipline md,
|
|
ins_srtdiscipline sd,
|
|
alg_locatie l
|
|
WHERE o.mld_statusopdr_key IN (3, 4, 5, 8, 10) -- 3-Ter fiattering, 4-Gefiatteerd, 5-Uitgegeven, 8-Geaccepteerd, 10-Ter goedkeuring
|
|
AND o.mld_melding_key = m.mld_melding_key
|
|
--AND m.mld_melding_status IN (2, 3, 4, 7, 0) -- 2-Ingevoerd, 3-Ingezien, 4-Geaccepteerd, 7-Uitgegeven, 0-Pending
|
|
AND m.mld_melding_start_key IS NULL -- Muv. vervolgmeldingen
|
|
AND m.mld_melding_spoed IN (1, 2) -- Kritisch/Hoog
|
|
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
|
AND sm.mld_ins_discipline_key = md.ins_discipline_key
|
|
AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
|
AND md.ins_discipline_key = 24 -- Gebouwbeheer
|
|
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
|
GROUP BY l.alg_locatie_key, l.alg_locatie_code, sm.mld_stdmelding_key, sm.mld_stdmelding_omschrijving) x;
|
|
|
|
-- Nog niet geaccepteerde opdrachten per vakgroep onder alle vakgroepen tov. SLA van melding.
|
|
-- NB. Alle prio en inclusief vervolgmeldingen.
|
|
CREATE OR REPLACE VIEW DJIN_V_GRAPH_ORDOPEN_NEW
|
|
(
|
|
FCLT_3D_LOCATIE_KEY,
|
|
FCLT_XAS_,
|
|
FCLT_YAS_, -- groen=ruim op tijd (>1 werkdag voor SLA-einddatum)
|
|
FCLT_YAS2_, -- oranje=krap op tijd (<1 werkdag voor SLA-einddatum)
|
|
FCLT_YAS3_, -- rood=echt te laat
|
|
VOLGORDE,
|
|
FCLT_URL
|
|
)
|
|
AS
|
|
WITH kantoortijden
|
|
AS (SELECT fac.safe_to_number (fac.getsetting ('fac_t_endofworkday'))
|
|
- fac.safe_to_number (fac.getsetting ('fac_t_startofworkday'))
|
|
uren
|
|
FROM DUAL)
|
|
SELECT alg_locatie_key,
|
|
alg_locatie_code || '/' || vakgroep_oms,
|
|
ruimoptijd groen,
|
|
totaal - ruimoptijd - echttelaat oranje,
|
|
echttelaat rood,
|
|
TO_CHAR (999999 - totaal) || vakgroep_oms volgorde,
|
|
'appl/fac/fac_report.asp?mode=list'
|
|
|| '&'
|
|
|| 'usrrap_key=31'
|
|
|| '&'
|
|
|| 'ins_discipline_key='
|
|
|| TO_CHAR (ins_discipline_key)
|
|
--|| '&'
|
|
--|| 'urgent_jn=N'
|
|
FROM ( SELECT l.alg_locatie_key,
|
|
l.alg_locatie_code,
|
|
md.ins_discipline_key,
|
|
sd.ins_srtdiscipline_prefix
|
|
|| '-'
|
|
|| md.ins_discipline_omschrijving
|
|
vakgroep_oms,
|
|
COUNT ( * ) totaal,
|
|
SUM(DECODE (
|
|
SIGN(mld.geteinddatum (
|
|
m.mld_melding_datum,
|
|
m.mld_stdmelding_key,
|
|
m.mld_melding_spoed,
|
|
NULL, -- Plaats binnen/kleiner locatie!
|
|
NULL, -- Object met laagste uitvoertijd
|
|
MLD_T_UITVOERTIJD (
|
|
DECODE (m.mld_melding_t_uitvoertijd.eenheid,
|
|
'D', GREATEST (0, m.mld_melding_t_uitvoertijd.tijdsduur - 1),
|
|
GREATEST (0, m.mld_melding_t_uitvoertijd.tijdsduur - kt.uren)),
|
|
m.mld_melding_t_uitvoertijd.eenheid))
|
|
- TRUNC (SYSDATE, 'mi')),
|
|
1, 1,
|
|
0))
|
|
ruimoptijd,
|
|
SUM(DECODE (
|
|
SIGN(m.mld_melding_einddatum_std
|
|
- TRUNC (SYSDATE, 'mi')),
|
|
-1, 1,
|
|
0))
|
|
echttelaat
|
|
FROM kantoortijden kt,
|
|
mld_opdr o,
|
|
mld_melding m,
|
|
mld_stdmelding sm,
|
|
mld_discipline md,
|
|
ins_srtdiscipline sd,
|
|
alg_locatie l
|
|
WHERE o.mld_statusopdr_key IN (3, 4, 5, 10) -- 3-Ter fiattering, 4-Gefiatteerd, 5-Uitgegeven, 10-Ter goedkeuring
|
|
AND o.mld_melding_key = m.mld_melding_key
|
|
--AND m.mld_melding_status IN (2, 3, 4, 7, 0) -- 2-Ingevoerd, 3-Ingezien, 4-Geaccepteerd, 7-Uitgegeven, 0-Pending
|
|
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
|
AND sm.mld_ins_discipline_key = md.ins_discipline_key
|
|
AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
|
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
|
GROUP BY l.alg_locatie_key,
|
|
l.alg_locatie_code,
|
|
md.ins_discipline_key,
|
|
sd.ins_srtdiscipline_prefix
|
|
|| '-'
|
|
|| md.ins_discipline_omschrijving) x;
|
|
|
|
|
|
-- DJIN#39048: Inzichtelijk maken actuele organisatieboom (niet verwijderd en
|
|
-- evt. ook op - onterecht - lager levels dan niveau 5!
|
|
CREATE OR REPLACE VIEW djin_v_prs_afdelingsboom
|
|
(
|
|
hide_f_regel,
|
|
fclt_f_level,
|
|
bedrijf_naam,
|
|
afdeling,
|
|
bedrijf_key,
|
|
afd_key,
|
|
afd_parkey,
|
|
afd_code,
|
|
afd_oms,
|
|
afd_aanmaak,
|
|
afd_verwijder,
|
|
kpn_key,
|
|
kpn_nr,
|
|
kpn_oms,
|
|
medewerkers,
|
|
fclt_f_vervallen_jn
|
|
)
|
|
AS
|
|
SELECT ROWNUM regel,
|
|
a.niveau || DECODE (a.prs_afdeling_verwijder, NULL, '', ' [VERVALLEN]'),
|
|
b.prs_bedrijf_naam,
|
|
a.afdeling || DECODE (a.prs_afdeling_verwijder, NULL, '', ' [VERVALLEN]'),
|
|
b.prs_bedrijf_key,
|
|
a.prs_afdeling_key,
|
|
a.prs_afdeling_parentkey,
|
|
a.prs_afdeling_upper || DECODE (a.prs_afdeling_verwijder, NULL, '', ' [VERVALLEN]'),
|
|
a.prs_afdeling_omschrijving || DECODE (a.prs_afdeling_verwijder, NULL, '', ' [VERVALLEN]'),
|
|
a.prs_afdeling_aanmaak,
|
|
a.prs_afdeling_verwijder,
|
|
c.prs_kostenplaats_key,
|
|
c.prs_kostenplaats_nr,
|
|
c.prs_kostenplaats_omschrijving,
|
|
d.medewerkers,
|
|
DECODE (a.prs_afdeling_verwijder, NULL, 'nee', 'ja')
|
|
FROM ( SELECT TO_CHAR (LEVEL) niveau,
|
|
prs_bedrijf_key,
|
|
prs_afdeling_key,
|
|
prs_afdeling_parentkey,
|
|
LPAD (' ', 4 * LEVEL, '-') || prs_afdeling_upper || '-' || prs_afdeling_omschrijving
|
|
afdeling,
|
|
prs_afdeling_upper,
|
|
prs_afdeling_omschrijving,
|
|
prs_afdeling_aanmaak,
|
|
prs_afdeling_verwijder
|
|
FROM prs_afdeling
|
|
CONNECT BY PRIOR prs_afdeling_key = prs_afdeling_parentkey
|
|
START WITH prs_afdeling_parentkey IS NULL) a
|
|
LEFT JOIN prs_bedrijf b
|
|
ON a.prs_bedrijf_key = b.prs_bedrijf_key
|
|
LEFT JOIN (SELECT a.prs_afdeling_key, k.prs_kostenplaats_key, k.prs_kostenplaats_nr, k.prs_kostenplaats_omschrijving
|
|
FROM prs_afdeling a, prs_kostenplaats k
|
|
WHERE a.prs_kostenplaats_key = k.prs_kostenplaats_key AND k.prs_kostenplaats_verwijder IS NULL) c
|
|
ON a.prs_afdeling_key = c.prs_afdeling_key
|
|
LEFT JOIN ( SELECT p.prs_afdeling_key, COUNT ( * ) medewerkers
|
|
FROM prs_v_aanwezigperslid p
|
|
GROUP BY p.prs_afdeling_key) d
|
|
ON a.prs_afdeling_key = d.prs_afdeling_key
|
|
ORDER BY ROWNUM;
|
|
|
|
-- DJIN#55340: Dienstverleningsrapportages
|
|
CREATE OR REPLACE VIEW djin_v_rap_dvl_rpdc_cx
|
|
(
|
|
hide_f_sortering,
|
|
jaar,
|
|
vestiging,
|
|
complex,
|
|
kpi,
|
|
jan_apr_aantal,
|
|
jan_apr_optijd,
|
|
mei_aug_aantal,
|
|
mei_aug_optijd,
|
|
sep_dec_aantal,
|
|
sep_dec_optijd
|
|
)
|
|
AS
|
|
WITH mldkpi2 -- Per complex volgens KPI2-tabel de hoge prio meldingen op MLDAFM-tijd muv. vervolgmeldingen!
|
|
AS ( SELECT TO_CHAR (t.fac_tracking_datum, 'yyyy') jaar,
|
|
CEIL (fac.safe_to_number (TO_CHAR (t.fac_tracking_datum, 'mm')) / 4) periode,
|
|
'2. Meldingen urgente storingen' kpi,
|
|
d.alg_district_omschrijving vt, l.alg_locatie_omschrijving cx,
|
|
COUNT ( * ) totaal,
|
|
SUM (DECODE (SIGN (m.mld_melding_einddatum_std - TRUNC (t.fac_tracking_datum, 'mi')), -1, 0, 1))
|
|
uvoptijd
|
|
FROM fac_tracking t,
|
|
mld_melding m,
|
|
(SELECT *
|
|
FROM fac_v_aanwezigusrdata
|
|
WHERE fac_usrtab_key = 201) ud, -- KPI2
|
|
alg_locatie l, -- Ook verwijderde locaties
|
|
alg_district d -- en verwijderde districten!
|
|
WHERE t.fac_srtnotificatie_key = 38 -- MLDAFM
|
|
AND t.fac_tracking_datum > TRUNC (ADD_MONTHS (SYSDATE, -24), 'yyyy')
|
|
AND t.fac_tracking_refkey = m.mld_melding_key
|
|
--AND m.mld_melding_status IN (5, 6) -- Afgemeld/Verwerkt
|
|
AND m.mld_melding_start_key IS NULL -- Muv. vervolgmeldingen
|
|
AND m.mld_melding_spoed IN (1, 2) -- Kritisch/Hoog
|
|
AND TO_CHAR (m.mld_stdmelding_key) = ud.fac_usrdata_code
|
|
AND m.mld_alg_locatie_key = l.alg_locatie_key
|
|
AND l.alg_district_key = d.alg_district_key
|
|
GROUP BY TO_CHAR (t.fac_tracking_datum, 'yyyy'),
|
|
CEIL (fac.safe_to_number (TO_CHAR (t.fac_tracking_datum, 'mm')) / 4),
|
|
'2. Meldingen urgente storingen',
|
|
d.alg_district_omschrijving, l.alg_locatie_omschrijving),
|
|
mldkpi6 -- Per complex volgens KPI6-tabel de meldingen op MLDAFM-tijd muv. vervolgmeldingen!
|
|
AS ( SELECT TO_CHAR (t.fac_tracking_datum, 'yyyy') jaar,
|
|
CEIL (fac.safe_to_number (TO_CHAR (t.fac_tracking_datum, 'mm')) / 4) periode,
|
|
'6. Alle dienstverlening' kpi,
|
|
d.alg_district_omschrijving vt, l.alg_locatie_omschrijving cx,
|
|
COUNT ( * ) totaal,
|
|
SUM (DECODE (SIGN (m.mld_melding_einddatum_std - TRUNC (t.fac_tracking_datum, 'mi')), -1, 0, 1))
|
|
uvoptijd
|
|
FROM fac_tracking t,
|
|
mld_melding m,
|
|
(SELECT *
|
|
FROM fac_v_aanwezigusrdata
|
|
WHERE fac_usrtab_key = 221) ud, -- KPI6
|
|
alg_locatie l, -- Ook verwijderde locaties
|
|
alg_district d -- en verwijderde districten!
|
|
WHERE t.fac_srtnotificatie_key = 38 -- MLDAFM
|
|
AND t.fac_tracking_datum > TRUNC (ADD_MONTHS (SYSDATE, -24), 'yyyy')
|
|
AND t.fac_tracking_refkey = m.mld_melding_key
|
|
--AND m.mld_melding_status IN (5, 6) -- Afgemeld/Verwerkt
|
|
AND m.mld_melding_start_key IS NULL -- Muv. vervolgmeldingen
|
|
AND TO_CHAR (m.mld_stdmelding_key) = ud.fac_usrdata_code
|
|
AND m.mld_alg_locatie_key = l.alg_locatie_key
|
|
AND l.alg_district_key = d.alg_district_key
|
|
GROUP BY TO_CHAR (t.fac_tracking_datum, 'yyyy'),
|
|
CEIL (fac.safe_to_number (TO_CHAR (t.fac_tracking_datum, 'mm')) / 4),
|
|
'6. Alle dienstverlening',
|
|
d.alg_district_omschrijving, l.alg_locatie_omschrijving),
|
|
mldkpi7 -- Per complex onder vakgroep(type)=Klantreacties de Klachten op MLDAFM-tijd muv. vervolgmeldingen!
|
|
AS ( SELECT TO_CHAR (t.fac_tracking_datum, 'yyyy') jaar,
|
|
CEIL (fac.safe_to_number (TO_CHAR (t.fac_tracking_datum, 'mm')) / 4) periode,
|
|
'7. Afhandeling klachten' kpi,
|
|
d.alg_district_omschrijving vt, l.alg_locatie_omschrijving cx,
|
|
COUNT ( * ) totaal,
|
|
SUM (DECODE (SIGN (m.mld_melding_einddatum_std - TRUNC (t.fac_tracking_datum, 'mi')), -1, 0, 1))
|
|
uvoptijd
|
|
FROM fac_tracking t,
|
|
mld_melding m,
|
|
alg_locatie l, -- Ook verwijderde locaties
|
|
alg_district d -- en verwijderde districten!
|
|
WHERE t.fac_srtnotificatie_key = 38 -- MLDAFM
|
|
AND t.fac_tracking_datum > TRUNC (ADD_MONTHS (SYSDATE, -24), 'yyyy')
|
|
AND t.fac_tracking_refkey = m.mld_melding_key
|
|
--AND m.mld_melding_status IN (5, 6) -- Afgemeld/Verwerkt
|
|
AND m.mld_melding_start_key IS NULL -- Muv. vervolgmeldingen
|
|
AND m.mld_stdmelding_key = 23 -- Klacht
|
|
AND m.mld_alg_locatie_key = l.alg_locatie_key
|
|
AND l.alg_district_key = d.alg_district_key
|
|
GROUP BY TO_CHAR (t.fac_tracking_datum, 'yyyy'),
|
|
CEIL (fac.safe_to_number (TO_CHAR (t.fac_tracking_datum, 'mm')) / 4),
|
|
'7. Afhandeling klachten',
|
|
d.alg_district_omschrijving, l.alg_locatie_omschrijving)
|
|
SELECT jaar || vt || cx || '1', jaar, vt, cx, kpi,
|
|
SUM (DECODE (periode, 1, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 1, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 1, uvoptijd, 0)) / SUM (DECODE (periode, 1, totaal, 0)))),
|
|
SUM (DECODE (periode, 2, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 2, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 2, uvoptijd, 0)) / SUM (DECODE (periode, 2, totaal, 0)))),
|
|
SUM (DECODE (periode, 3, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 3, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 3, uvoptijd, 0)) / SUM (DECODE (periode, 3, totaal, 0))))
|
|
FROM mldkpi2
|
|
GROUP BY jaar || vt || cx || '1', jaar, vt, cx, kpi
|
|
UNION ALL -- Nul-regel voor deze kpi per jaar/vt/cx zonder voorkomens!
|
|
SELECT p.jaar || d.alg_district_omschrijving || l.alg_locatie_omschrijving || '1', p.jaar, d.alg_district_omschrijving, l.alg_locatie_omschrijving,
|
|
'2. Meldingen urgente storingen', 0, 0, 0, 0, 0, 0
|
|
FROM (SELECT TO_CHAR (ADD_MONTHS (SYSDATE, (LEVEL - 1) * -12), 'yyyy') jaar FROM DUAL CONNECT BY LEVEL <= 3 ORDER BY 1) p,
|
|
alg_locatie l, alg_district d
|
|
WHERE p.jaar BETWEEN TO_CHAR (l.alg_locatie_aanmaak, 'yyyy') AND TO_CHAR (COALESCE (l.alg_locatie_verwijder, SYSDATE), 'yyyy')
|
|
AND l.alg_district_key = d.alg_district_key
|
|
AND NOT EXISTS (SELECT 1 FROM mldkpi2 WHERE jaar = p.jaar AND cx = l.alg_locatie_omschrijving)
|
|
UNION ALL
|
|
SELECT jaar || vt || cx || '2', jaar, vt, cx, kpi,
|
|
SUM (DECODE (periode, 1, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 1, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 1, uvoptijd, 0)) / SUM (DECODE (periode, 1, totaal, 0)))),
|
|
SUM (DECODE (periode, 2, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 2, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 2, uvoptijd, 0)) / SUM (DECODE (periode, 2, totaal, 0)))),
|
|
SUM (DECODE (periode, 3, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 3, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 3, uvoptijd, 0)) / SUM (DECODE (periode, 3, totaal, 0))))
|
|
FROM mldkpi6
|
|
GROUP BY jaar || vt || cx || '2', jaar, vt, cx, kpi
|
|
UNION ALL -- Nul-regel voor deze kpi per jaar/vt/cx zonder voorkomens!
|
|
SELECT p.jaar || d.alg_district_omschrijving || l.alg_locatie_omschrijving || '2', p.jaar, d.alg_district_omschrijving, l.alg_locatie_omschrijving,
|
|
'6. Alle dienstverlening', 0, 0, 0, 0, 0, 0
|
|
FROM (SELECT TO_CHAR (ADD_MONTHS (SYSDATE, (LEVEL - 1) * -12), 'yyyy') jaar FROM DUAL CONNECT BY LEVEL <= 3 ORDER BY 1) p,
|
|
alg_locatie l, alg_district d
|
|
WHERE p.jaar BETWEEN TO_CHAR (l.alg_locatie_aanmaak, 'yyyy') AND TO_CHAR (COALESCE (l.alg_locatie_verwijder, SYSDATE), 'yyyy')
|
|
AND l.alg_district_key = d.alg_district_key
|
|
AND NOT EXISTS (SELECT 1 FROM mldkpi6 WHERE jaar = p.jaar AND cx = l.alg_locatie_omschrijving)
|
|
UNION ALL
|
|
SELECT jaar || vt || cx || '3', jaar, vt, cx, kpi,
|
|
SUM (DECODE (periode, 1, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 1, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 1, uvoptijd, 0)) / SUM (DECODE (periode, 1, totaal, 0)))),
|
|
SUM (DECODE (periode, 2, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 2, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 2, uvoptijd, 0)) / SUM (DECODE (periode, 2, totaal, 0)))),
|
|
SUM (DECODE (periode, 3, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 3, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 3, uvoptijd, 0)) / SUM (DECODE (periode, 3, totaal, 0))))
|
|
FROM mldkpi7
|
|
GROUP BY jaar || vt || cx || '3', jaar, vt, cx, kpi
|
|
UNION ALL -- Nul-regel voor deze kpi per jaar/vt/cx zonder voorkomens!
|
|
SELECT p.jaar || d.alg_district_omschrijving || l.alg_locatie_omschrijving || '3', p.jaar, d.alg_district_omschrijving, l.alg_locatie_omschrijving,
|
|
'7. Afhandeling klachten', 0, 0, 0, 0, 0, 0
|
|
FROM (SELECT TO_CHAR (ADD_MONTHS (SYSDATE, (LEVEL - 1) * -12), 'yyyy') jaar FROM DUAL CONNECT BY LEVEL <= 3 ORDER BY 1) p,
|
|
alg_locatie l, alg_district d
|
|
WHERE p.jaar BETWEEN TO_CHAR (l.alg_locatie_aanmaak, 'yyyy') AND TO_CHAR (COALESCE (l.alg_locatie_verwijder, SYSDATE), 'yyyy')
|
|
AND l.alg_district_key = d.alg_district_key
|
|
AND NOT EXISTS (SELECT 1 FROM mldkpi7 WHERE jaar = p.jaar AND cx = l.alg_locatie_omschrijving);
|
|
|
|
CREATE OR REPLACE VIEW djin_v_rap_dvl_rpdc_org
|
|
(
|
|
hide_f_sortering,
|
|
jaar,
|
|
vestiging,
|
|
complex,
|
|
organisatie,
|
|
kpi,
|
|
jan_apr_aantal,
|
|
jan_apr_optijd,
|
|
mei_aug_aantal,
|
|
mei_aug_optijd,
|
|
sep_dec_aantal,
|
|
sep_dec_optijd
|
|
)
|
|
AS
|
|
WITH mldkpi2 -- Per complex volgens KPI2-tabel de hoge prio meldingen op MLDAFM-tijd muv. vervolgmeldingen!
|
|
AS ( SELECT TO_CHAR (t.fac_tracking_datum, 'yyyy') jaar,
|
|
CEIL (fac.safe_to_number (TO_CHAR (t.fac_tracking_datum, 'mm')) / 4) periode,
|
|
'2. Meldingen urgente storingen' kpi,
|
|
d.alg_district_omschrijving vt, l.alg_locatie_omschrijving cx,
|
|
a.prs_afdeling_key, a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving org,
|
|
COUNT ( * ) totaal,
|
|
SUM (DECODE (SIGN (m.mld_melding_einddatum_std - TRUNC (t.fac_tracking_datum, 'mi')), -1, 0, 1))
|
|
uvoptijd
|
|
FROM fac_tracking t,
|
|
mld_melding m,
|
|
(SELECT *
|
|
FROM fac_v_aanwezigusrdata
|
|
WHERE fac_usrtab_key = 201) ud, -- KPI2
|
|
alg_locatie l, -- Ook verwijderde locaties
|
|
alg_district d, -- en verwijderde districten!
|
|
prs_perslid p,
|
|
prs_afdeling a
|
|
WHERE t.fac_srtnotificatie_key = 38 -- MLDAFM
|
|
AND t.fac_tracking_datum > TRUNC (ADD_MONTHS (SYSDATE, -24), 'yyyy')
|
|
AND t.fac_tracking_refkey = m.mld_melding_key
|
|
--AND m.mld_melding_status IN (5, 6) -- Afgemeld/Verwerkt
|
|
AND m.mld_melding_start_key IS NULL -- Muv. vervolgmeldingen
|
|
AND m.mld_melding_spoed IN (1, 2) -- Kritisch/Hoog
|
|
AND TO_CHAR (m.mld_stdmelding_key) = ud.fac_usrdata_code
|
|
AND m.mld_alg_locatie_key = l.alg_locatie_key
|
|
AND l.alg_district_key = d.alg_district_key
|
|
AND m.prs_perslid_key = p.prs_perslid_key
|
|
AND p.prs_afdeling_key = a.prs_afdeling_key
|
|
GROUP BY TO_CHAR (t.fac_tracking_datum, 'yyyy'),
|
|
CEIL (fac.safe_to_number (TO_CHAR (t.fac_tracking_datum, 'mm')) / 4),
|
|
'2. Meldingen urgente storingen',
|
|
d.alg_district_omschrijving, l.alg_locatie_omschrijving,
|
|
a.prs_afdeling_key, a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving),
|
|
mldkpi6 -- Per complex volgens KPI6-tabel de meldingen op MLDAFM-tijd muv. vervolgmeldingen!
|
|
AS ( SELECT TO_CHAR (t.fac_tracking_datum, 'yyyy') jaar,
|
|
CEIL (fac.safe_to_number (TO_CHAR (t.fac_tracking_datum, 'mm')) / 4) periode,
|
|
'6. Alle dienstverlening' kpi,
|
|
d.alg_district_omschrijving vt, l.alg_locatie_omschrijving cx,
|
|
a.prs_afdeling_key, a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving org,
|
|
COUNT ( * ) totaal,
|
|
SUM (DECODE (SIGN (m.mld_melding_einddatum_std - TRUNC (t.fac_tracking_datum, 'mi')), -1, 0, 1))
|
|
uvoptijd
|
|
FROM fac_tracking t,
|
|
mld_melding m,
|
|
(SELECT *
|
|
FROM fac_v_aanwezigusrdata
|
|
WHERE fac_usrtab_key = 221) ud, -- KPI6
|
|
alg_locatie l, -- Ook verwijderde locaties
|
|
alg_district d, -- en verwijderde districten!
|
|
prs_perslid p,
|
|
prs_afdeling a
|
|
WHERE t.fac_srtnotificatie_key = 38 -- MLDAFM
|
|
AND t.fac_tracking_datum > TRUNC (ADD_MONTHS (SYSDATE, -24), 'yyyy')
|
|
AND t.fac_tracking_refkey = m.mld_melding_key
|
|
--AND m.mld_melding_status IN (5, 6) -- Afgemeld/Verwerkt
|
|
AND m.mld_melding_start_key IS NULL -- Muv. vervolgmeldingen
|
|
AND TO_CHAR (m.mld_stdmelding_key) = ud.fac_usrdata_code
|
|
AND m.mld_alg_locatie_key = l.alg_locatie_key
|
|
AND l.alg_district_key = d.alg_district_key
|
|
AND m.prs_perslid_key = p.prs_perslid_key
|
|
AND p.prs_afdeling_key = a.prs_afdeling_key
|
|
GROUP BY TO_CHAR (t.fac_tracking_datum, 'yyyy'),
|
|
CEIL (fac.safe_to_number (TO_CHAR (t.fac_tracking_datum, 'mm')) / 4),
|
|
'6. Alle dienstverlening',
|
|
d.alg_district_omschrijving, l.alg_locatie_omschrijving,
|
|
a.prs_afdeling_key, a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving),
|
|
mldkpi7 -- Per complex onder vakgroep(type)=Klantreacties de Klachten op MLDAFM-tijd muv. vervolgmeldingen!
|
|
AS ( SELECT TO_CHAR (t.fac_tracking_datum, 'yyyy') jaar,
|
|
CEIL (fac.safe_to_number (TO_CHAR (t.fac_tracking_datum, 'mm')) / 4) periode,
|
|
'7. Afhandeling klachten' kpi,
|
|
d.alg_district_omschrijving vt, l.alg_locatie_omschrijving cx,
|
|
a.prs_afdeling_key, a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving org,
|
|
COUNT ( * ) totaal,
|
|
SUM (DECODE (SIGN (m.mld_melding_einddatum_std - TRUNC (t.fac_tracking_datum, 'mi')), -1, 0, 1))
|
|
uvoptijd
|
|
FROM fac_tracking t,
|
|
mld_melding m,
|
|
alg_locatie l, -- Ook verwijderde locaties
|
|
alg_district d, -- en verwijderde districten!
|
|
prs_perslid p,
|
|
prs_afdeling a
|
|
WHERE t.fac_srtnotificatie_key = 38 -- MLDAFM
|
|
AND t.fac_tracking_datum > TRUNC (ADD_MONTHS (SYSDATE, -24), 'yyyy')
|
|
AND t.fac_tracking_refkey = m.mld_melding_key
|
|
--AND m.mld_melding_status IN (5, 6) -- Afgemeld/Verwerkt
|
|
AND m.mld_melding_start_key IS NULL -- Muv. vervolgmeldingen
|
|
AND m.mld_stdmelding_key = 23 -- Klacht
|
|
AND m.mld_alg_locatie_key = l.alg_locatie_key
|
|
AND l.alg_district_key = d.alg_district_key
|
|
AND m.prs_perslid_key = p.prs_perslid_key
|
|
AND p.prs_afdeling_key = a.prs_afdeling_key
|
|
GROUP BY TO_CHAR (t.fac_tracking_datum, 'yyyy'),
|
|
CEIL (fac.safe_to_number (TO_CHAR (t.fac_tracking_datum, 'mm')) / 4),
|
|
'7. Afhandeling klachten',
|
|
d.alg_district_omschrijving, l.alg_locatie_omschrijving,
|
|
a.prs_afdeling_key, a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving)
|
|
SELECT jaar || vt || cx || org || '1', jaar, vt, cx, org, kpi,
|
|
SUM (DECODE (periode, 1, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 1, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 1, uvoptijd, 0)) / SUM (DECODE (periode, 1, totaal, 0)))),
|
|
SUM (DECODE (periode, 2, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 2, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 2, uvoptijd, 0)) / SUM (DECODE (periode, 2, totaal, 0)))),
|
|
SUM (DECODE (periode, 3, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 3, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 3, uvoptijd, 0)) / SUM (DECODE (periode, 3, totaal, 0))))
|
|
FROM mldkpi2
|
|
GROUP BY jaar || vt || cx || org || '1', jaar, vt, cx, org, kpi
|
|
UNION ALL -- Nul-regel voor deze kpi per jaar/vt/cx/org voorkomend in andere kpi's!
|
|
SELECT x.jaar || x.vt || x.cx || x.org || '1', x.jaar, x.vt, x.cx, x.org,
|
|
'2. Meldingen urgente storingen', 0, 0, 0, 0, 0, 0
|
|
FROM (SELECT jaar, vt, cx, prs_afdeling_key, org FROM mldkpi6 UNION SELECT jaar, vt, cx, prs_afdeling_key, org FROM mldkpi7) x
|
|
WHERE NOT EXISTS (SELECT 1 FROM mldkpi2 WHERE jaar = x.jaar AND vt = x.vt AND cx = x.cx AND prs_afdeling_key = x.prs_afdeling_key)
|
|
UNION ALL
|
|
SELECT jaar || vt || cx || org || '2', jaar, vt, cx, org, kpi,
|
|
SUM (DECODE (periode, 1, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 1, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 1, uvoptijd, 0)) / SUM (DECODE (periode, 1, totaal, 0)))),
|
|
SUM (DECODE (periode, 2, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 2, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 2, uvoptijd, 0)) / SUM (DECODE (periode, 2, totaal, 0)))),
|
|
SUM (DECODE (periode, 3, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 3, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 3, uvoptijd, 0)) / SUM (DECODE (periode, 3, totaal, 0))))
|
|
FROM mldkpi6
|
|
GROUP BY jaar || vt || cx || org || '2', jaar, vt, cx, org, kpi
|
|
UNION ALL -- Nul-regel voor deze kpi per jaar/vt/cx/org voorkomend in andere kpi's!
|
|
SELECT x.jaar || x.vt || x.cx || x.org || '1', x.jaar, x.vt, x.cx, x.org,
|
|
'6. Alle dienstverlening', 0, 0, 0, 0, 0, 0
|
|
FROM (SELECT jaar, vt, cx, prs_afdeling_key, org FROM mldkpi2 UNION SELECT jaar, vt, cx, prs_afdeling_key, org FROM mldkpi7) x
|
|
WHERE NOT EXISTS (SELECT 1 FROM mldkpi6 WHERE jaar = x.jaar AND vt = x.vt AND cx = x.cx AND prs_afdeling_key = x.prs_afdeling_key)
|
|
UNION ALL
|
|
SELECT jaar || vt || cx || org || '3', jaar, vt, cx, org, kpi,
|
|
SUM (DECODE (periode, 1, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 1, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 1, uvoptijd, 0)) / SUM (DECODE (periode, 1, totaal, 0)))),
|
|
SUM (DECODE (periode, 2, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 2, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 2, uvoptijd, 0)) / SUM (DECODE (periode, 2, totaal, 0)))),
|
|
SUM (DECODE (periode, 3, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 3, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 3, uvoptijd, 0)) / SUM (DECODE (periode, 3, totaal, 0))))
|
|
FROM mldkpi7
|
|
GROUP BY jaar || vt || cx || org || '3', jaar, vt, cx, org, kpi
|
|
UNION ALL -- Nul-regel voor deze kpi per jaar/vt/cx/org voorkomend in andere kpi's!
|
|
SELECT x.jaar || x.vt || x.cx || x.org || '1', x.jaar, x.vt, x.cx, x.org,
|
|
'7. Afhandeling klachten', 0, 0, 0, 0, 0, 0
|
|
FROM (SELECT jaar, vt, cx, prs_afdeling_key, org FROM mldkpi2 UNION SELECT jaar, vt, cx, prs_afdeling_key, org FROM mldkpi6) x
|
|
WHERE NOT EXISTS (SELECT 1 FROM mldkpi7 WHERE jaar = x.jaar AND vt = x.vt AND cx = x.cx AND prs_afdeling_key = x.prs_afdeling_key);
|
|
|
|
CREATE OR REPLACE VIEW djin_v_rap_dvl_spec_cx
|
|
(
|
|
hide_f_sortering,
|
|
jaar,
|
|
vestiging,
|
|
complex,
|
|
kpi,
|
|
jan_feb_aantal,
|
|
jan_feb_optijd,
|
|
mrt_apr_aantal,
|
|
mrt_apr_optijd,
|
|
mei_jun_aantal,
|
|
mei_jun_optijd,
|
|
jul_aug_aantal,
|
|
jul_aug_optijd,
|
|
sep_okt_aantal,
|
|
sep_okt_optijd,
|
|
nov_dec_aantal,
|
|
nov_dec_optijd
|
|
)
|
|
AS
|
|
WITH mldkpi2 -- Per complex volgens KPI2-tabel de hoge prio meldingen op MLDAFM-tijd muv. vervolgmeldingen!
|
|
AS ( SELECT TO_CHAR (t.fac_tracking_datum, 'yyyy') jaar,
|
|
CEIL (fac.safe_to_number (TO_CHAR (t.fac_tracking_datum, 'mm')) / 2) periode,
|
|
'2. Meldingen urgente storingen' kpi,
|
|
d.alg_district_omschrijving vt, l.alg_locatie_omschrijving cx,
|
|
COUNT ( * ) totaal,
|
|
SUM (DECODE (SIGN (m.mld_melding_einddatum_std - TRUNC (t.fac_tracking_datum, 'mi')), -1, 0, 1))
|
|
uvoptijd
|
|
FROM fac_tracking t,
|
|
mld_melding m,
|
|
(SELECT *
|
|
FROM fac_v_aanwezigusrdata
|
|
WHERE fac_usrtab_key = 201) ud, -- KPI2
|
|
alg_locatie l, -- Ook verwijderde locaties
|
|
alg_district d -- en verwijderde districten!
|
|
WHERE t.fac_srtnotificatie_key = 38 -- MLDAFM
|
|
AND t.fac_tracking_datum > TRUNC (ADD_MONTHS (SYSDATE, -24), 'yyyy')
|
|
AND t.fac_tracking_refkey = m.mld_melding_key
|
|
--AND m.mld_melding_status IN (5, 6) -- Afgemeld/Verwerkt
|
|
AND m.mld_melding_start_key IS NULL -- Muv. vervolgmeldingen
|
|
AND m.mld_melding_spoed IN (1, 2) -- Kritisch/Hoog
|
|
AND TO_CHAR (m.mld_stdmelding_key) = ud.fac_usrdata_code
|
|
AND m.mld_alg_locatie_key = l.alg_locatie_key
|
|
AND l.alg_district_key = d.alg_district_key
|
|
GROUP BY TO_CHAR (t.fac_tracking_datum, 'yyyy'),
|
|
CEIL (fac.safe_to_number (TO_CHAR (t.fac_tracking_datum, 'mm')) / 2),
|
|
'2. Meldingen urgente storingen',
|
|
d.alg_district_omschrijving, l.alg_locatie_omschrijving),
|
|
mldkpi6 -- Per complex volgens KPI6-tabel de meldingen op MLDAFM-tijd muv. vervolgmeldingen!
|
|
AS ( SELECT TO_CHAR (t.fac_tracking_datum, 'yyyy') jaar,
|
|
CEIL (fac.safe_to_number (TO_CHAR (t.fac_tracking_datum, 'mm')) / 2) periode,
|
|
'6. Alle dienstverlening' kpi,
|
|
d.alg_district_omschrijving vt, l.alg_locatie_omschrijving cx,
|
|
COUNT ( * ) totaal,
|
|
SUM (DECODE (SIGN (m.mld_melding_einddatum_std - TRUNC (t.fac_tracking_datum, 'mi')), -1, 0, 1))
|
|
uvoptijd
|
|
FROM fac_tracking t,
|
|
mld_melding m,
|
|
(SELECT *
|
|
FROM fac_v_aanwezigusrdata
|
|
WHERE fac_usrtab_key = 221) ud, -- KPI6
|
|
alg_locatie l, -- Ook verwijderde locaties
|
|
alg_district d -- en verwijderde districten!
|
|
WHERE t.fac_srtnotificatie_key = 38 -- MLDAFM
|
|
AND t.fac_tracking_datum > TRUNC (ADD_MONTHS (SYSDATE, -24), 'yyyy')
|
|
AND t.fac_tracking_refkey = m.mld_melding_key
|
|
--AND m.mld_melding_status IN (5, 6) -- Afgemeld/Verwerkt
|
|
AND m.mld_melding_start_key IS NULL -- Muv. vervolgmeldingen
|
|
AND TO_CHAR (m.mld_stdmelding_key) = ud.fac_usrdata_code
|
|
AND m.mld_alg_locatie_key = l.alg_locatie_key
|
|
AND l.alg_district_key = d.alg_district_key
|
|
GROUP BY TO_CHAR (t.fac_tracking_datum, 'yyyy'),
|
|
CEIL (fac.safe_to_number (TO_CHAR (t.fac_tracking_datum, 'mm')) / 2),
|
|
'6. Alle dienstverlening',
|
|
d.alg_district_omschrijving, l.alg_locatie_omschrijving),
|
|
mldkpi6a -- Per complex volgens KPI6a-tabel de meldingen op MLDAFM-tijd muv. vervolgmeldingen!
|
|
AS ( SELECT TO_CHAR (t.fac_tracking_datum, 'yyyy') jaar,
|
|
CEIL (fac.safe_to_number (TO_CHAR (t.fac_tracking_datum, 'mm')) / 2) periode,
|
|
'6a. Meldingen gebouwbeheer' kpi,
|
|
d.alg_district_omschrijving vt, l.alg_locatie_omschrijving cx,
|
|
COUNT ( * ) totaal,
|
|
SUM (DECODE (SIGN (m.mld_melding_einddatum_std - TRUNC (t.fac_tracking_datum, 'mi')), -1, 0, 1))
|
|
uvoptijd
|
|
FROM fac_tracking t,
|
|
mld_melding m,
|
|
(SELECT *
|
|
FROM fac_v_aanwezigusrdata
|
|
WHERE fac_usrtab_key = 222) ud, -- KPI6ab
|
|
alg_locatie l, -- Ook verwijderde locaties
|
|
alg_district d -- en verwijderde districten!
|
|
WHERE t.fac_srtnotificatie_key = 38 -- MLDAFM
|
|
AND t.fac_tracking_datum > TRUNC (ADD_MONTHS (SYSDATE, -24), 'yyyy')
|
|
AND t.fac_tracking_refkey = m.mld_melding_key
|
|
--AND m.mld_melding_status IN (5, 6) -- Afgemeld/Verwerkt
|
|
AND m.mld_melding_start_key IS NULL -- Muv. vervolgmeldingen
|
|
AND TO_CHAR (m.mld_stdmelding_key) = ud.fac_usrdata_code
|
|
AND m.mld_alg_locatie_key = l.alg_locatie_key
|
|
AND l.alg_district_key = d.alg_district_key
|
|
GROUP BY TO_CHAR (t.fac_tracking_datum, 'yyyy'),
|
|
CEIL (fac.safe_to_number (TO_CHAR (t.fac_tracking_datum, 'mm')) / 2),
|
|
'6a. Meldingen gebouwbeheer',
|
|
d.alg_district_omschrijving, l.alg_locatie_omschrijving),
|
|
mldkpi6b -- Per complex volgens KPI6a-tabel de meldingen op MLDAFM-tijd muv. vervolgmeldingen!
|
|
AS ( SELECT TO_CHAR (t.fac_tracking_datum, 'yyyy') jaar,
|
|
CEIL (fac.safe_to_number (TO_CHAR (t.fac_tracking_datum, 'mm')) / 2) periode,
|
|
'6b. Meldingen gebouwbeheer RVB' kpi,
|
|
d.alg_district_omschrijving vt, l.alg_locatie_omschrijving cx,
|
|
COUNT ( * ) totaal,
|
|
SUM (DECODE (SIGN (m.mld_melding_einddatum_std - TRUNC (t.fac_tracking_datum, 'mi')), -1, 0, 1))
|
|
uvoptijd
|
|
FROM fac_tracking t,
|
|
mld_melding m,
|
|
(SELECT *
|
|
FROM fac_v_aanwezigusrdata
|
|
WHERE fac_usrtab_key = 222) ud, -- KPI6ab
|
|
alg_locatie l, -- Ook verwijderde locaties
|
|
alg_district d, -- en verwijderde districten!
|
|
(SELECT DISTINCT o.mld_melding_key
|
|
FROM mld_v_aanwezigkenmerkopdr ko, mld_opdr o
|
|
WHERE ko.mld_kenmerk_key = 2 -- Serviceaanvraagnummer
|
|
AND ko.mld_opdr_key = o.mld_opdr_key) mko
|
|
WHERE t.fac_srtnotificatie_key = 38 -- MLDAFM
|
|
AND t.fac_tracking_datum > TRUNC (ADD_MONTHS (SYSDATE, -24), 'yyyy')
|
|
AND t.fac_tracking_refkey = m.mld_melding_key
|
|
--AND m.mld_melding_status IN (5, 6) -- Afgemeld/Verwerkt
|
|
AND m.mld_melding_start_key IS NULL -- Muv. vervolgmeldingen
|
|
AND TO_CHAR (m.mld_stdmelding_key) = ud.fac_usrdata_code
|
|
AND m.mld_alg_locatie_key = l.alg_locatie_key
|
|
AND l.alg_district_key = d.alg_district_key
|
|
AND m.mld_melding_key = mko.mld_melding_key
|
|
GROUP BY TO_CHAR (t.fac_tracking_datum, 'yyyy'),
|
|
CEIL (fac.safe_to_number (TO_CHAR (t.fac_tracking_datum, 'mm')) / 2),
|
|
'6b. Meldingen gebouwbeheer RVB',
|
|
d.alg_district_omschrijving, l.alg_locatie_omschrijving),
|
|
mldkpi7 -- Per complex onder vakgroep(type)=Klantreacties de Klachten op MLDAFM-tijd muv. vervolgmeldingen!
|
|
AS ( SELECT TO_CHAR (t.fac_tracking_datum, 'yyyy') jaar,
|
|
CEIL (fac.safe_to_number (TO_CHAR (t.fac_tracking_datum, 'mm')) / 2) periode,
|
|
'7. Afhandeling klachten' kpi,
|
|
d.alg_district_omschrijving vt, l.alg_locatie_omschrijving cx,
|
|
COUNT ( * ) totaal,
|
|
SUM (DECODE (SIGN (m.mld_melding_einddatum_std - TRUNC (t.fac_tracking_datum, 'mi')), -1, 0, 1))
|
|
uvoptijd
|
|
FROM fac_tracking t,
|
|
mld_melding m,
|
|
alg_locatie l, -- Ook verwijderde locaties
|
|
alg_district d -- en verwijderde districten!
|
|
WHERE t.fac_srtnotificatie_key = 38 -- MLDAFM
|
|
AND t.fac_tracking_datum > TRUNC (ADD_MONTHS (SYSDATE, -24), 'yyyy')
|
|
AND t.fac_tracking_refkey = m.mld_melding_key
|
|
--AND m.mld_melding_status IN (5, 6) -- Afgemeld/Verwerkt
|
|
AND m.mld_melding_start_key IS NULL -- Muv. vervolgmeldingen
|
|
AND m.mld_stdmelding_key = 23 -- Klacht
|
|
AND m.mld_alg_locatie_key = l.alg_locatie_key
|
|
AND l.alg_district_key = d.alg_district_key
|
|
GROUP BY TO_CHAR (t.fac_tracking_datum, 'yyyy'),
|
|
CEIL (fac.safe_to_number (TO_CHAR (t.fac_tracking_datum, 'mm')) / 2),
|
|
'7. Afhandeling klachten',
|
|
d.alg_district_omschrijving, l.alg_locatie_omschrijving)
|
|
SELECT jaar || vt || cx || '1', jaar, vt, cx, kpi,
|
|
SUM (DECODE (periode, 1, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 1, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 1, uvoptijd, 0)) / SUM (DECODE (periode, 1, totaal, 0)))),
|
|
SUM (DECODE (periode, 2, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 2, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 2, uvoptijd, 0)) / SUM (DECODE (periode, 2, totaal, 0)))),
|
|
SUM (DECODE (periode, 3, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 3, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 3, uvoptijd, 0)) / SUM (DECODE (periode, 3, totaal, 0)))),
|
|
SUM (DECODE (periode, 4, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 4, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 4, uvoptijd, 0)) / SUM (DECODE (periode, 4, totaal, 0)))),
|
|
SUM (DECODE (periode, 5, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 5, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 5, uvoptijd, 0)) / SUM (DECODE (periode, 5, totaal, 0)))),
|
|
SUM (DECODE (periode, 6, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 6, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 6, uvoptijd, 0)) / SUM (DECODE (periode, 6, totaal, 0))))
|
|
FROM mldkpi2
|
|
GROUP BY jaar || vt || cx || '1', jaar, vt, cx, kpi
|
|
UNION ALL -- Nul-regel voor deze kpi per jaar/vt/cx zonder voorkomens!
|
|
SELECT p.jaar || d.alg_district_omschrijving || l.alg_locatie_omschrijving || '1', p.jaar, d.alg_district_omschrijving, l.alg_locatie_omschrijving,
|
|
'2. Meldingen urgente storingen', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
|
FROM (SELECT TO_CHAR (ADD_MONTHS (SYSDATE, (LEVEL - 1) * -12), 'yyyy') jaar FROM DUAL CONNECT BY LEVEL <= 3 ORDER BY 1) p,
|
|
alg_locatie l, alg_district d
|
|
WHERE p.jaar BETWEEN TO_CHAR (l.alg_locatie_aanmaak, 'yyyy') AND TO_CHAR (COALESCE (l.alg_locatie_verwijder, SYSDATE), 'yyyy')
|
|
AND l.alg_district_key = d.alg_district_key
|
|
AND NOT EXISTS (SELECT 1 FROM mldkpi2 WHERE jaar = p.jaar AND cx = l.alg_locatie_omschrijving)
|
|
UNION ALL
|
|
SELECT jaar || vt || cx || '2', jaar, vt, cx, kpi,
|
|
SUM (DECODE (periode, 1, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 1, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 1, uvoptijd, 0)) / SUM (DECODE (periode, 1, totaal, 0)))),
|
|
SUM (DECODE (periode, 2, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 2, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 2, uvoptijd, 0)) / SUM (DECODE (periode, 2, totaal, 0)))),
|
|
SUM (DECODE (periode, 3, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 3, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 3, uvoptijd, 0)) / SUM (DECODE (periode, 3, totaal, 0)))),
|
|
SUM (DECODE (periode, 4, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 4, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 4, uvoptijd, 0)) / SUM (DECODE (periode, 4, totaal, 0)))),
|
|
SUM (DECODE (periode, 5, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 5, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 5, uvoptijd, 0)) / SUM (DECODE (periode, 5, totaal, 0)))),
|
|
SUM (DECODE (periode, 6, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 6, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 6, uvoptijd, 0)) / SUM (DECODE (periode, 6, totaal, 0))))
|
|
FROM mldkpi6
|
|
GROUP BY jaar || vt || cx || '2', jaar, vt, cx, kpi
|
|
UNION ALL -- Nul-regel voor deze kpi per jaar/vt/cx zonder voorkomens!
|
|
SELECT p.jaar || d.alg_district_omschrijving || l.alg_locatie_omschrijving || '2', p.jaar, d.alg_district_omschrijving, l.alg_locatie_omschrijving,
|
|
'6. Alle dienstverlening', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
|
FROM (SELECT TO_CHAR (ADD_MONTHS (SYSDATE, (LEVEL - 1) * -12), 'yyyy') jaar FROM DUAL CONNECT BY LEVEL <= 3 ORDER BY 1) p,
|
|
alg_locatie l, alg_district d
|
|
WHERE p.jaar BETWEEN TO_CHAR (l.alg_locatie_aanmaak, 'yyyy') AND TO_CHAR (COALESCE (l.alg_locatie_verwijder, SYSDATE), 'yyyy')
|
|
AND l.alg_district_key = d.alg_district_key
|
|
AND NOT EXISTS (SELECT 1 FROM mldkpi6 WHERE jaar = p.jaar AND cx = l.alg_locatie_omschrijving)
|
|
UNION ALL
|
|
SELECT jaar || vt || cx || '3', jaar, vt, cx, kpi,
|
|
SUM (DECODE (periode, 1, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 1, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 1, uvoptijd, 0)) / SUM (DECODE (periode, 1, totaal, 0)))),
|
|
SUM (DECODE (periode, 2, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 2, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 2, uvoptijd, 0)) / SUM (DECODE (periode, 2, totaal, 0)))),
|
|
SUM (DECODE (periode, 3, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 3, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 3, uvoptijd, 0)) / SUM (DECODE (periode, 3, totaal, 0)))),
|
|
SUM (DECODE (periode, 4, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 4, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 4, uvoptijd, 0)) / SUM (DECODE (periode, 4, totaal, 0)))),
|
|
SUM (DECODE (periode, 5, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 5, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 5, uvoptijd, 0)) / SUM (DECODE (periode, 5, totaal, 0)))),
|
|
SUM (DECODE (periode, 6, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 6, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 6, uvoptijd, 0)) / SUM (DECODE (periode, 6, totaal, 0))))
|
|
FROM mldkpi6a
|
|
GROUP BY jaar || vt || cx || '3', jaar, vt, cx, kpi
|
|
UNION ALL -- Nul-regel voor deze kpi per jaar/vt/cx zonder voorkomens!
|
|
SELECT p.jaar || d.alg_district_omschrijving || l.alg_locatie_omschrijving || '3', p.jaar, d.alg_district_omschrijving, l.alg_locatie_omschrijving,
|
|
'6a. Meldingen gebouwbeheer', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
|
FROM (SELECT TO_CHAR (ADD_MONTHS (SYSDATE, (LEVEL - 1) * -12), 'yyyy') jaar FROM DUAL CONNECT BY LEVEL <= 3 ORDER BY 1) p,
|
|
alg_locatie l, alg_district d
|
|
WHERE p.jaar BETWEEN TO_CHAR (l.alg_locatie_aanmaak, 'yyyy') AND TO_CHAR (COALESCE (l.alg_locatie_verwijder, SYSDATE), 'yyyy')
|
|
AND l.alg_district_key = d.alg_district_key
|
|
AND NOT EXISTS (SELECT 1 FROM mldkpi6a WHERE jaar = p.jaar AND cx = l.alg_locatie_omschrijving)
|
|
UNION ALL
|
|
SELECT jaar || vt || cx || '4', jaar, vt, cx, kpi,
|
|
SUM (DECODE (periode, 1, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 1, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 1, uvoptijd, 0)) / SUM (DECODE (periode, 1, totaal, 0)))),
|
|
SUM (DECODE (periode, 2, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 2, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 2, uvoptijd, 0)) / SUM (DECODE (periode, 2, totaal, 0)))),
|
|
SUM (DECODE (periode, 3, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 3, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 3, uvoptijd, 0)) / SUM (DECODE (periode, 3, totaal, 0)))),
|
|
SUM (DECODE (periode, 4, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 4, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 4, uvoptijd, 0)) / SUM (DECODE (periode, 4, totaal, 0)))),
|
|
SUM (DECODE (periode, 5, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 5, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 5, uvoptijd, 0)) / SUM (DECODE (periode, 5, totaal, 0)))),
|
|
SUM (DECODE (periode, 6, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 6, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 6, uvoptijd, 0)) / SUM (DECODE (periode, 6, totaal, 0))))
|
|
FROM mldkpi6b
|
|
GROUP BY jaar || vt || cx || '4', jaar, vt, cx, kpi
|
|
UNION ALL -- Nul-regel voor deze kpi per jaar/vt/cx zonder voorkomens!
|
|
SELECT p.jaar || d.alg_district_omschrijving || l.alg_locatie_omschrijving || '4', p.jaar, d.alg_district_omschrijving, l.alg_locatie_omschrijving,
|
|
'6b. Meldingen gebouwbeheer RVB', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
|
FROM (SELECT TO_CHAR (ADD_MONTHS (SYSDATE, (LEVEL - 1) * -12), 'yyyy') jaar FROM DUAL CONNECT BY LEVEL <= 3 ORDER BY 1) p,
|
|
alg_locatie l, alg_district d
|
|
WHERE p.jaar BETWEEN TO_CHAR (l.alg_locatie_aanmaak, 'yyyy') AND TO_CHAR (COALESCE (l.alg_locatie_verwijder, SYSDATE), 'yyyy')
|
|
AND l.alg_district_key = d.alg_district_key
|
|
AND NOT EXISTS (SELECT 1 FROM mldkpi6b WHERE jaar = p.jaar AND cx = l.alg_locatie_omschrijving)
|
|
UNION ALL
|
|
SELECT jaar || vt || cx || '5', jaar, vt, cx, kpi,
|
|
SUM (DECODE (periode, 1, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 1, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 1, uvoptijd, 0)) / SUM (DECODE (periode, 1, totaal, 0)))),
|
|
SUM (DECODE (periode, 2, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 2, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 2, uvoptijd, 0)) / SUM (DECODE (periode, 2, totaal, 0)))),
|
|
SUM (DECODE (periode, 3, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 3, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 3, uvoptijd, 0)) / SUM (DECODE (periode, 3, totaal, 0)))),
|
|
SUM (DECODE (periode, 4, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 4, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 4, uvoptijd, 0)) / SUM (DECODE (periode, 4, totaal, 0)))),
|
|
SUM (DECODE (periode, 5, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 5, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 5, uvoptijd, 0)) / SUM (DECODE (periode, 5, totaal, 0)))),
|
|
SUM (DECODE (periode, 6, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 6, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 6, uvoptijd, 0)) / SUM (DECODE (periode, 6, totaal, 0))))
|
|
FROM mldkpi7
|
|
GROUP BY jaar || vt || cx || '5', jaar, vt, cx, kpi
|
|
UNION ALL -- Nul-regel voor deze kpi per jaar/vt/cx zonder voorkomens!
|
|
SELECT p.jaar || d.alg_district_omschrijving || l.alg_locatie_omschrijving || '5', p.jaar, d.alg_district_omschrijving, l.alg_locatie_omschrijving,
|
|
'7. Afhandeling klachten', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
|
FROM (SELECT TO_CHAR (ADD_MONTHS (SYSDATE, (LEVEL - 1) * -12), 'yyyy') jaar FROM DUAL CONNECT BY LEVEL <= 3 ORDER BY 1) p,
|
|
alg_locatie l, alg_district d
|
|
WHERE p.jaar BETWEEN TO_CHAR (l.alg_locatie_aanmaak, 'yyyy') AND TO_CHAR (COALESCE (l.alg_locatie_verwijder, SYSDATE), 'yyyy')
|
|
AND l.alg_district_key = d.alg_district_key
|
|
AND NOT EXISTS (SELECT 1 FROM mldkpi7 WHERE jaar = p.jaar AND cx = l.alg_locatie_omschrijving);
|
|
|
|
CREATE OR REPLACE VIEW djin_v_rap_dvl_spec_org
|
|
(
|
|
hide_f_sortering,
|
|
jaar,
|
|
vestiging,
|
|
complex,
|
|
organisatie,
|
|
kpi,
|
|
jan_feb_aantal,
|
|
jan_feb_optijd,
|
|
mrt_apr_aantal,
|
|
mrt_apr_optijd,
|
|
mei_jun_aantal,
|
|
mei_jun_optijd,
|
|
jul_aug_aantal,
|
|
jul_aug_optijd,
|
|
sep_okt_aantal,
|
|
sep_okt_optijd,
|
|
nov_dec_aantal,
|
|
nov_dec_optijd
|
|
)
|
|
AS
|
|
WITH mldkpi2 -- Per complex volgens KPI2-tabel de hoge prio meldingen op MLDAFM-tijd muv. vervolgmeldingen!
|
|
AS ( SELECT TO_CHAR (t.fac_tracking_datum, 'yyyy') jaar,
|
|
CEIL (fac.safe_to_number (TO_CHAR (t.fac_tracking_datum, 'mm')) / 2) periode,
|
|
'2. Meldingen urgente storingen' kpi,
|
|
d.alg_district_omschrijving vt, l.alg_locatie_omschrijving cx,
|
|
a.prs_afdeling_key, a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving org,
|
|
COUNT ( * ) totaal,
|
|
SUM (DECODE (SIGN (m.mld_melding_einddatum_std - TRUNC (t.fac_tracking_datum, 'mi')), -1, 0, 1))
|
|
uvoptijd
|
|
FROM fac_tracking t,
|
|
mld_melding m,
|
|
(SELECT *
|
|
FROM fac_v_aanwezigusrdata
|
|
WHERE fac_usrtab_key = 201) ud, -- KPI2
|
|
alg_locatie l, -- Ook verwijderde locaties
|
|
alg_district d, -- en verwijderde districten!
|
|
prs_perslid p,
|
|
prs_afdeling a
|
|
WHERE t.fac_srtnotificatie_key = 38 -- MLDAFM
|
|
AND t.fac_tracking_datum > TRUNC (ADD_MONTHS (SYSDATE, -24), 'yyyy')
|
|
AND t.fac_tracking_refkey = m.mld_melding_key
|
|
--AND m.mld_melding_status IN (5, 6) -- Afgemeld/Verwerkt
|
|
AND m.mld_melding_start_key IS NULL -- Muv. vervolgmeldingen
|
|
AND m.mld_melding_spoed IN (1, 2) -- Kritisch/Hoog
|
|
AND TO_CHAR (m.mld_stdmelding_key) = ud.fac_usrdata_code
|
|
AND m.mld_alg_locatie_key = l.alg_locatie_key
|
|
AND l.alg_district_key = d.alg_district_key
|
|
AND m.prs_perslid_key = p.prs_perslid_key
|
|
AND p.prs_afdeling_key = a.prs_afdeling_key
|
|
GROUP BY TO_CHAR (t.fac_tracking_datum, 'yyyy'),
|
|
CEIL (fac.safe_to_number (TO_CHAR (t.fac_tracking_datum, 'mm')) / 2),
|
|
'2. Meldingen urgente storingen',
|
|
d.alg_district_omschrijving, l.alg_locatie_omschrijving,
|
|
a.prs_afdeling_key, a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving),
|
|
mldkpi6 -- Per complex volgens KPI6-tabel de meldingen op MLDAFM-tijd muv. vervolgmeldingen!
|
|
AS ( SELECT TO_CHAR (t.fac_tracking_datum, 'yyyy') jaar,
|
|
CEIL (fac.safe_to_number (TO_CHAR (t.fac_tracking_datum, 'mm')) / 2) periode,
|
|
'6. Alle dienstverlening' kpi,
|
|
d.alg_district_omschrijving vt, l.alg_locatie_omschrijving cx,
|
|
a.prs_afdeling_key, a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving org,
|
|
COUNT ( * ) totaal,
|
|
SUM (DECODE (SIGN (m.mld_melding_einddatum_std - TRUNC (t.fac_tracking_datum, 'mi')), -1, 0, 1))
|
|
uvoptijd
|
|
FROM fac_tracking t,
|
|
mld_melding m,
|
|
(SELECT *
|
|
FROM fac_v_aanwezigusrdata
|
|
WHERE fac_usrtab_key = 221) ud, -- KPI6
|
|
alg_locatie l, -- Ook verwijderde locaties
|
|
alg_district d, -- en verwijderde districten!
|
|
prs_perslid p,
|
|
prs_afdeling a
|
|
WHERE t.fac_srtnotificatie_key = 38 -- MLDAFM
|
|
AND t.fac_tracking_datum > TRUNC (ADD_MONTHS (SYSDATE, -24), 'yyyy')
|
|
AND t.fac_tracking_refkey = m.mld_melding_key
|
|
--AND m.mld_melding_status IN (5, 6) -- Afgemeld/Verwerkt
|
|
AND m.mld_melding_start_key IS NULL -- Muv. vervolgmeldingen
|
|
AND TO_CHAR (m.mld_stdmelding_key) = ud.fac_usrdata_code
|
|
AND m.mld_alg_locatie_key = l.alg_locatie_key
|
|
AND l.alg_district_key = d.alg_district_key
|
|
AND m.prs_perslid_key = p.prs_perslid_key
|
|
AND p.prs_afdeling_key = a.prs_afdeling_key
|
|
GROUP BY TO_CHAR (t.fac_tracking_datum, 'yyyy'),
|
|
CEIL (fac.safe_to_number (TO_CHAR (t.fac_tracking_datum, 'mm')) / 2),
|
|
'6. Alle dienstverlening',
|
|
d.alg_district_omschrijving, l.alg_locatie_omschrijving,
|
|
a.prs_afdeling_key, a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving),
|
|
mldkpi6a -- Per complex volgens KPI6a-tabel de meldingen op MLDAFM-tijd muv. vervolgmeldingen!
|
|
AS ( SELECT TO_CHAR (t.fac_tracking_datum, 'yyyy') jaar,
|
|
CEIL (fac.safe_to_number (TO_CHAR (t.fac_tracking_datum, 'mm')) / 2) periode,
|
|
'6a. Meldingen gebouwbeheer' kpi,
|
|
d.alg_district_omschrijving vt, l.alg_locatie_omschrijving cx,
|
|
a.prs_afdeling_key, a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving org,
|
|
COUNT ( * ) totaal,
|
|
SUM (DECODE (SIGN (m.mld_melding_einddatum_std - TRUNC (t.fac_tracking_datum, 'mi')), -1, 0, 1))
|
|
uvoptijd
|
|
FROM fac_tracking t,
|
|
mld_melding m,
|
|
(SELECT *
|
|
FROM fac_v_aanwezigusrdata
|
|
WHERE fac_usrtab_key = 222) ud, -- KPI6ab
|
|
alg_locatie l, -- Ook verwijderde locaties
|
|
alg_district d, -- en verwijderde districten!
|
|
prs_perslid p,
|
|
prs_afdeling a
|
|
WHERE t.fac_srtnotificatie_key = 38 -- MLDAFM
|
|
AND t.fac_tracking_datum > TRUNC (ADD_MONTHS (SYSDATE, -24), 'yyyy')
|
|
AND t.fac_tracking_refkey = m.mld_melding_key
|
|
--AND m.mld_melding_status IN (5, 6) -- Afgemeld/Verwerkt
|
|
AND m.mld_melding_start_key IS NULL -- Muv. vervolgmeldingen
|
|
AND TO_CHAR (m.mld_stdmelding_key) = ud.fac_usrdata_code
|
|
AND m.mld_alg_locatie_key = l.alg_locatie_key
|
|
AND l.alg_district_key = d.alg_district_key
|
|
AND m.prs_perslid_key = p.prs_perslid_key
|
|
AND p.prs_afdeling_key = a.prs_afdeling_key
|
|
GROUP BY TO_CHAR (t.fac_tracking_datum, 'yyyy'),
|
|
CEIL (fac.safe_to_number (TO_CHAR (t.fac_tracking_datum, 'mm')) / 2),
|
|
'6a. Meldingen gebouwbeheer',
|
|
d.alg_district_omschrijving, l.alg_locatie_omschrijving,
|
|
a.prs_afdeling_key, a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving),
|
|
mldkpi6b -- Per complex volgens KPI6b-tabel de meldingen op MLDAFM-tijd muv. vervolgmeldingen!
|
|
AS ( SELECT TO_CHAR (t.fac_tracking_datum, 'yyyy') jaar,
|
|
CEIL (fac.safe_to_number (TO_CHAR (t.fac_tracking_datum, 'mm')) / 2) periode,
|
|
'6b. Meldingen gebouwbeheer RVB' kpi,
|
|
d.alg_district_omschrijving vt, l.alg_locatie_omschrijving cx,
|
|
a.prs_afdeling_key, a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving org,
|
|
COUNT ( * ) totaal,
|
|
SUM (DECODE (SIGN (m.mld_melding_einddatum_std - TRUNC (t.fac_tracking_datum, 'mi')), -1, 0, 1))
|
|
uvoptijd
|
|
FROM fac_tracking t,
|
|
mld_melding m,
|
|
(SELECT *
|
|
FROM fac_v_aanwezigusrdata
|
|
WHERE fac_usrtab_key = 222) ud, -- KPI6ab
|
|
alg_locatie l, -- Ook verwijderde locaties
|
|
alg_district d, -- en verwijderde districten!
|
|
prs_perslid p,
|
|
prs_afdeling a,
|
|
(SELECT DISTINCT o.mld_melding_key
|
|
FROM mld_v_aanwezigkenmerkopdr ko, mld_opdr o
|
|
WHERE ko.mld_kenmerk_key = 2 -- Serviceaanvraagnummer
|
|
AND ko.mld_opdr_key = o.mld_opdr_key) mko
|
|
WHERE t.fac_srtnotificatie_key = 38 -- MLDAFM
|
|
AND t.fac_tracking_datum > TRUNC (ADD_MONTHS (SYSDATE, -24), 'yyyy')
|
|
AND t.fac_tracking_refkey = m.mld_melding_key
|
|
--AND m.mld_melding_status IN (5, 6) -- Afgemeld/Verwerkt
|
|
AND m.mld_melding_start_key IS NULL -- Muv. vervolgmeldingen
|
|
AND TO_CHAR (m.mld_stdmelding_key) = ud.fac_usrdata_code
|
|
AND m.mld_alg_locatie_key = l.alg_locatie_key
|
|
AND l.alg_district_key = d.alg_district_key
|
|
AND m.prs_perslid_key = p.prs_perslid_key
|
|
AND p.prs_afdeling_key = a.prs_afdeling_key
|
|
AND m.mld_melding_key = mko.mld_melding_key
|
|
GROUP BY TO_CHAR (t.fac_tracking_datum, 'yyyy'),
|
|
CEIL (fac.safe_to_number (TO_CHAR (t.fac_tracking_datum, 'mm')) / 2),
|
|
'6b. Meldingen gebouwbeheer RVB',
|
|
d.alg_district_omschrijving, l.alg_locatie_omschrijving,
|
|
a.prs_afdeling_key, a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving),
|
|
mldkpi7 -- Per complex onder vakgroep(type)=Klantreacties de Klachten op MLDAFM-tijd muv. vervolgmeldingen!
|
|
AS ( SELECT TO_CHAR (t.fac_tracking_datum, 'yyyy') jaar,
|
|
CEIL (fac.safe_to_number (TO_CHAR (t.fac_tracking_datum, 'mm')) / 2) periode,
|
|
'7. Afhandeling klachten' kpi,
|
|
d.alg_district_omschrijving vt, l.alg_locatie_omschrijving cx,
|
|
a.prs_afdeling_key, a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving org,
|
|
COUNT ( * ) totaal,
|
|
SUM (DECODE (SIGN (m.mld_melding_einddatum_std - TRUNC (t.fac_tracking_datum, 'mi')), -1, 0, 1))
|
|
uvoptijd
|
|
FROM fac_tracking t,
|
|
mld_melding m,
|
|
alg_locatie l, -- Ook verwijderde locaties
|
|
alg_district d, -- en verwijderde districten!
|
|
prs_perslid p,
|
|
prs_afdeling a
|
|
WHERE t.fac_srtnotificatie_key = 38 -- MLDAFM
|
|
AND t.fac_tracking_datum > TRUNC (ADD_MONTHS (SYSDATE, -24), 'yyyy')
|
|
AND t.fac_tracking_refkey = m.mld_melding_key
|
|
--AND m.mld_melding_status IN (5, 6) -- Afgemeld/Verwerkt
|
|
AND m.mld_melding_start_key IS NULL -- Muv. vervolgmeldingen
|
|
AND m.mld_stdmelding_key = 23 -- Klacht
|
|
AND m.mld_alg_locatie_key = l.alg_locatie_key
|
|
AND l.alg_district_key = d.alg_district_key
|
|
AND m.prs_perslid_key = p.prs_perslid_key
|
|
AND p.prs_afdeling_key = a.prs_afdeling_key
|
|
GROUP BY TO_CHAR (t.fac_tracking_datum, 'yyyy'),
|
|
CEIL (fac.safe_to_number (TO_CHAR (t.fac_tracking_datum, 'mm')) / 2),
|
|
'7. Afhandeling klachten',
|
|
d.alg_district_omschrijving, l.alg_locatie_omschrijving,
|
|
a.prs_afdeling_key, a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving)
|
|
SELECT jaar || vt || cx || org || '1', jaar, vt, cx, org, kpi,
|
|
SUM (DECODE (periode, 1, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 1, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 1, uvoptijd, 0)) / SUM (DECODE (periode, 1, totaal, 0)))),
|
|
SUM (DECODE (periode, 2, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 2, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 2, uvoptijd, 0)) / SUM (DECODE (periode, 2, totaal, 0)))),
|
|
SUM (DECODE (periode, 3, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 3, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 3, uvoptijd, 0)) / SUM (DECODE (periode, 3, totaal, 0)))),
|
|
SUM (DECODE (periode, 4, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 4, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 4, uvoptijd, 0)) / SUM (DECODE (periode, 4, totaal, 0)))),
|
|
SUM (DECODE (periode, 5, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 5, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 5, uvoptijd, 0)) / SUM (DECODE (periode, 5, totaal, 0)))),
|
|
SUM (DECODE (periode, 6, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 6, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 6, uvoptijd, 0)) / SUM (DECODE (periode, 6, totaal, 0))))
|
|
FROM mldkpi2
|
|
GROUP BY jaar || vt || cx || org || '1', jaar, vt, cx, org, kpi
|
|
UNION ALL -- Nul-regel voor deze kpi per jaar/vt/cx/org voorkomend in andere kpi's!
|
|
SELECT x.jaar || x.vt || x.cx || x.org || '1', x.jaar, x.vt, x.cx, x.org,
|
|
'2. Meldingen urgente storingen', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
|
FROM (SELECT jaar, vt, cx, prs_afdeling_key, org FROM mldkpi6
|
|
UNION
|
|
SELECT jaar, vt, cx, prs_afdeling_key, org FROM mldkpi6a
|
|
UNION
|
|
SELECT jaar, vt, cx, prs_afdeling_key, org FROM mldkpi6b
|
|
UNION
|
|
SELECT jaar, vt, cx, prs_afdeling_key, org FROM mldkpi7) x
|
|
WHERE NOT EXISTS (SELECT 1 FROM mldkpi2 WHERE jaar = x.jaar AND vt = x.vt AND cx = x.cx AND prs_afdeling_key = x.prs_afdeling_key)
|
|
UNION ALL
|
|
SELECT jaar || vt || cx || org || '2', jaar, vt, cx, org, kpi,
|
|
SUM (DECODE (periode, 1, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 1, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 1, uvoptijd, 0)) / SUM (DECODE (periode, 1, totaal, 0)))),
|
|
SUM (DECODE (periode, 2, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 2, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 2, uvoptijd, 0)) / SUM (DECODE (periode, 2, totaal, 0)))),
|
|
SUM (DECODE (periode, 3, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 3, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 3, uvoptijd, 0)) / SUM (DECODE (periode, 3, totaal, 0)))),
|
|
SUM (DECODE (periode, 4, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 4, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 4, uvoptijd, 0)) / SUM (DECODE (periode, 4, totaal, 0)))),
|
|
SUM (DECODE (periode, 5, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 5, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 5, uvoptijd, 0)) / SUM (DECODE (periode, 5, totaal, 0)))),
|
|
SUM (DECODE (periode, 6, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 6, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 6, uvoptijd, 0)) / SUM (DECODE (periode, 6, totaal, 0))))
|
|
FROM mldkpi6
|
|
GROUP BY jaar || vt || cx || org || '2', jaar, vt, cx, org, kpi
|
|
UNION ALL -- Nul-regel voor deze kpi per jaar/vt/cx/org voorkomend in andere kpi's!
|
|
SELECT x.jaar || x.vt || x.cx || x.org || '2', x.jaar, x.vt, x.cx, x.org,
|
|
'6. Alle dienstverlening', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
|
FROM (SELECT jaar, vt, cx, prs_afdeling_key, org FROM mldkpi2
|
|
UNION
|
|
SELECT jaar, vt, cx, prs_afdeling_key, org FROM mldkpi6a
|
|
UNION
|
|
SELECT jaar, vt, cx, prs_afdeling_key, org FROM mldkpi6b
|
|
UNION
|
|
SELECT jaar, vt, cx, prs_afdeling_key, org FROM mldkpi7) x
|
|
WHERE NOT EXISTS (SELECT 1 FROM mldkpi6 WHERE jaar = x.jaar AND vt = x.vt AND cx = x.cx AND prs_afdeling_key = x.prs_afdeling_key)
|
|
UNION ALL
|
|
SELECT jaar || vt || cx || org || '3', jaar, vt, cx, org, kpi,
|
|
SUM (DECODE (periode, 1, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 1, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 1, uvoptijd, 0)) / SUM (DECODE (periode, 1, totaal, 0)))),
|
|
SUM (DECODE (periode, 2, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 2, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 2, uvoptijd, 0)) / SUM (DECODE (periode, 2, totaal, 0)))),
|
|
SUM (DECODE (periode, 3, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 3, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 3, uvoptijd, 0)) / SUM (DECODE (periode, 3, totaal, 0)))),
|
|
SUM (DECODE (periode, 4, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 4, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 4, uvoptijd, 0)) / SUM (DECODE (periode, 4, totaal, 0)))),
|
|
SUM (DECODE (periode, 5, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 5, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 5, uvoptijd, 0)) / SUM (DECODE (periode, 5, totaal, 0)))),
|
|
SUM (DECODE (periode, 6, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 6, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 6, uvoptijd, 0)) / SUM (DECODE (periode, 6, totaal, 0))))
|
|
FROM mldkpi6a
|
|
GROUP BY jaar || vt || cx || org || '3', jaar, vt, cx, org, kpi
|
|
UNION ALL -- Nul-regel voor deze kpi per jaar/vt/cx/org voorkomend in andere kpi's!
|
|
SELECT x.jaar || x.vt || x.cx || x.org || '3', x.jaar, x.vt, x.cx, x.org,
|
|
'6a. Meldingen gebouwbeheer', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
|
FROM (SELECT jaar, vt, cx, prs_afdeling_key, org FROM mldkpi2
|
|
UNION
|
|
SELECT jaar, vt, cx, prs_afdeling_key, org FROM mldkpi6
|
|
UNION
|
|
SELECT jaar, vt, cx, prs_afdeling_key, org FROM mldkpi6b
|
|
UNION
|
|
SELECT jaar, vt, cx, prs_afdeling_key, org FROM mldkpi7) x
|
|
WHERE NOT EXISTS (SELECT 1 FROM mldkpi6a WHERE jaar = x.jaar AND vt = x.vt AND cx = x.cx AND prs_afdeling_key = x.prs_afdeling_key)
|
|
UNION ALL
|
|
SELECT jaar || vt || cx || org || '4', jaar, vt, cx, org, kpi,
|
|
SUM (DECODE (periode, 1, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 1, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 1, uvoptijd, 0)) / SUM (DECODE (periode, 1, totaal, 0)))),
|
|
SUM (DECODE (periode, 2, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 2, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 2, uvoptijd, 0)) / SUM (DECODE (periode, 2, totaal, 0)))),
|
|
SUM (DECODE (periode, 3, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 3, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 3, uvoptijd, 0)) / SUM (DECODE (periode, 3, totaal, 0)))),
|
|
SUM (DECODE (periode, 4, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 4, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 4, uvoptijd, 0)) / SUM (DECODE (periode, 4, totaal, 0)))),
|
|
SUM (DECODE (periode, 5, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 5, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 5, uvoptijd, 0)) / SUM (DECODE (periode, 5, totaal, 0)))),
|
|
SUM (DECODE (periode, 6, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 6, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 6, uvoptijd, 0)) / SUM (DECODE (periode, 6, totaal, 0))))
|
|
FROM mldkpi6b
|
|
GROUP BY jaar || vt || cx || org || '4', jaar, vt, cx, org, kpi
|
|
UNION ALL -- Nul-regel voor deze kpi per jaar/vt/cx/org voorkomend in andere kpi's!
|
|
SELECT x.jaar || x.vt || x.cx || x.org || '4', x.jaar, x.vt, x.cx, x.org,
|
|
'6b. Meldingen gebouwbeheer RVB', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
|
FROM (SELECT jaar, vt, cx, prs_afdeling_key, org FROM mldkpi2
|
|
UNION
|
|
SELECT jaar, vt, cx, prs_afdeling_key, org FROM mldkpi6
|
|
UNION
|
|
SELECT jaar, vt, cx, prs_afdeling_key, org FROM mldkpi6a
|
|
UNION
|
|
SELECT jaar, vt, cx, prs_afdeling_key, org FROM mldkpi7) x
|
|
WHERE NOT EXISTS (SELECT 1 FROM mldkpi6b WHERE jaar = x.jaar AND vt = x.vt AND cx = x.cx AND prs_afdeling_key = x.prs_afdeling_key)
|
|
UNION ALL
|
|
SELECT jaar || vt || cx || org || '5', jaar, vt, cx, org, kpi,
|
|
SUM (DECODE (periode, 1, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 1, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 1, uvoptijd, 0)) / SUM (DECODE (periode, 1, totaal, 0)))),
|
|
SUM (DECODE (periode, 2, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 2, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 2, uvoptijd, 0)) / SUM (DECODE (periode, 2, totaal, 0)))),
|
|
SUM (DECODE (periode, 3, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 3, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 3, uvoptijd, 0)) / SUM (DECODE (periode, 3, totaal, 0)))),
|
|
SUM (DECODE (periode, 4, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 4, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 4, uvoptijd, 0)) / SUM (DECODE (periode, 4, totaal, 0)))),
|
|
SUM (DECODE (periode, 5, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 5, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 5, uvoptijd, 0)) / SUM (DECODE (periode, 5, totaal, 0)))),
|
|
SUM (DECODE (periode, 6, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 6, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 6, uvoptijd, 0)) / SUM (DECODE (periode, 6, totaal, 0))))
|
|
FROM mldkpi7
|
|
GROUP BY jaar || vt || cx || org || '5', jaar, vt, cx, org, kpi
|
|
UNION ALL -- Nul-regel voor deze kpi per jaar/vt/cx/org voorkomend in andere kpi's!
|
|
SELECT x.jaar || x.vt || x.cx || x.org || '5', x.jaar, x.vt, x.cx, x.org,
|
|
'7. Afhandeling klachten', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
|
FROM (SELECT jaar, vt, cx, prs_afdeling_key, org FROM mldkpi2
|
|
UNION
|
|
SELECT jaar, vt, cx, prs_afdeling_key, org FROM mldkpi6
|
|
UNION
|
|
SELECT jaar, vt, cx, prs_afdeling_key, org FROM mldkpi6a
|
|
UNION
|
|
SELECT jaar, vt, cx, prs_afdeling_key, org FROM mldkpi6b) x
|
|
WHERE NOT EXISTS (SELECT 1 FROM mldkpi7 WHERE jaar = x.jaar AND vt = x.vt AND cx = x.cx AND prs_afdeling_key = x.prs_afdeling_key);
|
|
|
|
CREATE OR REPLACE VIEW djin_v_rap_dvl_spec_vt
|
|
(
|
|
hide_f_sortering,
|
|
jaar,
|
|
vestiging,
|
|
kpi,
|
|
jan_feb_aantal,
|
|
jan_feb_optijd,
|
|
mrt_apr_aantal,
|
|
mrt_apr_optijd,
|
|
mei_jun_aantal,
|
|
mei_jun_optijd,
|
|
jul_aug_aantal,
|
|
jul_aug_optijd,
|
|
sep_okt_aantal,
|
|
sep_okt_optijd,
|
|
nov_dec_aantal,
|
|
nov_dec_optijd
|
|
)
|
|
AS
|
|
WITH mldkpi2 -- Per complex volgens KPI2-tabel de hoge prio meldingen op MLDAFM-tijd muv. vervolgmeldingen!
|
|
AS ( SELECT TO_CHAR (t.fac_tracking_datum, 'yyyy') jaar,
|
|
CEIL (fac.safe_to_number (TO_CHAR (t.fac_tracking_datum, 'mm')) / 2) periode,
|
|
'2. Meldingen urgente storingen' kpi,
|
|
d.alg_district_omschrijving vt,
|
|
COUNT ( * ) totaal,
|
|
SUM (DECODE (SIGN (m.mld_melding_einddatum_std - TRUNC (t.fac_tracking_datum, 'mi')), -1, 0, 1))
|
|
uvoptijd
|
|
FROM fac_tracking t,
|
|
mld_melding m,
|
|
(SELECT *
|
|
FROM fac_v_aanwezigusrdata
|
|
WHERE fac_usrtab_key = 201) ud, -- KPI2
|
|
alg_locatie l, -- Ook verwijderde locaties
|
|
alg_district d -- en verwijderde districten!
|
|
WHERE t.fac_srtnotificatie_key = 38 -- MLDAFM
|
|
AND t.fac_tracking_datum > TRUNC (ADD_MONTHS (SYSDATE, -24), 'yyyy')
|
|
AND t.fac_tracking_refkey = m.mld_melding_key
|
|
--AND m.mld_melding_status IN (5, 6) -- Afgemeld/Verwerkt
|
|
AND m.mld_melding_start_key IS NULL -- Muv. vervolgmeldingen
|
|
AND m.mld_melding_spoed IN (1, 2) -- Kritisch/Hoog
|
|
AND TO_CHAR (m.mld_stdmelding_key) = ud.fac_usrdata_code
|
|
AND m.mld_alg_locatie_key = l.alg_locatie_key
|
|
AND l.alg_district_key = d.alg_district_key
|
|
GROUP BY TO_CHAR (t.fac_tracking_datum, 'yyyy'),
|
|
CEIL (fac.safe_to_number (TO_CHAR (t.fac_tracking_datum, 'mm')) / 2),
|
|
'2. Meldingen urgente storingen',
|
|
d.alg_district_omschrijving),
|
|
mldkpi6 -- Per complex volgens KPI6-tabel de meldingen op MLDAFM-tijd muv. vervolgmeldingen!
|
|
AS ( SELECT TO_CHAR (t.fac_tracking_datum, 'yyyy') jaar,
|
|
CEIL (fac.safe_to_number (TO_CHAR (t.fac_tracking_datum, 'mm')) / 2) periode,
|
|
'6. Alle dienstverlening' kpi,
|
|
d.alg_district_omschrijving vt,
|
|
COUNT ( * ) totaal,
|
|
SUM (DECODE (SIGN (m.mld_melding_einddatum_std - TRUNC (t.fac_tracking_datum, 'mi')), -1, 0, 1))
|
|
uvoptijd
|
|
FROM fac_tracking t,
|
|
mld_melding m,
|
|
(SELECT *
|
|
FROM fac_v_aanwezigusrdata
|
|
WHERE fac_usrtab_key = 221) ud, -- KPI6
|
|
alg_locatie l, -- Ook verwijderde locaties
|
|
alg_district d -- en verwijderde districten!
|
|
WHERE t.fac_srtnotificatie_key = 38 -- MLDAFM
|
|
AND t.fac_tracking_datum > TRUNC (ADD_MONTHS (SYSDATE, -24), 'yyyy')
|
|
AND t.fac_tracking_refkey = m.mld_melding_key
|
|
--AND m.mld_melding_status IN (5, 6) -- Afgemeld/Verwerkt
|
|
AND m.mld_melding_start_key IS NULL -- Muv. vervolgmeldingen
|
|
AND TO_CHAR (m.mld_stdmelding_key) = ud.fac_usrdata_code
|
|
AND m.mld_alg_locatie_key = l.alg_locatie_key
|
|
AND l.alg_district_key = d.alg_district_key
|
|
GROUP BY TO_CHAR (t.fac_tracking_datum, 'yyyy'),
|
|
CEIL (fac.safe_to_number (TO_CHAR (t.fac_tracking_datum, 'mm')) / 2),
|
|
'6. Alle dienstverlening',
|
|
d.alg_district_omschrijving),
|
|
mldkpi6a -- Per complex volgens KPI6a-tabel de meldingen op MLDAFM-tijd muv. vervolgmeldingen!
|
|
AS ( SELECT TO_CHAR (t.fac_tracking_datum, 'yyyy') jaar,
|
|
CEIL (fac.safe_to_number (TO_CHAR (t.fac_tracking_datum, 'mm')) / 2) periode,
|
|
'6a. Meldingen gebouwbeheer' kpi,
|
|
d.alg_district_omschrijving vt,
|
|
COUNT ( * ) totaal,
|
|
SUM (DECODE (SIGN (m.mld_melding_einddatum_std - TRUNC (t.fac_tracking_datum, 'mi')), -1, 0, 1))
|
|
uvoptijd
|
|
FROM fac_tracking t,
|
|
mld_melding m,
|
|
(SELECT *
|
|
FROM fac_v_aanwezigusrdata
|
|
WHERE fac_usrtab_key = 222) ud, -- KPI6ab
|
|
alg_locatie l, -- Ook verwijderde locaties
|
|
alg_district d -- en verwijderde districten!
|
|
WHERE t.fac_srtnotificatie_key = 38 -- MLDAFM
|
|
AND t.fac_tracking_datum > TRUNC (ADD_MONTHS (SYSDATE, -24), 'yyyy')
|
|
AND t.fac_tracking_refkey = m.mld_melding_key
|
|
--AND m.mld_melding_status IN (5, 6) -- Afgemeld/Verwerkt
|
|
AND m.mld_melding_start_key IS NULL -- Muv. vervolgmeldingen
|
|
AND TO_CHAR (m.mld_stdmelding_key) = ud.fac_usrdata_code
|
|
AND m.mld_alg_locatie_key = l.alg_locatie_key
|
|
AND l.alg_district_key = d.alg_district_key
|
|
GROUP BY TO_CHAR (t.fac_tracking_datum, 'yyyy'),
|
|
CEIL (fac.safe_to_number (TO_CHAR (t.fac_tracking_datum, 'mm')) / 2),
|
|
'6a. Meldingen gebouwbeheer',
|
|
d.alg_district_omschrijving),
|
|
mldkpi6b -- Per complex volgens KPI6a-tabel de meldingen op MLDAFM-tijd muv. vervolgmeldingen!
|
|
AS ( SELECT TO_CHAR (t.fac_tracking_datum, 'yyyy') jaar,
|
|
CEIL (fac.safe_to_number (TO_CHAR (t.fac_tracking_datum, 'mm')) / 2) periode,
|
|
'6b. Meldingen gebouwbeheer RVB' kpi,
|
|
d.alg_district_omschrijving vt,
|
|
COUNT ( * ) totaal,
|
|
SUM (DECODE (SIGN (m.mld_melding_einddatum_std - TRUNC (t.fac_tracking_datum, 'mi')), -1, 0, 1))
|
|
uvoptijd
|
|
FROM fac_tracking t,
|
|
mld_melding m,
|
|
(SELECT *
|
|
FROM fac_v_aanwezigusrdata
|
|
WHERE fac_usrtab_key = 222) ud, -- KPI6ab
|
|
alg_locatie l, -- Ook verwijderde locaties
|
|
alg_district d, -- en verwijderde districten!
|
|
(SELECT DISTINCT o.mld_melding_key
|
|
FROM mld_v_aanwezigkenmerkopdr ko, mld_opdr o
|
|
WHERE ko.mld_kenmerk_key = 2 -- Serviceaanvraagnummer
|
|
AND ko.mld_opdr_key = o.mld_opdr_key) mko
|
|
WHERE t.fac_srtnotificatie_key = 38 -- MLDAFM
|
|
AND t.fac_tracking_datum > TRUNC (ADD_MONTHS (SYSDATE, -24), 'yyyy')
|
|
AND t.fac_tracking_refkey = m.mld_melding_key
|
|
--AND m.mld_melding_status IN (5, 6) -- Afgemeld/Verwerkt
|
|
AND m.mld_melding_start_key IS NULL -- Muv. vervolgmeldingen
|
|
AND TO_CHAR (m.mld_stdmelding_key) = ud.fac_usrdata_code
|
|
AND m.mld_alg_locatie_key = l.alg_locatie_key
|
|
AND l.alg_district_key = d.alg_district_key
|
|
AND m.mld_melding_key = mko.mld_melding_key
|
|
GROUP BY TO_CHAR (t.fac_tracking_datum, 'yyyy'),
|
|
CEIL (fac.safe_to_number (TO_CHAR (t.fac_tracking_datum, 'mm')) / 2),
|
|
'6b. Meldingen gebouwbeheer RVB',
|
|
d.alg_district_omschrijving),
|
|
mldkpi7 -- Per complex onder vakgroep(type)=Klantreacties de Klachten op MLDAFM-tijd muv. vervolgmeldingen!
|
|
AS ( SELECT TO_CHAR (t.fac_tracking_datum, 'yyyy') jaar,
|
|
CEIL (fac.safe_to_number (TO_CHAR (t.fac_tracking_datum, 'mm')) / 2) periode,
|
|
'7. Afhandeling klachten' kpi,
|
|
d.alg_district_omschrijving vt,
|
|
COUNT ( * ) totaal,
|
|
SUM (DECODE (SIGN (m.mld_melding_einddatum_std - TRUNC (t.fac_tracking_datum, 'mi')), -1, 0, 1))
|
|
uvoptijd
|
|
FROM fac_tracking t,
|
|
mld_melding m,
|
|
alg_locatie l, -- Ook verwijderde locaties
|
|
alg_district d -- en verwijderde districten!
|
|
WHERE t.fac_srtnotificatie_key = 38 -- MLDAFM
|
|
AND t.fac_tracking_datum > TRUNC (ADD_MONTHS (SYSDATE, -24), 'yyyy')
|
|
AND t.fac_tracking_refkey = m.mld_melding_key
|
|
--AND m.mld_melding_status IN (5, 6) -- Afgemeld/Verwerkt
|
|
AND m.mld_melding_start_key IS NULL -- Muv. vervolgmeldingen
|
|
AND m.mld_stdmelding_key = 23 -- Klacht
|
|
AND m.mld_alg_locatie_key = l.alg_locatie_key
|
|
AND l.alg_district_key = d.alg_district_key
|
|
GROUP BY TO_CHAR (t.fac_tracking_datum, 'yyyy'),
|
|
CEIL (fac.safe_to_number (TO_CHAR (t.fac_tracking_datum, 'mm')) / 2),
|
|
'7. Afhandeling klachten',
|
|
d.alg_district_omschrijving)
|
|
SELECT jaar || vt || '1', jaar, vt, kpi,
|
|
SUM (DECODE (periode, 1, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 1, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 1, uvoptijd, 0)) / SUM (DECODE (periode, 1, totaal, 0)))),
|
|
SUM (DECODE (periode, 2, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 2, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 2, uvoptijd, 0)) / SUM (DECODE (periode, 2, totaal, 0)))),
|
|
SUM (DECODE (periode, 3, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 3, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 3, uvoptijd, 0)) / SUM (DECODE (periode, 3, totaal, 0)))),
|
|
SUM (DECODE (periode, 4, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 4, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 4, uvoptijd, 0)) / SUM (DECODE (periode, 4, totaal, 0)))),
|
|
SUM (DECODE (periode, 5, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 5, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 5, uvoptijd, 0)) / SUM (DECODE (periode, 5, totaal, 0)))),
|
|
SUM (DECODE (periode, 6, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 6, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 6, uvoptijd, 0)) / SUM (DECODE (periode, 6, totaal, 0))))
|
|
FROM mldkpi2
|
|
GROUP BY jaar || vt || '1', jaar, vt, kpi
|
|
UNION ALL -- Nul-regel voor deze kpi per jaar/vt zonder voorkomens!
|
|
SELECT p.jaar || d.alg_district_omschrijving || '1', p.jaar, d.alg_district_omschrijving,
|
|
'2. Meldingen urgente storingen', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
|
FROM (SELECT TO_CHAR (ADD_MONTHS (SYSDATE, (LEVEL - 1) * -12), 'yyyy') jaar FROM DUAL CONNECT BY LEVEL <= 3 ORDER BY 1) p,
|
|
alg_locatie l, alg_district d
|
|
WHERE p.jaar BETWEEN TO_CHAR (l.alg_locatie_aanmaak, 'yyyy') AND TO_CHAR (COALESCE (l.alg_locatie_verwijder, SYSDATE), 'yyyy')
|
|
AND l.alg_district_key = d.alg_district_key
|
|
AND NOT EXISTS (SELECT 1 FROM mldkpi2 WHERE jaar = p.jaar AND vt = d.alg_district_omschrijving)
|
|
UNION ALL
|
|
SELECT jaar || vt || '2', jaar, vt, kpi,
|
|
SUM (DECODE (periode, 1, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 1, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 1, uvoptijd, 0)) / SUM (DECODE (periode, 1, totaal, 0)))),
|
|
SUM (DECODE (periode, 2, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 2, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 2, uvoptijd, 0)) / SUM (DECODE (periode, 2, totaal, 0)))),
|
|
SUM (DECODE (periode, 3, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 3, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 3, uvoptijd, 0)) / SUM (DECODE (periode, 3, totaal, 0)))),
|
|
SUM (DECODE (periode, 4, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 4, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 4, uvoptijd, 0)) / SUM (DECODE (periode, 4, totaal, 0)))),
|
|
SUM (DECODE (periode, 5, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 5, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 5, uvoptijd, 0)) / SUM (DECODE (periode, 5, totaal, 0)))),
|
|
SUM (DECODE (periode, 6, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 6, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 6, uvoptijd, 0)) / SUM (DECODE (periode, 6, totaal, 0))))
|
|
FROM mldkpi6
|
|
GROUP BY jaar || vt || '2', jaar, vt, kpi
|
|
UNION ALL -- Nul-regel voor deze kpi per jaar/vt zonder voorkomens!
|
|
SELECT p.jaar || d.alg_district_omschrijving || '2', p.jaar, d.alg_district_omschrijving,
|
|
'6. Alle dienstverlening', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
|
FROM (SELECT TO_CHAR (ADD_MONTHS (SYSDATE, (LEVEL - 1) * -12), 'yyyy') jaar FROM DUAL CONNECT BY LEVEL <= 3 ORDER BY 1) p,
|
|
alg_locatie l, alg_district d
|
|
WHERE p.jaar BETWEEN TO_CHAR (l.alg_locatie_aanmaak, 'yyyy') AND TO_CHAR (COALESCE (l.alg_locatie_verwijder, SYSDATE), 'yyyy')
|
|
AND l.alg_district_key = d.alg_district_key
|
|
AND NOT EXISTS (SELECT 1 FROM mldkpi6 WHERE jaar = p.jaar AND vt = d.alg_district_omschrijving)
|
|
UNION ALL
|
|
SELECT jaar || vt || '3', jaar, vt, kpi,
|
|
SUM (DECODE (periode, 1, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 1, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 1, uvoptijd, 0)) / SUM (DECODE (periode, 1, totaal, 0)))),
|
|
SUM (DECODE (periode, 2, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 2, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 2, uvoptijd, 0)) / SUM (DECODE (periode, 2, totaal, 0)))),
|
|
SUM (DECODE (periode, 3, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 3, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 3, uvoptijd, 0)) / SUM (DECODE (periode, 3, totaal, 0)))),
|
|
SUM (DECODE (periode, 4, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 4, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 4, uvoptijd, 0)) / SUM (DECODE (periode, 4, totaal, 0)))),
|
|
SUM (DECODE (periode, 5, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 5, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 5, uvoptijd, 0)) / SUM (DECODE (periode, 5, totaal, 0)))),
|
|
SUM (DECODE (periode, 6, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 6, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 6, uvoptijd, 0)) / SUM (DECODE (periode, 6, totaal, 0))))
|
|
FROM mldkpi6a
|
|
GROUP BY jaar || vt || '3', jaar, vt, kpi
|
|
UNION ALL -- Nul-regel voor deze kpi per jaar/vt zonder voorkomens!
|
|
SELECT p.jaar || d.alg_district_omschrijving || '3', p.jaar, d.alg_district_omschrijving,
|
|
'6a. Meldingen gebouwbeheer', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
|
FROM (SELECT TO_CHAR (ADD_MONTHS (SYSDATE, (LEVEL - 1) * -12), 'yyyy') jaar FROM DUAL CONNECT BY LEVEL <= 3 ORDER BY 1) p,
|
|
alg_locatie l, alg_district d
|
|
WHERE p.jaar BETWEEN TO_CHAR (l.alg_locatie_aanmaak, 'yyyy') AND TO_CHAR (COALESCE (l.alg_locatie_verwijder, SYSDATE), 'yyyy')
|
|
AND l.alg_district_key = d.alg_district_key
|
|
AND NOT EXISTS (SELECT 1 FROM mldkpi6a WHERE jaar = p.jaar AND vt = d.alg_district_omschrijving)
|
|
UNION ALL
|
|
SELECT jaar || vt || '4', jaar, vt, kpi,
|
|
SUM (DECODE (periode, 1, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 1, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 1, uvoptijd, 0)) / SUM (DECODE (periode, 1, totaal, 0)))),
|
|
SUM (DECODE (periode, 2, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 2, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 2, uvoptijd, 0)) / SUM (DECODE (periode, 2, totaal, 0)))),
|
|
SUM (DECODE (periode, 3, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 3, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 3, uvoptijd, 0)) / SUM (DECODE (periode, 3, totaal, 0)))),
|
|
SUM (DECODE (periode, 4, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 4, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 4, uvoptijd, 0)) / SUM (DECODE (periode, 4, totaal, 0)))),
|
|
SUM (DECODE (periode, 5, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 5, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 5, uvoptijd, 0)) / SUM (DECODE (periode, 5, totaal, 0)))),
|
|
SUM (DECODE (periode, 6, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 6, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 6, uvoptijd, 0)) / SUM (DECODE (periode, 6, totaal, 0))))
|
|
FROM mldkpi6b
|
|
GROUP BY jaar || vt || '4', jaar, vt, kpi
|
|
UNION ALL -- Nul-regel voor deze kpi per jaar/vt zonder voorkomens!
|
|
SELECT p.jaar || d.alg_district_omschrijving || '4', p.jaar, d.alg_district_omschrijving,
|
|
'6b. Meldingen gebouwbeheer RVB', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
|
FROM (SELECT TO_CHAR (ADD_MONTHS (SYSDATE, (LEVEL - 1) * -12), 'yyyy') jaar FROM DUAL CONNECT BY LEVEL <= 3 ORDER BY 1) p,
|
|
alg_locatie l, alg_district d
|
|
WHERE p.jaar BETWEEN TO_CHAR (l.alg_locatie_aanmaak, 'yyyy') AND TO_CHAR (COALESCE (l.alg_locatie_verwijder, SYSDATE), 'yyyy')
|
|
AND l.alg_district_key = d.alg_district_key
|
|
AND NOT EXISTS (SELECT 1 FROM mldkpi6b WHERE jaar = p.jaar AND vt = d.alg_district_omschrijving)
|
|
UNION ALL
|
|
SELECT jaar || vt || '5', jaar, vt, kpi,
|
|
SUM (DECODE (periode, 1, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 1, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 1, uvoptijd, 0)) / SUM (DECODE (periode, 1, totaal, 0)))),
|
|
SUM (DECODE (periode, 2, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 2, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 2, uvoptijd, 0)) / SUM (DECODE (periode, 2, totaal, 0)))),
|
|
SUM (DECODE (periode, 3, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 3, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 3, uvoptijd, 0)) / SUM (DECODE (periode, 3, totaal, 0)))),
|
|
SUM (DECODE (periode, 4, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 4, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 4, uvoptijd, 0)) / SUM (DECODE (periode, 4, totaal, 0)))),
|
|
SUM (DECODE (periode, 5, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 5, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 5, uvoptijd, 0)) / SUM (DECODE (periode, 5, totaal, 0)))),
|
|
SUM (DECODE (periode, 6, totaal, 0)),
|
|
DECODE (SUM (DECODE (periode, 6, totaal, 0)), 0, 0, ROUND (100 * SUM (DECODE (periode, 6, uvoptijd, 0)) / SUM (DECODE (periode, 6, totaal, 0))))
|
|
FROM mldkpi7
|
|
GROUP BY jaar || vt || '5', jaar, vt, kpi
|
|
UNION ALL -- Nul-regel voor deze kpi per jaar/vt zonder voorkomens!
|
|
SELECT p.jaar || d.alg_district_omschrijving || '5', p.jaar, d.alg_district_omschrijving,
|
|
'7. Afhandeling klachten', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
|
FROM (SELECT TO_CHAR (ADD_MONTHS (SYSDATE, (LEVEL - 1) * -12), 'yyyy') jaar FROM DUAL CONNECT BY LEVEL <= 3 ORDER BY 1) p,
|
|
alg_locatie l, alg_district d
|
|
WHERE p.jaar BETWEEN TO_CHAR (l.alg_locatie_aanmaak, 'yyyy') AND TO_CHAR (COALESCE (l.alg_locatie_verwijder, SYSDATE), 'yyyy')
|
|
AND l.alg_district_key = d.alg_district_key
|
|
AND NOT EXISTS (SELECT 1 FROM mldkpi7 WHERE jaar = p.jaar AND vt = d.alg_district_omschrijving);
|
|
|
|
-- DJIN#55341: Te laat afgemelde meldingen
|
|
CREATE OR REPLACE VIEW djin_v_rap_mld_telaat
|
|
(
|
|
mld_melding_key,
|
|
organisatie,
|
|
vestiging,
|
|
complex,
|
|
clusteroms,
|
|
gebouwcode,
|
|
gebouwnaam,
|
|
verdieping,
|
|
ruimtenr,
|
|
ruimteoms,
|
|
mldord_id,
|
|
vakgroeptype,
|
|
vakgroep,
|
|
melding,
|
|
behandelaar,
|
|
servicenr,
|
|
leverancier,
|
|
ref_leverancier,
|
|
mldnew,
|
|
mldacp,
|
|
ordnew,
|
|
ordafm,
|
|
mldafm,
|
|
mldacp_sla,
|
|
mldacp_uvtijd,
|
|
mldacp_telaat,
|
|
mldafm_sla,
|
|
mldafm_uvtijd,
|
|
mldafm_telaat,
|
|
melder,
|
|
onderwerp,
|
|
omschrijving,
|
|
afhandeling -- Opdracht (indien aanwezig)
|
|
)
|
|
AS
|
|
WITH kantoortijden
|
|
AS (SELECT fac.safe_to_number (fac.getsetting ('fac_t_endofworkday')) - fac.safe_to_number (fac.getsetting ('fac_t_startofworkday')) uren
|
|
FROM DUAL),
|
|
mldkpi6 -- Per complex volgens KPI6-tabel de gesloten meldingen muv. vervolgmeldingen!
|
|
AS (SELECT m.mld_melding_key, m.mld_stdmelding_key,
|
|
m.prs_perslid_key, m.mld_melding_behandelaar_key,
|
|
m.mld_alg_locatie_key, m.mld_alg_onroerendgoed_keys,
|
|
m.mld_melding_onderwerp, m.mld_melding_omschrijving,
|
|
m.mld_melding_kto_key,
|
|
m.mld_melding_t_accepttijd, m.mld_melding_acceptdatum_std,
|
|
m.mld_melding_t_uitvoertijd, m.mld_melding_einddatum_std,
|
|
--fac.datumtijdnaaruitvoertijd (fac.gettrackingdate ('MLDNEW', m.mld_melding_key), fac.gettrackingdate ('MLDACP', m.mld_melding_key), 'U').tijdsduur mldacpuvt,
|
|
--fac.datumtijdnaaruitvoertijd (m.mld_melding_acceptdatum_std, fac.gettrackingdate ('MLDACP', m.mld_melding_key), 'U').tijdsduur mldacpovs,
|
|
--fac.datumtijdnaaruitvoertijd (fac.gettrackingdate ('MLDNEW', m.mld_melding_key), fac.gettrackingdate ('MLDAFM', m.mld_melding_key), 'U').tijdsduur mldafmuvt,
|
|
--fac.datumtijdnaaruitvoertijd (m.mld_melding_einddatum_std, fac.gettrackingdate ('MLDAFM', m.mld_melding_key), 'U').tijdsduur mldafmovs,
|
|
fac.gettrackingdate ('MLDNEW', m.mld_melding_key) mldnew,
|
|
fac.gettrackingdate ('MLDACP', m.mld_melding_key) mldacp,
|
|
fac.gettrackingdate ('MLDAFM', m.mld_melding_key) mldafm
|
|
FROM mld_melding m, (SELECT * FROM fac_v_aanwezigusrdata WHERE fac_usrtab_key = 221) ud -- KPI6
|
|
WHERE m.mld_stdmelding_key = fac.safe_to_number (ud.fac_usrdata_code)
|
|
AND m.mld_melding_status IN (5, 6) -- Afgemeld/Verwerkt
|
|
AND m.mld_melding_datum > TRUNC (ADD_MONTHS (SYSDATE, -24), 'yyyy')
|
|
AND m.mld_melding_start_key IS NULL) -- Muv. vervolgmeldingen
|
|
SELECT x.mld_melding_key,
|
|
x.prs_afdeling_naam || '-' || x.prs_afdeling_omschrijving organisatie,
|
|
x.alg_district_omschrijving vt, x.alg_locatie_omschrijving cx,
|
|
cl_ud.fac_usrdata_omschr clusteroms,
|
|
x.alg_gebouw_code gebouwcode,
|
|
x.alg_gebouw_naam gebouwnaam,
|
|
x.alg_verdieping_code verdieping,
|
|
x.alg_ruimte_nr ruimtenr,
|
|
x.alg_ruimte_omschrijving ruimteoms,
|
|
COALESCE (x.ins_srtdiscipline_prefix, '') || TO_CHAR (x.mld_melding_key) || DECODE (o.mld_opdr_key, NULL, '', '/' || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr)) mldord_id,
|
|
x.ins_srtdiscipline_omschrijving vakgroeptype,
|
|
x.ins_discipline_omschrijving vakgroep,
|
|
x.mld_stdmelding_omschrijving melding,
|
|
COALESCE (ob.prs_perslid_naam_full, mb.prs_perslid_naam_full) beh,
|
|
san.mld_kenmerkmelding_waarde san,
|
|
lev.mld_kenmerkmelding_waarde lev,
|
|
rlv.mld_kenmerkmelding_waarde ref_lev,
|
|
x.mldnew,
|
|
x.mldacp,
|
|
fac.gettrackingdate ('ORDNEW', o.mld_opdr_key) ordnew,
|
|
fac.gettrackingdate ('ORDAFM', o.mld_opdr_key) ordafm,
|
|
x.mldafm,
|
|
TO_CHAR (x.mld_melding_t_accepttijd.tijdsduur) || x.mld_melding_t_accepttijd.eenheid mldacp_sla,
|
|
DECODE (x.mldacp,
|
|
NULL, NULL,
|
|
TO_CHAR (FLOOR (x.mldacpuvt / kt.uren)) || 'D-'
|
|
|| TO_CHAR (FLOOR (ROUND (MOD (x.mldacpuvt, kt.uren) * 60) / 60)) || 'U-'
|
|
|| TO_CHAR (ROUND (MOD (x.mldacpuvt, 1) * 60)) || 'M')
|
|
mldacp_uvtijd,
|
|
DECODE (SIGN (x.mld_melding_acceptdatum_std - x.mldacp),
|
|
-1, TO_CHAR (FLOOR (x.mldacpovs / kt.uren)) || 'D-'
|
|
|| TO_CHAR (FLOOR (ROUND (MOD (x.mldacpovs, kt.uren) * 60) / 60)) || 'U-'
|
|
|| TO_CHAR (ROUND (MOD (x.mldacpovs, 1) * 60)) || 'M',
|
|
NULL)
|
|
mldacp_telaat,
|
|
TO_CHAR (x.mld_melding_t_uitvoertijd.tijdsduur) || x.mld_melding_t_uitvoertijd.eenheid mldafm_sla,
|
|
DECODE (x.mldafm,
|
|
NULL, NULL,
|
|
TO_CHAR (FLOOR (x.mldafmuvt / kt.uren)) || 'D-'
|
|
|| TO_CHAR (FLOOR (ROUND (MOD (x.mldafmuvt, kt.uren) * 60) / 60)) || 'U-'
|
|
|| TO_CHAR (ROUND (MOD (x.mldafmuvt, 1) * 60)) || 'M')
|
|
mldafm_uvtijd,
|
|
DECODE (SIGN (x.mld_melding_einddatum_std - x.mldafm),
|
|
-1, TO_CHAR (FLOOR (x.mldafmovs / kt.uren)) || 'D-'
|
|
|| TO_CHAR (FLOOR (ROUND (MOD (x.mldafmovs, kt.uren) * 60) / 60)) || 'U-'
|
|
|| TO_CHAR (ROUND (MOD (x.mldafmovs, 1) * 60)) || 'M',
|
|
NULL)
|
|
mldafm_telaat,
|
|
x.prs_perslid_naam_full melder,
|
|
x.mld_melding_onderwerp onderwerp, x.mld_melding_omschrijving omschrijving,
|
|
o.mld_opdr_opmerking
|
|
FROM kantoortijden kt,
|
|
(SELECT x.*,
|
|
fac.datumtijdnaaruitvoertijd (x.mldnew, x.mldacp, 'U').tijdsduur mldacpuvt,
|
|
fac.datumtijdnaaruitvoertijd (x.mld_melding_acceptdatum_std, x.mldacp, 'U').tijdsduur mldacpovs,
|
|
fac.datumtijdnaaruitvoertijd (x.mldnew, x.mldafm, 'U').tijdsduur mldafmuvt,
|
|
fac.datumtijdnaaruitvoertijd (x.mld_melding_einddatum_std, x.mldafm, 'U').tijdsduur mldafmovs,
|
|
sd.ins_srtdiscipline_prefix, sd.ins_srtdiscipline_omschrijving,
|
|
md.ins_discipline_omschrijving, sm.mld_stdmelding_omschrijving,
|
|
pf.prs_perslid_naam_full, a.prs_afdeling_naam, a.prs_afdeling_omschrijving,
|
|
d.alg_district_omschrijving, l.alg_locatie_key, l.alg_locatie_omschrijving,
|
|
aog.alg_gebouw_code, aog.alg_gebouw_naam,
|
|
aog.alg_verdieping_code,
|
|
aog.alg_ruimte_nr, aog.alg_ruimte_omschrijving
|
|
FROM mldkpi6 x,
|
|
mld_stdmelding sm, mld_discipline md, ins_srtdiscipline sd,
|
|
prs_perslid p, prs_v_perslid_fullnames_all pf, prs_afdeling a,
|
|
alg_v_allonrgoed_gegevens aog,
|
|
alg_locatie l, alg_district d -- Ook verwijderde locaties en districten!
|
|
WHERE x.mldafm > x.mld_melding_einddatum_std -- Sneller dan (x.mldacp > x.mld_melding_acceptdatum_std OR x.mldafm > x.mld_melding_einddatum_std)!?
|
|
AND x.mld_stdmelding_key = sm.mld_stdmelding_key
|
|
AND sm.mld_ins_discipline_key = md.ins_discipline_key
|
|
AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
|
AND x.prs_perslid_key = p.prs_perslid_key
|
|
AND p.prs_perslid_key = pf.prs_perslid_key
|
|
AND p.prs_afdeling_key = a.prs_afdeling_key
|
|
AND x.mld_alg_locatie_key = l.alg_locatie_key
|
|
AND l.alg_district_key = d.alg_district_key
|
|
AND x.mld_alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys(+)) x
|
|
LEFT JOIN alg_v_aanwezigonrgoedkenmerk cl
|
|
ON x.alg_locatie_key = cl.alg_onrgoed_key
|
|
AND cl.alg_onrgoed_niveau = 'L' AND cl.alg_kenmerk_key = 1000 -- Cluster
|
|
LEFT JOIN fac_usrdata cl_ud
|
|
ON fac.safe_to_number (cl.alg_onrgoedkenmerk_waarde) = cl_ud.fac_usrdata_key
|
|
LEFT JOIN prs_v_perslid_fullnames_all mb
|
|
ON x.mld_melding_behandelaar_key = mb.prs_perslid_key
|
|
LEFT JOIN mld_opdr o
|
|
ON x.mld_melding_key = o.mld_melding_key
|
|
LEFT JOIN prs_v_perslid_fullnames_all ob
|
|
ON o.prs_perslid_key = ob.prs_perslid_key
|
|
LEFT JOIN mld_v_aanwezigkenmerkmelding san -- Serviceaanvraagnummer (Soort 2)
|
|
ON x.mld_melding_key = san.mld_melding_key
|
|
AND EXISTS (SELECT 1 FROM mld_kenmerk WHERE mld_srtkenmerk_key = 2 AND mld_kenmerk_key = san.mld_kenmerk_key)
|
|
LEFT JOIN mld_v_aanwezigkenmerkmelding lev -- Naam leverancier (Soort 43)
|
|
ON x.mld_melding_key = lev.mld_melding_key
|
|
AND EXISTS (SELECT 1 FROM mld_kenmerk WHERE mld_srtkenmerk_key = 43 AND mld_kenmerk_key = lev.mld_kenmerk_key)
|
|
LEFT JOIN mld_v_aanwezigkenmerkmelding rlv -- Opdrachtnummer leverancier (Soort 44)
|
|
ON x.mld_melding_key = rlv.mld_melding_key
|
|
AND EXISTS (SELECT 1 FROM mld_kenmerk WHERE mld_srtkenmerk_key = 44 AND mld_kenmerk_key = rlv.mld_kenmerk_key);
|
|
|
|
-- DJIN#55344: Plusdiensten-rapportage
|
|
CREATE OR REPLACE VIEW djin_v_rap_plusdiensten
|
|
(
|
|
district,
|
|
complex,
|
|
aanvrager,
|
|
aanvrager_afd,
|
|
gebruiker,
|
|
gebruiker_afd,
|
|
mldres_id, -- Meldings- of reserveringsnummer
|
|
mldafm_resvan, -- Datum afgemeld melding of datum reservering
|
|
vakgroep_cat, -- Vakgroep of catalogus
|
|
melding_artikel,
|
|
prijs_per_stuk,
|
|
aantal,
|
|
totaalprijs,
|
|
leonardonr,
|
|
locatieteam,
|
|
kostenplaats,
|
|
extra_velden,
|
|
referentie,
|
|
onderwerp,
|
|
omschrijving
|
|
)
|
|
AS
|
|
WITH mk AS (SELECT sk.vnr, sk.mld_srtkenmerk_key, sk.mld_srtkenmerk_omschrijving, kw.mld_melding_key, kw.waarde
|
|
FROM (SELECT ROWNUM vnr, mld_srtkenmerk_key, mld_srtkenmerk_omschrijving
|
|
FROM ( SELECT ud.fac_usrdata_volgnr, sk.mld_srtkenmerk_key, sk.mld_srtkenmerk_omschrijving
|
|
FROM fac_v_aanwezigusrdata ud, mld_srtkenmerk sk
|
|
WHERE ud.fac_usrtab_key = 261 -- Kenmerksoorten voor extra velden bij plusdienst!
|
|
AND fac.safe_to_number (ud.fac_usrdata_code) = sk.mld_srtkenmerk_key
|
|
AND sk.mld_srtkenmerk_kenmerktype IN ('C', 'D', 'N', 'R', 'S', 'X', 'B', 'V')
|
|
ORDER BY 1, 2)) sk
|
|
LEFT JOIN
|
|
(SELECT sk.mld_srtkenmerk_key, km.mld_melding_key,
|
|
DECODE (sk.mld_srtkenmerk_kenmerktype,
|
|
'R', fac.getdomeinwaarde (sk.fac_kenmerkdomein_key, km.mld_kenmerkmelding_waarde),
|
|
'S', fac.getdomeinwaarde (sk.fac_kenmerkdomein_key, km.mld_kenmerkmelding_waarde),
|
|
km.mld_kenmerkmelding_waarde)
|
|
waarde
|
|
FROM mld_v_aanwezigkenmerkmelding km, mld_kenmerk k, mld_srtkenmerk sk
|
|
WHERE km.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key) kw
|
|
ON sk.mld_srtkenmerk_key = kw.mld_srtkenmerk_key
|
|
WHERE kw.waarde IS NOT NULL)
|
|
SELECT -- Meldingen onder Advies en Projecten (Vakgroep met key = 282) of Plusdienst (waarbij kenmerk van kenmerksoort uit Eigen tabel met key=241 is gevuld met entry uit andere Eigen tabel met prijs>0)!
|
|
x.alg_district_omschrijving vt, x.alg_locatie_omschrijving cx,
|
|
x.prs_perslid_naam_full aanvrager,
|
|
x.prs_afdeling_naam || '-' || x.prs_afdeling_omschrijving aanvrager_afd,
|
|
COALESCE (km1.mld_kenmerkmelding_waarde, x.prs_perslid_naam_full) gebruiker,
|
|
COALESCE (km2_ud.fac_usrdata_omschr, x.prs_afdeling_naam || '-' || x.prs_afdeling_omschrijving) gebruiker_afd,
|
|
TO_CHAR (x.mld_melding_key) verplichtingnr,
|
|
fac.gettrackingdate ('MLDAFM', x.mld_melding_key) datum,
|
|
x.ins_discipline_omschrijving discipline,
|
|
x.mld_stdmelding_omschrijving melding_artikel,
|
|
TO_NUMBER (NULL) prijs_per_stuk,
|
|
TO_NUMBER (NULL) aantal,
|
|
fac.safe_to_number (tp.mld_kenmerkmelding_waarde) totaalprijs,
|
|
ln.mld_kenmerkmelding_waarde leonardonr,
|
|
DECODE (lt.mld_kenmerkmelding_waarde, NULL, 'Nee', 'Ja') locatieteam,
|
|
ka.mld_kenmerkmelding_waarde kostenplaats,
|
|
DECODE (k1.waarde, NULL, '', k1.waarde || CHR (13) || CHR (10))
|
|
|| DECODE (k2.waarde, NULL, '', k2.waarde || CHR (13) || CHR (10))
|
|
|| DECODE (k3.waarde, NULL, '', k3.waarde || CHR (13) || CHR (10))
|
|
|| DECODE (k4.waarde, NULL, '', k4.waarde || CHR (13) || CHR (10))
|
|
|| DECODE (k5.waarde, NULL, '', k5.waarde || CHR (13) || CHR (10))
|
|
|| DECODE (k6.waarde, NULL, '', k6.waarde || CHR (13) || CHR (10))
|
|
|| DECODE (k7.waarde, NULL, '', k7.waarde || CHR (13) || CHR (10))
|
|
|| DECODE (k8.waarde, NULL, '', k8.waarde || CHR (13) || CHR (10))
|
|
|| DECODE (k9.waarde, NULL, '', k9.waarde || CHR (13) || CHR (10))
|
|
|| DECODE (k10.waarde, NULL, '', k10.waarde || CHR (13) || CHR (10))
|
|
|| DECODE (k11.waarde, NULL, '', k11.waarde || CHR (13) || CHR (10))
|
|
|| DECODE (k12.waarde, NULL, '', k12.waarde || CHR (13) || CHR (10))
|
|
|| DECODE (k13.waarde, NULL, '', k13.waarde || CHR (13) || CHR (10))
|
|
|| DECODE (k14.waarde, NULL, '', k14.waarde || CHR (13) || CHR (10))
|
|
|| DECODE (k15.waarde, NULL, '', k15.waarde || CHR (13) || CHR (10))
|
|
|| DECODE (k16.waarde, NULL, '', k16.waarde || CHR (13) || CHR (10))
|
|
|| DECODE (k17.waarde, NULL, '', k17.waarde || CHR (13) || CHR (10))
|
|
|| DECODE (k18.waarde, NULL, '', k18.waarde || CHR (13) || CHR (10))
|
|
|| DECODE (k19.waarde, NULL, '', k19.waarde || CHR (13) || CHR (10))
|
|
|| DECODE (k20.waarde, NULL, '', k20.waarde || CHR (13) || CHR (10))
|
|
|| DECODE (k21.waarde, NULL, '', k21.waarde || CHR (13) || CHR (10))
|
|
|| DECODE (k22.waarde, NULL, '', k22.waarde || CHR (13) || CHR (10))
|
|
|| DECODE (k23.waarde, NULL, '', k23.waarde || CHR (13) || CHR (10))
|
|
|| DECODE (k24.waarde, NULL, '', k24.waarde || CHR (13) || CHR (10))
|
|
|| DECODE (k25.waarde, NULL, '', k25.waarde || CHR (13) || CHR (10))
|
|
|| DECODE (k26.waarde, NULL, '', k26.waarde || CHR (13) || CHR (10))
|
|
|| DECODE (k27.waarde, NULL, '', k27.waarde || CHR (13) || CHR (10))
|
|
|| DECODE (k28.waarde, NULL, '', k28.waarde || CHR (13) || CHR (10))
|
|
|| DECODE (k29.waarde, NULL, '', k29.waarde || CHR (13) || CHR (10))
|
|
|| DECODE (k30.waarde, NULL, '', k30.waarde || CHR (13) || CHR (10))
|
|
extra_velden,
|
|
TO_CHAR (x.mld_melding_kto_key) referentie,
|
|
x.mld_melding_onderwerp onderwerp,
|
|
x.mld_melding_omschrijving omschrijving
|
|
FROM (SELECT m.mld_melding_key, m.mld_melding_onderwerp, m.mld_melding_omschrijving,
|
|
md.ins_discipline_omschrijving, sm.mld_stdmelding_omschrijving,
|
|
pf.prs_perslid_naam_full, a.prs_afdeling_naam, a.prs_afdeling_omschrijving,
|
|
d.alg_district_omschrijving, l.alg_locatie_omschrijving,
|
|
m.mld_melding_kto_key
|
|
FROM mld_melding m, mld_stdmelding sm, mld_discipline md,
|
|
(SELECT DISTINCT km.mld_melding_key
|
|
FROM fac_v_aanwezigusrdata ud1, mld_kenmerk k, mld_v_aanwezigkenmerkmelding km, fac_v_aanwezigusrdata ud2
|
|
WHERE ud1.fac_usrtab_key = 241 -- Kenmerksoorten ter identificatie van Plusdienst (als prijs > 0)
|
|
AND ud1.fac_usrdata_code = TO_CHAR (k.mld_srtkenmerk_key)
|
|
AND k.mld_kenmerk_key = km.mld_kenmerk_key
|
|
AND km.mld_kenmerkmelding_waarde = TO_CHAR (ud2.fac_usrdata_key)
|
|
AND ud2.fac_usrdata_prijs > 0) pd, -- Plusdiensten
|
|
prs_perslid p, prs_v_perslid_fullnames_all pf, prs_afdeling a,
|
|
alg_locatie l, alg_district d -- Ook verwijderde locaties en districten!
|
|
WHERE m.mld_melding_status IN (5, 6) -- Afgemeld/Verwerkt
|
|
AND m.mld_melding_datum > TRUNC (ADD_MONTHS (SYSDATE, -24), 'yyyy')
|
|
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
|
AND sm.mld_ins_discipline_key = md.ins_discipline_key
|
|
AND m.mld_melding_key = pd.mld_melding_key(+)
|
|
AND (md.ins_discipline_key = 282 -- Advies en Projecten
|
|
OR pd.mld_melding_key IS NOT NULL) -- Plusdienst
|
|
AND m.prs_perslid_key = p.prs_perslid_key
|
|
AND p.prs_perslid_key = pf.prs_perslid_key
|
|
AND p.prs_afdeling_key = a.prs_afdeling_key
|
|
AND m.mld_alg_locatie_key = l.alg_locatie_key
|
|
AND l.alg_district_key = d.alg_district_key) x
|
|
LEFT JOIN mld_v_aanwezigkenmerkmelding km1 -- Naam contactpersoon (Soort 102)
|
|
ON x.mld_melding_key = km1.mld_melding_key
|
|
AND km1.mld_kenmerk_key = 228 -- Naam contactpersoon (Soort 102)
|
|
LEFT JOIN mld_v_aanwezigkenmerkmelding km2 -- Naam organisatie (Soort 161)
|
|
ON x.mld_melding_key = km2.mld_melding_key
|
|
AND km2.mld_kenmerk_key = 227 -- Naam organisatie (Soort 161-Domein 141-Eigen tabel 161)
|
|
LEFT JOIN fac_usrdata km2_ud
|
|
ON fac.safe_to_number (km2.mld_kenmerkmelding_waarde) = km2_ud.fac_usrdata_key
|
|
LEFT JOIN mld_v_aanwezigkenmerkmelding tp -- Totaalprijs (Soort 261)
|
|
ON x.mld_melding_key = tp.mld_melding_key
|
|
AND EXISTS (SELECT 1 FROM mld_kenmerk WHERE mld_srtkenmerk_key = 261 AND mld_kenmerk_key = tp.mld_kenmerk_key)
|
|
LEFT JOIN mld_v_aanwezigkenmerkmelding ln -- Leonardonummer (Soort 461)
|
|
ON x.mld_melding_key = ln.mld_melding_key
|
|
AND EXISTS (SELECT 1 FROM mld_kenmerk WHERE mld_srtkenmerk_key = 461 AND mld_kenmerk_key = ln.mld_kenmerk_key)
|
|
LEFT JOIN mld_v_aanwezigkenmerkmelding lt -- Locatieteam-vinkveld (Soort 284)
|
|
ON x.mld_melding_key = lt.mld_melding_key
|
|
AND EXISTS (SELECT 1 FROM mld_kenmerk WHERE mld_srtkenmerk_key = 284 AND mld_kenmerk_key = lt.mld_kenmerk_key)
|
|
LEFT JOIN mld_v_aanwezigkenmerkmelding ka -- Kostenplaats/afdeling (Soort 41)
|
|
ON x.mld_melding_key = ka.mld_melding_key
|
|
AND EXISTS (SELECT 1 FROM mld_kenmerk WHERE mld_srtkenmerk_key = 41 AND mld_kenmerk_key = ka.mld_kenmerk_key)
|
|
LEFT JOIN mk k1 ON x.mld_melding_key = k1.mld_melding_key AND k1.vnr = 1
|
|
LEFT JOIN mk k2 ON x.mld_melding_key = k2.mld_melding_key AND k2.vnr = 2
|
|
LEFT JOIN mk k3 ON x.mld_melding_key = k3.mld_melding_key AND k3.vnr = 3
|
|
LEFT JOIN mk k4 ON x.mld_melding_key = k4.mld_melding_key AND k4.vnr = 4
|
|
LEFT JOIN mk k5 ON x.mld_melding_key = k5.mld_melding_key AND k5.vnr = 5
|
|
LEFT JOIN mk k6 ON x.mld_melding_key = k6.mld_melding_key AND k6.vnr = 6
|
|
LEFT JOIN mk k7 ON x.mld_melding_key = k7.mld_melding_key AND k7.vnr = 7
|
|
LEFT JOIN mk k8 ON x.mld_melding_key = k8.mld_melding_key AND k8.vnr = 8
|
|
LEFT JOIN mk k9 ON x.mld_melding_key = k9.mld_melding_key AND k9.vnr = 9
|
|
LEFT JOIN mk k10 ON x.mld_melding_key = k10.mld_melding_key AND k10.vnr = 10
|
|
LEFT JOIN mk k11 ON x.mld_melding_key = k11.mld_melding_key AND k11.vnr = 11
|
|
LEFT JOIN mk k12 ON x.mld_melding_key = k12.mld_melding_key AND k12.vnr = 12
|
|
LEFT JOIN mk k13 ON x.mld_melding_key = k13.mld_melding_key AND k13.vnr = 13
|
|
LEFT JOIN mk k14 ON x.mld_melding_key = k14.mld_melding_key AND k14.vnr = 14
|
|
LEFT JOIN mk k15 ON x.mld_melding_key = k15.mld_melding_key AND k15.vnr = 15
|
|
LEFT JOIN mk k16 ON x.mld_melding_key = k16.mld_melding_key AND k16.vnr = 16
|
|
LEFT JOIN mk k17 ON x.mld_melding_key = k17.mld_melding_key AND k17.vnr = 17
|
|
LEFT JOIN mk k18 ON x.mld_melding_key = k18.mld_melding_key AND k18.vnr = 18
|
|
LEFT JOIN mk k19 ON x.mld_melding_key = k19.mld_melding_key AND k19.vnr = 19
|
|
LEFT JOIN mk k20 ON x.mld_melding_key = k20.mld_melding_key AND k20.vnr = 20
|
|
LEFT JOIN mk k21 ON x.mld_melding_key = k21.mld_melding_key AND k21.vnr = 21
|
|
LEFT JOIN mk k22 ON x.mld_melding_key = k22.mld_melding_key AND k22.vnr = 22
|
|
LEFT JOIN mk k23 ON x.mld_melding_key = k23.mld_melding_key AND k23.vnr = 23
|
|
LEFT JOIN mk k24 ON x.mld_melding_key = k24.mld_melding_key AND k24.vnr = 24
|
|
LEFT JOIN mk k25 ON x.mld_melding_key = k25.mld_melding_key AND k25.vnr = 25
|
|
LEFT JOIN mk k26 ON x.mld_melding_key = k26.mld_melding_key AND k26.vnr = 26
|
|
LEFT JOIN mk k27 ON x.mld_melding_key = k27.mld_melding_key AND k27.vnr = 27
|
|
LEFT JOIN mk k28 ON x.mld_melding_key = k28.mld_melding_key AND k28.vnr = 28
|
|
LEFT JOIN mk k29 ON x.mld_melding_key = k29.mld_melding_key AND k29.vnr = 29
|
|
LEFT JOIN mk k30 ON x.mld_melding_key = k30.mld_melding_key AND k30.vnr = 30
|
|
UNION ALL -- Reserveringen van verbruiksartikelen (catering)!
|
|
SELECT d.alg_district_omschrijving vt,
|
|
l.alg_locatie_omschrijving cx,
|
|
pfc.prs_perslid_naam_full aanvrager,
|
|
ac.prs_afdeling_naam || '-' || ac.prs_afdeling_omschrijving aanvrager_afd,
|
|
pfh.prs_perslid_naam_full gebruiker,
|
|
ah.prs_afdeling_naam || '-' || ah.prs_afdeling_omschrijving gebruiker_afd,
|
|
TO_CHAR (rrr.res_reservering_key) || '/' || TO_CHAR (rrr.res_rsv_ruimte_volgnr) verplichtingnr,
|
|
rrr.res_rsv_ruimte_van datum,
|
|
rd.ins_discipline_omschrijving discipline,
|
|
ra.res_artikel_omschrijving melding_artikel,
|
|
DECODE (rra.res_rsv_artikel_prijs, NULL, ra.res_artikel_prijs, rra.res_rsv_artikel_prijs / COALESCE (rra.res_rsv_artikel_aantal, 1)) prijs_per_stuk,
|
|
rra.res_rsv_artikel_aantal aantal,
|
|
COALESCE (rra.res_rsv_artikel_prijs, rra.res_rsv_artikel_aantal * ra.res_artikel_prijs) totaalprijs,
|
|
NULL leonardonr, NULL locatieteam,
|
|
kpa.res_kenmerkreservering_waarde kostenplaats,
|
|
NULL extra_velden, NULL referentie, NULL onderwerp,
|
|
rrr.res_rsv_ruimte_omschrijving omschrijving
|
|
FROM res_v_aanwezigrsv_artikel rra,
|
|
res_artikel ra,
|
|
res_discipline rd,
|
|
res_v_aanwezigrsv_ruimte rrr,
|
|
prs_perslid pc, prs_v_perslid_fullnames_all pfc, prs_afdeling ac,
|
|
prs_perslid ph, prs_v_perslid_fullnames_all pfh, prs_afdeling ah,
|
|
res_ruimte_opstelling rro,
|
|
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
|
|
FROM res_alg_ruimte
|
|
WHERE res_alg_ruimte_verwijder IS NULL
|
|
GROUP BY res_ruimte_key) rar1,
|
|
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
|
|
FROM res_alg_ruimte
|
|
WHERE res_alg_ruimte_verwijder IS NOT NULL
|
|
GROUP BY res_ruimte_key) rar2,
|
|
alg_v_allonroerendgoed aog,
|
|
alg_locatie l, -- Ook verwijderde locaties
|
|
alg_district d, -- en verwijderde districten!
|
|
(SELECT kw.res_rsv_ruimte_key, kw.res_kenmerkreservering_waarde
|
|
FROM res_v_aanwezigkenmerkwaarde kw, res_kenmerk k
|
|
WHERE kw.res_kenmerk_key = k.res_kenmerk_key
|
|
AND k.res_srtkenmerk_key = 24) kpa -- Kostenplaats/afdeling
|
|
WHERE rra.res_rsv_artikel_levering > TRUNC (ADD_MONTHS (SYSDATE, -24), 'yyyy')
|
|
AND rra.res_rsv_artikel_levering < SYSDATE -- Geen toekomstige!
|
|
AND rra.res_rsv_artikel_dirtlevel = 0
|
|
AND rra.res_artikel_key = ra.res_artikel_key
|
|
AND ra.res_discipline_key = rd.ins_discipline_key
|
|
AND rra.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
|
AND rrr.res_rsv_ruimte_dirtlevel = 0
|
|
AND rrr.res_rsv_ruimte_contact_key = pc.prs_perslid_key
|
|
AND pc.prs_perslid_key = pfc.prs_perslid_key
|
|
AND pc.prs_afdeling_key = ac.prs_afdeling_key
|
|
AND rrr.res_rsv_ruimte_host_key = ph.prs_perslid_key
|
|
AND ph.prs_perslid_key = pfh.prs_perslid_key
|
|
AND ph.prs_afdeling_key = ah.prs_afdeling_key
|
|
AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key(+)
|
|
AND rro.res_ruimte_key = rar1.res_ruimte_key(+)
|
|
AND rro.res_ruimte_key = rar2.res_ruimte_key(+)
|
|
AND COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key, rrr.alg_ruimte_key) = aog.alg_ruimte_key
|
|
AND aog.alg_locatie_key = l.alg_locatie_key
|
|
AND l.alg_district_key = d.alg_district_key
|
|
AND rrr.res_rsv_ruimte_key = kpa.res_rsv_ruimte_key(+);
|
|
|
|
------ payload end ------
|
|
|
|
SET DEFINE OFF
|
|
BEGIN adm.systrackscriptId ('$Id$', 0); END;
|
|
/
|
|
|
|
COMMIT;
|
|
SET ECHO OFF
|
|
SPOOL OFF
|
|
SET DEFINE ON
|
|
PROMPT Logfile of this upgrade is: &fcltlogfile
|