Files
Customer/DJIN/djin.sql
Maarten van der Heide ebb43af7e0 FCLT#56224 Schonen FAC_IMP_FILE+DJIN#57592 Anonimiseerscript(s)
svn path=/Customer/trunk/; revision=42843
2019-06-04 14:20:32 +00:00

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