2090 lines
101 KiB
MySQL
2090 lines
101 KiB
MySQL
-- Script containing customer specific db-configuration for DJIN.
|
||
-- (c) 2015 SG|facilitor bv
|
||
--
|
||
-- Support: +31 53 4800700
|
||
set echo on
|
||
spool xdjin.lst
|
||
|
||
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!
|
||
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');
|
||
|
||
-- Verwijder personen die niet meer in de import voorkomen.
|
||
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;
|
||
/
|
||
|
||
|
||
-- Dummy export NACHTWERK!
|
||
/* Formatted on 26-5-2016 11:05:50 (QP5 v5.136.908.31019) */
|
||
CREATE OR REPLACE PROCEDURE djin_select_nachtwerk (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2)
|
||
AS
|
||
CURSOR c_afspraak
|
||
IS
|
||
SELECT bez_afspraak_key
|
||
FROM bez_afspraak
|
||
WHERE bez_afspraak_datum < TRUNC (SYSDATE - 180)
|
||
ORDER BY bez_afspraak_key;
|
||
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
|
||
v_count_del NUMBER (10);
|
||
BEGIN
|
||
v_count_del := 0;
|
||
|
||
FOR rec IN c_afspraak
|
||
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 (p_applname,
|
||
'S',
|
||
'Afspraken/#verwijderd: ' || TO_CHAR (v_count_del),
|
||
'');
|
||
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.writelog (p_applname,
|
||
'E',
|
||
'Proces NACHTWERK afgebroken!',
|
||
v_errormsg);
|
||
COMMIT;
|
||
END djin_select_nachtwerk;
|
||
/
|
||
|
||
|
||
/* Formatted on 17-4-2015 17:30:14 (QP5 v5.136.908.31019) */
|
||
CREATE OR REPLACE VIEW DJIN_V_GRAPH_MLDOPEN_VAKGRP
|
||
(
|
||
FCLT_XAS_,
|
||
FCLT_YAS_, -- groen=op tijd
|
||
FCLT_YAS2_, -- oranje=te laat
|
||
VOLGORDE
|
||
)
|
||
AS
|
||
SELECT x.vakgroep_oms,
|
||
x.optijd groen,
|
||
x.totaal - x.optijd rood,
|
||
TO_CHAR (999999 - x.totaal) || x.vakgroep_oms volgorde
|
||
FROM ( SELECT md.ins_discipline_key,
|
||
sd.ins_srtdiscipline_prefix
|
||
|| '-'
|
||
|| md.ins_discipline_omschrijving
|
||
vakgroep_oms,
|
||
COUNT ( * ) totaal,
|
||
SUM(DECODE (
|
||
SIGN(m.mld_melding_einddatum_std
|
||
- TRUNC (SYSDATE, 'mi')),
|
||
-1,
|
||
0,
|
||
1))
|
||
optijd
|
||
FROM mld_melding m,
|
||
mld_stdmelding sm,
|
||
mld_discipline md,
|
||
ins_srtdiscipline sd
|
||
WHERE 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 sd.ins_srtdiscipline_key IN (3, 4)
|
||
GROUP BY md.ins_discipline_key,
|
||
sd.ins_srtdiscipline_prefix
|
||
|| '-'
|
||
|| md.ins_discipline_omschrijving) x
|
||
UNION ALL -- Extra kolom zodat voorgaande kolommen helemaal getoond?
|
||
SELECT ' ',
|
||
0,
|
||
0,
|
||
'999999'
|
||
FROM DUAL;
|
||
|
||
CREATE OR REPLACE VIEW DJIN_V_GRAPH_ORDOPEN_VAKGRP
|
||
(
|
||
FCLT_XAS_,
|
||
FCLT_YAS_, -- groen=op tijd
|
||
FCLT_YAS2_, -- oranje=te laat
|
||
VOLGORDE
|
||
)
|
||
AS
|
||
SELECT x.vakgroep_oms,
|
||
x.optijd groen,
|
||
x.totaal - x.optijd rood,
|
||
TO_CHAR (999999 - x.totaal) || x.vakgroep_oms volgorde
|
||
FROM ( SELECT md.ins_discipline_key,
|
||
sd.ins_srtdiscipline_prefix
|
||
|| '-'
|
||
|| md.ins_discipline_omschrijving
|
||
vakgroep_oms,
|
||
COUNT ( * ) totaal,
|
||
SUM(DECODE (
|
||
SIGN(m.mld_melding_einddatum_std
|
||
- TRUNC (SYSDATE, 'mi')),
|
||
-1,
|
||
0,
|
||
1))
|
||
optijd
|
||
FROM mld_opdr o,
|
||
mld_melding m,
|
||
mld_stdmelding sm,
|
||
mld_discipline md,
|
||
ins_srtdiscipline sd
|
||
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_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)
|
||
GROUP BY md.ins_discipline_key,
|
||
sd.ins_srtdiscipline_prefix
|
||
|| '-'
|
||
|| md.ins_discipline_omschrijving) x
|
||
UNION ALL -- Extra kolom zodat voorgaande kolommen helemaal getoond?
|
||
SELECT ' ',
|
||
0,
|
||
0,
|
||
'999999'
|
||
FROM DUAL;
|
||
|
||
CREATE OR REPLACE VIEW DJIN_V_GRAPH_MLDCLOSE_MND
|
||
(
|
||
FCLT_XAS_,
|
||
FCLT_YAS_OP_TIJD, -- groen=op tijd
|
||
FCLT_YAS2_TE_LAAT, -- oranje=te laat
|
||
VOLGORDE
|
||
)
|
||
AS
|
||
SELECT DECODE (SUBSTR (x.mnd, 5, 2),
|
||
'01', 'Januari',
|
||
'02', 'Februari',
|
||
'03', 'Maart',
|
||
'04', 'April',
|
||
'05', 'Mei',
|
||
'06', 'Juni',
|
||
'07', 'Juli',
|
||
'08', 'Augustus',
|
||
'09', 'September',
|
||
'10', 'Oktober',
|
||
'11', 'November',
|
||
'December'),
|
||
x.optijd groen,
|
||
x.totaal - x.optijd rood,
|
||
x.mnd volgorde
|
||
FROM ( SELECT TO_CHAR (t.fac_tracking_datum, 'yyyymm') mnd,
|
||
COUNT ( * ) totaal,
|
||
SUM(DECODE (
|
||
SIGN(m.mld_melding_einddatum_std
|
||
- TRUNC (t.fac_tracking_datum, 'mi')),
|
||
-1,
|
||
0,
|
||
1))
|
||
optijd
|
||
FROM fac_tracking t,
|
||
mld_melding m,
|
||
mld_stdmelding sm,
|
||
mld_discipline md,
|
||
ins_srtdiscipline sd
|
||
WHERE t.fac_srtnotificatie_key IN (38, 44) -- MLDAFM/MLDREJ
|
||
AND t.fac_tracking_datum BETWEEN ADD_MONTHS (
|
||
TRUNC (SYSDATE, 'mm'),
|
||
-11)
|
||
AND SYSDATE
|
||
AND t.fac_tracking_refkey = m.mld_melding_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 sd.ins_srtdiscipline_key IN (3, 4)
|
||
GROUP BY TO_CHAR (t.fac_tracking_datum, 'yyyymm')) x
|
||
UNION ALL -- Extra kolom zodat voorgaande kolommen helemaal getoond?
|
||
SELECT ' ',
|
||
0,
|
||
0,
|
||
'999999'
|
||
FROM DUAL;
|
||
|
||
CREATE OR REPLACE VIEW DJIN_V_GRAPH_ORDCLOSE_MND
|
||
(
|
||
FCLT_XAS_,
|
||
FCLT_YAS_OP_TIJD, -- groen=op tijd
|
||
FCLT_YAS2_TE_LAAT, -- oranje=te laat
|
||
VOLGORDE
|
||
)
|
||
AS
|
||
SELECT DECODE (SUBSTR (x.mnd, 5, 2),
|
||
'01', 'Januari',
|
||
'02', 'Februari',
|
||
'03', 'Maart',
|
||
'04', 'April',
|
||
'05', 'Mei',
|
||
'06', 'Juni',
|
||
'07', 'Juli',
|
||
'08', 'Augustus',
|
||
'09', 'September',
|
||
'10', 'Oktober',
|
||
'11', 'November',
|
||
'December'),
|
||
x.optijd groen,
|
||
x.totaal - x.optijd rood,
|
||
x.mnd volgorde
|
||
FROM ( SELECT TO_CHAR (t.fac_tracking_datum, 'yyyymm') mnd,
|
||
COUNT ( * ) totaal,
|
||
SUM(DECODE (
|
||
SIGN(m.mld_melding_einddatum_std
|
||
- TRUNC (t.fac_tracking_datum, 'mi')),
|
||
-1,
|
||
0,
|
||
1))
|
||
optijd
|
||
FROM fac_tracking t,
|
||
mld_opdr o,
|
||
mld_melding m,
|
||
mld_stdmelding sm,
|
||
mld_discipline md,
|
||
ins_srtdiscipline sd
|
||
WHERE t.fac_srtnotificatie_key IN (58, 69) -- ORDAFM/ORDCAN
|
||
AND t.fac_tracking_datum BETWEEN ADD_MONTHS (
|
||
TRUNC (SYSDATE, 'mm'),
|
||
-11)
|
||
AND SYSDATE
|
||
AND t.fac_tracking_refkey = o.mld_opdr_key
|
||
AND o.mld_melding_key = m.mld_melding_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 sd.ins_srtdiscipline_key IN (3, 4)
|
||
GROUP BY TO_CHAR (t.fac_tracking_datum, 'yyyymm')) x
|
||
UNION ALL -- Extra kolom zodat voorgaande kolommen helemaal getoond?
|
||
SELECT ' ',
|
||
0,
|
||
0,
|
||
'999999'
|
||
FROM DUAL;
|
||
|
||
/* Formatted on 20-4-2015 17:02:28 (QP5 v5.136.908.31019) */
|
||
CREATE OR REPLACE VIEW DJIN_V_GRAPH_MLDOPEN_DISTRICT
|
||
(
|
||
FCLT_XAS_,
|
||
FCLT_YAS_, -- groen=op tijd
|
||
FCLT_YAS2_, -- oranje=te laat
|
||
VOLGORDE
|
||
)
|
||
AS
|
||
SELECT x.alg_district_omschrijving,
|
||
x.optijd groen,
|
||
x.totaal - x.optijd rood,
|
||
TO_CHAR (999999 - x.totaal) || x.alg_district_omschrijving volgorde
|
||
FROM ( SELECT d.alg_district_key,
|
||
d.alg_district_omschrijving,
|
||
COUNT ( * ) totaal,
|
||
SUM(DECODE (
|
||
SIGN(m.mld_melding_einddatum_std
|
||
- TRUNC (SYSDATE, 'mi')),
|
||
-1,
|
||
0,
|
||
1))
|
||
optijd
|
||
FROM mld_melding m,
|
||
mld_stdmelding sm,
|
||
mld_discipline md,
|
||
ins_srtdiscipline sd,
|
||
alg_locatie l,
|
||
alg_district d
|
||
WHERE 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 sd.ins_srtdiscipline_key IN (3, 4)
|
||
AND m.mld_alg_locatie_key = l.alg_locatie_key
|
||
AND l.alg_district_key = d.alg_district_key
|
||
GROUP BY d.alg_district_key, d.alg_district_omschrijving) x
|
||
UNION ALL -- Extra kolom zodat voorgaande kolommen helemaal getoond?
|
||
SELECT ' ',
|
||
0,
|
||
0,
|
||
'999999'
|
||
FROM DUAL;
|
||
|
||
|
||
|
||
/* 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_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_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_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
|
||
/* 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_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, 'yyyy-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, 'yyyy-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
|
||
(
|
||
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;
|
||
|
||
CREATE OR REPLACE VIEW djin_v_rap_kpi_mld_urg
|
||
(
|
||
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, 'yyyy-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) -- 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-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
|
||
(
|
||
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;
|
||
|
||
CREATE OR REPLACE VIEW djin_v_rap_kpi_mld_vvg
|
||
(
|
||
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, 'yyyy-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, 'yyyy-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
|
||
(
|
||
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;
|
||
|
||
CREATE OR REPLACE VIEW djin_v_rap_kpi_klr
|
||
(
|
||
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, 'yyyy-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, 'yyyy-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
|
||
(
|
||
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;
|
||
|
||
/* 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_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 <20>n 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, 'yyyy-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, 'yyyy-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, 'yyyy-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, 'yyyy-iw'),
|
||
-1,
|
||
rr.res_ruimte_key,
|
||
ra.alg_ruimte_key
|
||
UNION ALL -- Eendaagse voorzieningen!
|
||
SELECT TO_CHAR (rrd.res_rsv_deel_tot, 'yyyy-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, 'yyyy-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, 'yyyy-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, 'yyyy-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
|
||
(
|
||
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;
|
||
|
||
CREATE OR REPLACE VIEW djin_v_rap_kpi_tot
|
||
(
|
||
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, 'yyyy-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, 'yyyy-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
|
||
(
|
||
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;
|
||
|
||
BEGIN adm.systrackscriptId('$Id$', 0); END;
|
||
/
|
||
BEGIN fac.registercustversion('DJIN', 7); END;
|
||
/
|
||
commit;
|
||
spool off
|