Files
Customer/DJIN/djin.sql
Maarten van der Heide d44231d73b DJIN#58153 Rap/DVR-bijlagen (gestyled)
svn path=/Customer/trunk/; revision=45989
2020-02-26 13:16:12 +00:00

8446 lines
478 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);
v_old_melding_key NUMBER (10);
-- DJIN#60189: Kopieren opdrachtkenmerken naar meldingkenmerken
-- 282=Kosten (euro) (optioneel)+285=Leonardonummer+461=Werkzaamheden uitgevoerd door het locatieteam+
-- 621=Betreft schade door molest/vermissing+622=Veroorzaker schade/vermissing/2=Serviceaanvraagnummer+
-- 43=Naam leverancier+44=Opdrachtnummer leverancier
CURSOR c_o2m
IS
SELECT '[' || TO_CHAR (o.mld_melding_key) || '/' || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr) || '] ' aanduiding,
o.mld_melding_key, o.mld_srtkenmerk_key, o.mld_kenmerkopdr_waarde kow,
m.mld_kenmerk_key mkk, w.mld_kenmerkmelding_key kmk, w.mld_kenmerkmelding_waarde kmw
FROM (SELECT o.mld_melding_key, o.mld_opdr_bedrijfopdr_volgnr, k.mld_srtkenmerk_key, ko.mld_kenmerkopdr_waarde
FROM mld_kenmerk k, mld_v_aanwezigkenmerkopdr ko, mld_opdr o
WHERE k.mld_kenmerk_verwijder IS NULL
AND k.mld_srtkenmerk_key IN (282, 285, 461, 621, 622, 2, 43, 44)
AND k.mld_kenmerk_key = ko.mld_kenmerk_key
AND ko.mld_opdr_key = o.mld_opdr_key
AND NOT EXISTS -- Skip opdrachten met lager volgnummer
(SELECT 1
FROM mld_opdr
WHERE mld_melding_key = o.mld_melding_key
AND mld_opdr_bedrijfopdr_volgnr > o.mld_opdr_bedrijfopdr_volgnr)
AND EXISTS -- Beschouw zolang recent nog gewijzigd
(SELECT 1
FROM fac_tracking t, fac_srtnotificatie sn
WHERE t.fac_tracking_datum > SYSDATE - 7
AND t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
AND sn.fac_srtnotificatie_code LIKE 'ORD%'
AND t.fac_tracking_refkey = o.mld_opdr_key)) o, -- Van opdracht
( SELECT m.mld_melding_key, k.mld_srtkenmerk_key, MIN (k.mld_kenmerk_key) mld_kenmerk_key
FROM mld_melding m, mld_stdmelding sm, ins_tab_discipline td, mld_kenmerk k
WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = td.ins_discipline_key
AND ((sm.mld_stdmelding_key = k.mld_stdmelding_key AND k.mld_kenmerk_niveau = 'S')
OR (td.ins_discipline_key = k.mld_stdmelding_key AND k.mld_kenmerk_niveau = 'D')
OR (td.ins_srtdiscipline_key = k.mld_stdmelding_key AND k.mld_kenmerk_niveau = 'T'))
AND k.mld_kenmerk_verwijder IS NULL
AND k.mld_srtkenmerk_key IN (282, 285, 461, 621, 622, 2, 43, 44)
GROUP BY m.mld_melding_key, k.mld_srtkenmerk_key) m, -- Naar MIN(kenmerk) op melding
(SELECT km.mld_melding_key, k.mld_kenmerk_key, km.mld_kenmerkmelding_key, km.mld_kenmerkmelding_waarde
FROM mld_kenmerk k, mld_v_aanwezigkenmerkmelding km
WHERE k.mld_kenmerk_verwijder IS NULL
AND k.mld_srtkenmerk_key IN (282, 285, 461, 621, 622, 2, 43, 44)
AND km.mld_kenmerk_key = k.mld_kenmerk_key) w -- Eventuele huidige waarde van MIN(kenmerk)!
WHERE o.mld_melding_key = m.mld_melding_key
AND o.mld_srtkenmerk_key = m.mld_srtkenmerk_key
AND m.mld_melding_key = w.mld_melding_key(+)
AND m.mld_kenmerk_key = w.mld_kenmerk_key(+)
ORDER BY 2;
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);
-- DJIN#55344: Doorvoeren dat het kenmerkveld uit de (evt.) opdracht met
-- het hoogste volgnummer wordt gekopieerd/bijgewerkt in het
-- kenmerkveld bij de melding (zolang er mutaties plaatsvinden
-- plaatsvinden op de opdracht).
v_old_melding_key := -1;
FOR rec IN c_o2m
LOOP
v_errormsg := 'Fout bijwerken kenmerkveld';
BEGIN
IF rec.kmk IS NULL OR rec.kmw != rec.kow
THEN
IF v_old_melding_key = -1
THEN
v_old_melding_key := rec.mld_melding_key;
ELSIF rec.mld_melding_key != v_old_melding_key
THEN
fac.trackaction ('#MLDUPD', v_old_melding_key, NULL, NULL, 'Opdracht2Melding-sync uitgevoerd');
v_old_melding_key := rec.mld_melding_key;
END IF;
IF rec.kmk IS NULL
THEN
INSERT INTO mld_kenmerkmelding (mld_melding_key,
mld_kenmerk_key,
mld_kenmerkmelding_waarde)
VALUES (rec.mld_melding_key,
rec.mkk,
rec.kow);
ELSE
UPDATE mld_kenmerkmelding
SET mld_kenmerkmelding_waarde = rec.kow
WHERE mld_kenmerkmelding_key = rec.kmk;
END IF;
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 (p_applname, 'E', rec.aanduiding || v_errormsg, 'Opdracht2Melding-loop');
COMMIT;
END;
END LOOP;
IF v_old_melding_key != -1
THEN
fac.trackaction ('#MLDUPD', v_old_melding_key, NULL, NULL, 'Opdracht2Melding-sync uitgevoerd');
END IF;
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog (p_applname, 'E', 'Proces 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_DISCIPLINE_KEY,
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 ins_discipline_key,
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_DISCIPLINE_KEY,
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 mld_ins_discipline_key,
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_ins_discipline_key,
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_ins_discipline_key,
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_DISCIPLINE_KEY,
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 ins_discipline_key,
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_DISCIPLINE_KEY,
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 mld_ins_discipline_key,
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_ins_discipline_key,
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_ins_discipline_key,
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_DISCIPLINE_KEY,
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 ins_discipline_key,
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, -12), '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, -12), '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,
(SELECT *
FROM fac_v_aanwezigusrdata
WHERE fac_usrtab_key = 561) ud, -- KPI7
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, -12), '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),
'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_dvr_rpdc_cx
(
hide_f_sortering,
jaar,
periode,
kpi,
vestiging,
complex,
organisatie,
vakgroeptype,
vakgroep,
soortmelding,
aantal,
mldacp_optijd,
mldafm_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,
d.alg_district_omschrijving vt, l.alg_locatie_omschrijving cx,
sd.ins_srtdiscipline_omschrijving, md.ins_discipline_omschrijving, sm.mld_stdmelding_omschrijving,
COUNT ( * ) totaal,
SUM (DECODE (SIGN (m.mld_melding_acceptdatum_std - TRUNC (fac.gettrackingdate ('MLDACP', m.mld_melding_key), 'mi')), -1, 0, 1))
acpoptijd,
SUM (DECODE (SIGN (m.mld_melding_einddatum_std - TRUNC (t.fac_tracking_datum, 'mi')), -1, 0, 1))
afmoptijd
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!
mld_stdmelding sm,
mld_discipline md,
ins_srtdiscipline sd
WHERE t.fac_srtnotificatie_key = 38 -- MLDAFM
AND t.fac_tracking_datum > TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy')
AND t.fac_tracking_refkey = m.mld_melding_key
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.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
GROUP BY TO_CHAR (t.fac_tracking_datum, 'yyyy'),
CEIL (fac.safe_to_number (TO_CHAR (t.fac_tracking_datum, 'mm')) / 4),
d.alg_district_omschrijving, l.alg_locatie_omschrijving,
sd.ins_srtdiscipline_omschrijving, md.ins_discipline_omschrijving, sm.mld_stdmelding_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,
d.alg_district_omschrijving vt, l.alg_locatie_omschrijving cx,
sd.ins_srtdiscipline_omschrijving, md.ins_discipline_omschrijving,
COUNT ( * ) totaal,
SUM (DECODE (SIGN (m.mld_melding_acceptdatum_std - TRUNC (fac.gettrackingdate ('MLDACP', m.mld_melding_key), 'mi')), -1, 0, 1))
acpoptijd,
SUM (DECODE (SIGN (m.mld_melding_einddatum_std - TRUNC (t.fac_tracking_datum, 'mi')), -1, 0, 1))
afmoptijd
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!
mld_stdmelding sm,
mld_discipline md,
ins_srtdiscipline sd
WHERE t.fac_srtnotificatie_key = 38 -- MLDAFM
AND t.fac_tracking_datum > TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy')
AND t.fac_tracking_refkey = m.mld_melding_key
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_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
GROUP BY TO_CHAR (t.fac_tracking_datum, 'yyyy'),
CEIL (fac.safe_to_number (TO_CHAR (t.fac_tracking_datum, 'mm')) / 4),
d.alg_district_omschrijving, l.alg_locatie_omschrijving,
sd.ins_srtdiscipline_omschrijving, md.ins_discipline_omschrijving),
mldkpi6t5 -- 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,
d.alg_district_omschrijving vt, l.alg_locatie_omschrijving cx,
sd.ins_srtdiscipline_omschrijving, md.ins_discipline_omschrijving, sm.mld_stdmelding_omschrijving,
COUNT ( * ) totaal,
SUM (DECODE (SIGN (m.mld_melding_acceptdatum_std - TRUNC (fac.gettrackingdate ('MLDACP', m.mld_melding_key), 'mi')), -1, 0, 1))
acpoptijd,
SUM (DECODE (SIGN (m.mld_melding_einddatum_std - TRUNC (t.fac_tracking_datum, 'mi')), -1, 0, 1))
afmoptijd
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!
mld_stdmelding sm,
mld_discipline md,
ins_srtdiscipline sd
WHERE t.fac_srtnotificatie_key = 38 -- MLDAFM
AND t.fac_tracking_datum > TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy')
AND t.fac_tracking_refkey = m.mld_melding_key
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_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
GROUP BY TO_CHAR (t.fac_tracking_datum, 'yyyy'),
CEIL (fac.safe_to_number (TO_CHAR (t.fac_tracking_datum, 'mm')) / 4),
d.alg_district_omschrijving, l.alg_locatie_omschrijving,
sd.ins_srtdiscipline_omschrijving, md.ins_discipline_omschrijving, sm.mld_stdmelding_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,
d.alg_district_omschrijving vt, l.alg_locatie_omschrijving cx,
--sd.ins_srtdiscipline_omschrijving, md.ins_discipline_omschrijving,
COALESCE (pd.fac_usrdata_omschr, '???') mld_stdmelding_omschrijving,
COUNT ( * ) totaal,
SUM (DECODE (SIGN (m.mld_melding_acceptdatum_std - TRUNC (fac.gettrackingdate ('MLDACP', m.mld_melding_key), 'mi')), -1, 0, 1))
acpoptijd,
SUM (DECODE (SIGN (m.mld_melding_einddatum_std - TRUNC (t.fac_tracking_datum, 'mi')), -1, 0, 1))
afmoptijd
FROM fac_tracking t,
mld_melding m,
(SELECT *
FROM fac_v_aanwezigusrdata
WHERE fac_usrtab_key = 561) ud, -- KPI7
alg_locatie l, -- Ook verwijderde locaties
alg_district d, -- en verwijderde districten!
--mld_stdmelding sm,
--mld_discipline md,
--ins_srtdiscipline sd,
(SELECT *
FROM mld_v_aanwezigkenmerkmelding km
WHERE EXISTS
(SELECT 1
FROM mld_kenmerk
WHERE mld_srtkenmerk_key = 541 -- Product / Dienst
AND mld_kenmerk_key = km.mld_kenmerk_key)) km,
(SELECT *
FROM fac_v_aanwezigusrdata
WHERE fac_usrtab_key = 461) pd -- Product / Dienst
WHERE t.fac_srtnotificatie_key = 38 -- MLDAFM
AND t.fac_tracking_datum > TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy')
AND t.fac_tracking_refkey = m.mld_melding_key
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_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_melding_key = km.mld_melding_key(+)
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = pd.fac_usrdata_key(+)
GROUP BY TO_CHAR (t.fac_tracking_datum, 'yyyy'),
CEIL (fac.safe_to_number (TO_CHAR (t.fac_tracking_datum, 'mm')) / 4),
d.alg_district_omschrijving, l.alg_locatie_omschrijving,
--sd.ins_srtdiscipline_omschrijving, md.ins_discipline_omschrijving,
pd.fac_usrdata_omschr)
SELECT jaar || periode || '1' || vt || cx sortering,
jaar, periode, '2. Meldingen urgente storingen' kpi,
vt, cx, NULL org,
ins_srtdiscipline_omschrijving, ins_discipline_omschrijving, mld_stdmelding_omschrijving,
totaal, acpoptijd, afmoptijd
FROM mldkpi2
UNION ALL
SELECT jaar || periode || '2' || vt || cx sortering,
jaar, periode, '6. Alle dienstverlening' kpi,
vt, cx, NULL org,
ins_srtdiscipline_omschrijving, ins_discipline_omschrijving, NULL mld_stdmelding_omschrijving,
totaal, acpoptijd, afmoptijd
FROM mldkpi6
UNION ALL
SELECT jaar || periode || '3' || vt || cx sortering,
jaar, periode, '6. Top 5 onder de norm' kpi,
vt, cx, NULL org,
ins_srtdiscipline_omschrijving, ins_discipline_omschrijving, mld_stdmelding_omschrijving,
totaal, acpoptijd, afmoptijd
FROM ( SELECT jaar, periode, vt, cx,
ins_srtdiscipline_omschrijving, ins_discipline_omschrijving, mld_stdmelding_omschrijving,
totaal, acpoptijd, afmoptijd,
RANK () OVER (PARTITION BY jaar, periode, vt, cx ORDER BY totaal DESC) rnk
FROM mldkpi6t5
WHERE afmoptijd / totaal < 0.8)
WHERE rnk <= 5
UNION ALL
SELECT jaar || periode || '4' || vt || cx sortering,
jaar, periode, '7. Afhandeling klachten' kpi,
vt, cx, NULL org,
NULL ins_srtdiscipline_omschrijving, NULL ins_discipline_omschrijving, mld_stdmelding_omschrijving,
totaal, acpoptijd, afmoptijd
FROM mldkpi7;
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, -12), '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, -12), '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,
(SELECT *
FROM fac_v_aanwezigusrdata
WHERE fac_usrtab_key = 561) ud, -- KPI7
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, -12), '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),
'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_dvr_rpdc_org
(
hide_f_sortering,
jaar,
periode,
kpi,
vestiging,
complex,
organisatie,
vakgroeptype,
vakgroep,
soortmelding,
aantal,
mldacp_optijd,
mldafm_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,
d.alg_district_omschrijving vt, l.alg_locatie_omschrijving cx,
a.prs_afdeling_key, a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving org,
sd.ins_srtdiscipline_omschrijving, md.ins_discipline_omschrijving, sm.mld_stdmelding_omschrijving,
COUNT ( * ) totaal,
SUM (DECODE (SIGN (m.mld_melding_acceptdatum_std - TRUNC (fac.gettrackingdate ('MLDACP', m.mld_melding_key), 'mi')), -1, 0, 1))
acpoptijd,
SUM (DECODE (SIGN (m.mld_melding_einddatum_std - TRUNC (t.fac_tracking_datum, 'mi')), -1, 0, 1))
afmoptijd
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,
mld_stdmelding sm,
mld_discipline md,
ins_srtdiscipline sd
WHERE t.fac_srtnotificatie_key = 38 -- MLDAFM
AND t.fac_tracking_datum > TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy')
AND t.fac_tracking_refkey = m.mld_melding_key
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
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
GROUP BY TO_CHAR (t.fac_tracking_datum, 'yyyy'),
CEIL (fac.safe_to_number (TO_CHAR (t.fac_tracking_datum, 'mm')) / 4),
d.alg_district_omschrijving, l.alg_locatie_omschrijving,
a.prs_afdeling_key, a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving,
sd.ins_srtdiscipline_omschrijving, md.ins_discipline_omschrijving, sm.mld_stdmelding_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,
d.alg_district_omschrijving vt, l.alg_locatie_omschrijving cx,
a.prs_afdeling_key, a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving org,
sd.ins_srtdiscipline_omschrijving, md.ins_discipline_omschrijving,
COUNT ( * ) totaal,
SUM (DECODE (SIGN (m.mld_melding_acceptdatum_std - TRUNC (fac.gettrackingdate ('MLDACP', m.mld_melding_key), 'mi')), -1, 0, 1))
acpoptijd,
SUM (DECODE (SIGN (m.mld_melding_einddatum_std - TRUNC (t.fac_tracking_datum, 'mi')), -1, 0, 1))
afmoptijd
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,
mld_stdmelding sm,
mld_discipline md,
ins_srtdiscipline sd
WHERE t.fac_srtnotificatie_key = 38 -- MLDAFM
AND t.fac_tracking_datum > TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy')
AND t.fac_tracking_refkey = m.mld_melding_key
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_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
GROUP BY TO_CHAR (t.fac_tracking_datum, 'yyyy'),
CEIL (fac.safe_to_number (TO_CHAR (t.fac_tracking_datum, 'mm')) / 4),
d.alg_district_omschrijving, l.alg_locatie_omschrijving,
a.prs_afdeling_key, a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving,
sd.ins_srtdiscipline_omschrijving, md.ins_discipline_omschrijving),
mldkpi6t5 -- 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,
d.alg_district_omschrijving vt, l.alg_locatie_omschrijving cx,
a.prs_afdeling_key, a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving org,
sd.ins_srtdiscipline_omschrijving, md.ins_discipline_omschrijving, sm.mld_stdmelding_omschrijving,
COUNT ( * ) totaal,
SUM (DECODE (SIGN (m.mld_melding_acceptdatum_std - TRUNC (fac.gettrackingdate ('MLDACP', m.mld_melding_key), 'mi')), -1, 0, 1))
acpoptijd,
SUM (DECODE (SIGN (m.mld_melding_einddatum_std - TRUNC (t.fac_tracking_datum, 'mi')), -1, 0, 1))
afmoptijd
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,
mld_stdmelding sm,
mld_discipline md,
ins_srtdiscipline sd
WHERE t.fac_srtnotificatie_key = 38 -- MLDAFM
AND t.fac_tracking_datum > TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy')
AND t.fac_tracking_refkey = m.mld_melding_key
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_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.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),
d.alg_district_omschrijving, l.alg_locatie_omschrijving,
a.prs_afdeling_key, a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving,
sd.ins_srtdiscipline_omschrijving, md.ins_discipline_omschrijving, sm.mld_stdmelding_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,
d.alg_district_omschrijving vt, l.alg_locatie_omschrijving cx,
a.prs_afdeling_key, a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving org,
--sd.ins_srtdiscipline_omschrijving, md.ins_discipline_omschrijving,
pd.fac_usrdata_omschr mld_stdmelding_omschrijving,
COUNT ( * ) totaal,
SUM (DECODE (SIGN (m.mld_melding_acceptdatum_std - TRUNC (fac.gettrackingdate ('MLDACP', m.mld_melding_key), 'mi')), -1, 0, 1))
acpoptijd,
SUM (DECODE (SIGN (m.mld_melding_einddatum_std - TRUNC (t.fac_tracking_datum, 'mi')), -1, 0, 1))
afmoptijd
FROM fac_tracking t,
mld_melding m,
(SELECT *
FROM fac_v_aanwezigusrdata
WHERE fac_usrtab_key = 561) ud, -- KPI7
alg_locatie l, -- Ook verwijderde locaties
alg_district d, -- en verwijderde districten!
prs_perslid p,
prs_afdeling a,
--mld_stdmelding sm,
--mld_discipline md,
--ins_srtdiscipline sd,
(SELECT *
FROM mld_v_aanwezigkenmerkmelding km
WHERE EXISTS
(SELECT 1
FROM mld_kenmerk
WHERE mld_srtkenmerk_key = 541 -- Product / Dienst
AND mld_kenmerk_key = km.mld_kenmerk_key)) km,
(SELECT *
FROM fac_v_aanwezigusrdata
WHERE fac_usrtab_key = 461) pd -- Product / Dienst
WHERE t.fac_srtnotificatie_key = 38 -- MLDAFM
AND t.fac_tracking_datum > TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy')
AND t.fac_tracking_refkey = m.mld_melding_key
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_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_melding_key = km.mld_melding_key(+)
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = pd.fac_usrdata_key(+)
GROUP BY TO_CHAR (t.fac_tracking_datum, 'yyyy'),
CEIL (fac.safe_to_number (TO_CHAR (t.fac_tracking_datum, 'mm')) / 4),
d.alg_district_omschrijving, l.alg_locatie_omschrijving,
a.prs_afdeling_key, a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving,
--sd.ins_srtdiscipline_omschrijving, md.ins_discipline_omschrijving,
pd.fac_usrdata_omschr)
SELECT jaar || periode || '1' || vt || cx || org sortering,
jaar, periode, '2. Meldingen urgente storingen' kpi,
vt, cx, org,
ins_srtdiscipline_omschrijving, ins_discipline_omschrijving, mld_stdmelding_omschrijving,
totaal, acpoptijd, afmoptijd
FROM mldkpi2
UNION ALL
SELECT jaar || periode || '2' || vt || cx || org sortering,
jaar, periode, '6. Alle dienstverlening' kpi,
vt, cx, org,
ins_srtdiscipline_omschrijving, ins_discipline_omschrijving, NULL mld_stdmelding_omschrijving,
totaal, acpoptijd, afmoptijd
FROM mldkpi6
UNION ALL
SELECT jaar || periode || '3' || vt || cx || org sortering,
jaar, periode, '6. Top 5 onder de norm' kpi,
vt, cx, org,
ins_srtdiscipline_omschrijving, ins_discipline_omschrijving, mld_stdmelding_omschrijving,
totaal, acpoptijd, afmoptijd
FROM ( SELECT jaar, periode, vt, cx, org,
ins_srtdiscipline_omschrijving, ins_discipline_omschrijving, mld_stdmelding_omschrijving,
totaal, acpoptijd, afmoptijd,
RANK () OVER (PARTITION BY jaar, periode, vt, cx, org ORDER BY totaal DESC) rnk
FROM mldkpi6t5
WHERE afmoptijd / totaal < 0.8)
WHERE rnk <= 5
UNION ALL
SELECT jaar || periode || '4' || vt || cx || org sortering,
jaar, periode, '7. Afhandeling klachten' kpi,
vt, cx, org,
NULL ins_srtdiscipline_omschrijving, NULL ins_discipline_omschrijving, mld_stdmelding_omschrijving,
totaal, acpoptijd, afmoptijd
FROM mldkpi7;
CREATE OR REPLACE VIEW djin_v_rap_dvl_rpdc_orgonly
(
hide_f_sortering,
jaar,
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,
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
prs_perslid p,
prs_afdeling a
WHERE t.fac_srtnotificatie_key = 38 -- MLDAFM
AND t.fac_tracking_datum > TRUNC (ADD_MONTHS (SYSDATE, -12), '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.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',
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,
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
prs_perslid p,
prs_afdeling a
WHERE t.fac_srtnotificatie_key = 38 -- MLDAFM
AND t.fac_tracking_datum > TRUNC (ADD_MONTHS (SYSDATE, -12), '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.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',
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,
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 = 561) ud, -- KPI7
prs_perslid p,
prs_afdeling a
WHERE t.fac_srtnotificatie_key = 38 -- MLDAFM
AND t.fac_tracking_datum > TRUNC (ADD_MONTHS (SYSDATE, -12), '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.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',
a.prs_afdeling_key, a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving)
SELECT jaar || org || '1', jaar, 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 || org || '1', jaar, org, kpi
UNION ALL -- Nul-regel voor deze kpi per jaar/org voorkomend in andere kpi's!
SELECT x.jaar || x.org || '1', x.jaar, x.org,
'2. Meldingen urgente storingen', 0, 0, 0, 0, 0, 0
FROM (SELECT jaar, prs_afdeling_key, org FROM mldkpi6 UNION SELECT jaar, prs_afdeling_key, org FROM mldkpi7) x
WHERE NOT EXISTS (SELECT 1 FROM mldkpi2 WHERE jaar = x.jaar AND prs_afdeling_key = x.prs_afdeling_key)
UNION ALL
SELECT jaar || org || '2', jaar, 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 || org || '2', jaar, org, kpi
UNION ALL -- Nul-regel voor deze kpi per jaar/org voorkomend in andere kpi's!
SELECT x.jaar || x.org || '1', x.jaar, x.org,
'6. Alle dienstverlening', 0, 0, 0, 0, 0, 0
FROM (SELECT jaar, prs_afdeling_key, org FROM mldkpi2 UNION SELECT jaar, prs_afdeling_key, org FROM mldkpi7) x
WHERE NOT EXISTS (SELECT 1 FROM mldkpi6 WHERE jaar = x.jaar AND prs_afdeling_key = x.prs_afdeling_key)
UNION ALL
SELECT jaar || org || '3', jaar, 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 || org || '3', jaar, org, kpi
UNION ALL -- Nul-regel voor deze kpi per jaar/org voorkomend in andere kpi's!
SELECT x.jaar || x.org || '1', x.jaar, x.org,
'7. Afhandeling klachten', 0, 0, 0, 0, 0, 0
FROM (SELECT jaar, prs_afdeling_key, org FROM mldkpi2 UNION SELECT jaar, prs_afdeling_key, org FROM mldkpi6) x
WHERE NOT EXISTS (SELECT 1 FROM mldkpi7 WHERE jaar = x.jaar 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, -12), '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, -12), '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 KPI6ab-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, -12), '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 KPI6ab-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, -12), '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,
(SELECT *
FROM fac_v_aanwezigusrdata
WHERE fac_usrtab_key = 561) ud, -- KPI7
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, -12), '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),
'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_dvr_spec_cx
(
hide_f_sortering,
jaar,
periode,
kpi,
vestiging,
complex,
organisatie,
vakgroeptype,
vakgroep,
soortmelding,
aantal,
mldacp_optijd,
mldafm_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,
d.alg_district_omschrijving vt, l.alg_locatie_omschrijving cx,
sd.ins_srtdiscipline_omschrijving, md.ins_discipline_omschrijving, sm.mld_stdmelding_omschrijving,
COUNT ( * ) totaal,
SUM (DECODE (SIGN (m.mld_melding_acceptdatum_std - TRUNC (fac.gettrackingdate ('MLDACP', m.mld_melding_key), 'mi')), -1, 0, 1))
acpoptijd,
SUM (DECODE (SIGN (m.mld_melding_einddatum_std - TRUNC (t.fac_tracking_datum, 'mi')), -1, 0, 1))
afmoptijd
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!
mld_stdmelding sm,
mld_discipline md,
ins_srtdiscipline sd
WHERE t.fac_srtnotificatie_key = 38 -- MLDAFM
AND t.fac_tracking_datum > TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy')
AND t.fac_tracking_refkey = m.mld_melding_key
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.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
GROUP BY TO_CHAR (t.fac_tracking_datum, 'yyyy'),
CEIL (fac.safe_to_number (TO_CHAR (t.fac_tracking_datum, 'mm')) / 2),
d.alg_district_omschrijving, l.alg_locatie_omschrijving,
sd.ins_srtdiscipline_omschrijving, md.ins_discipline_omschrijving, sm.mld_stdmelding_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,
d.alg_district_omschrijving vt, l.alg_locatie_omschrijving cx,
sd.ins_srtdiscipline_omschrijving, md.ins_discipline_omschrijving,
COUNT ( * ) totaal,
SUM (DECODE (SIGN (m.mld_melding_acceptdatum_std - TRUNC (fac.gettrackingdate ('MLDACP', m.mld_melding_key), 'mi')), -1, 0, 1))
acpoptijd,
SUM (DECODE (SIGN (m.mld_melding_einddatum_std - TRUNC (t.fac_tracking_datum, 'mi')), -1, 0, 1))
afmoptijd
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!
mld_stdmelding sm,
mld_discipline md,
ins_srtdiscipline sd
WHERE t.fac_srtnotificatie_key = 38 -- MLDAFM
AND t.fac_tracking_datum > TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy')
AND t.fac_tracking_refkey = m.mld_melding_key
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_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
GROUP BY TO_CHAR (t.fac_tracking_datum, 'yyyy'),
CEIL (fac.safe_to_number (TO_CHAR (t.fac_tracking_datum, 'mm')) / 2),
d.alg_district_omschrijving, l.alg_locatie_omschrijving,
sd.ins_srtdiscipline_omschrijving, md.ins_discipline_omschrijving),
mldkpi6t5 -- 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,
d.alg_district_omschrijving vt, l.alg_locatie_omschrijving cx,
sd.ins_srtdiscipline_omschrijving, md.ins_discipline_omschrijving, sm.mld_stdmelding_omschrijving,
COUNT ( * ) totaal,
SUM (DECODE (SIGN (m.mld_melding_acceptdatum_std - TRUNC (fac.gettrackingdate ('MLDACP', m.mld_melding_key), 'mi')), -1, 0, 1))
acpoptijd,
SUM (DECODE (SIGN (m.mld_melding_einddatum_std - TRUNC (t.fac_tracking_datum, 'mi')), -1, 0, 1))
afmoptijd
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!
mld_stdmelding sm,
mld_discipline md,
ins_srtdiscipline sd
WHERE t.fac_srtnotificatie_key = 38 -- MLDAFM
AND t.fac_tracking_datum > TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy')
AND t.fac_tracking_refkey = m.mld_melding_key
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_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
GROUP BY TO_CHAR (t.fac_tracking_datum, 'yyyy'),
CEIL (fac.safe_to_number (TO_CHAR (t.fac_tracking_datum, 'mm')) / 2),
d.alg_district_omschrijving, l.alg_locatie_omschrijving,
sd.ins_srtdiscipline_omschrijving, md.ins_discipline_omschrijving, sm.mld_stdmelding_omschrijving),
mldkpi6a -- Per complex volgens KPI6ab-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,
d.alg_district_omschrijving vt, l.alg_locatie_omschrijving cx,
sd.ins_srtdiscipline_omschrijving, md.ins_discipline_omschrijving, sm.mld_stdmelding_omschrijving,
COUNT ( * ) totaal,
SUM (DECODE (SIGN (m.mld_melding_acceptdatum_std - TRUNC (fac.gettrackingdate ('MLDACP', m.mld_melding_key), 'mi')), -1, 0, 1))
acpoptijd,
SUM (DECODE (SIGN (m.mld_melding_einddatum_std - TRUNC (t.fac_tracking_datum, 'mi')), -1, 0, 1))
afmoptijd
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!
mld_stdmelding sm,
mld_discipline md,
ins_srtdiscipline sd
WHERE t.fac_srtnotificatie_key = 38 -- MLDAFM
AND t.fac_tracking_datum > TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy')
AND t.fac_tracking_refkey = m.mld_melding_key
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_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
GROUP BY TO_CHAR (t.fac_tracking_datum, 'yyyy'),
CEIL (fac.safe_to_number (TO_CHAR (t.fac_tracking_datum, 'mm')) / 2),
d.alg_district_omschrijving, l.alg_locatie_omschrijving,
sd.ins_srtdiscipline_omschrijving, md.ins_discipline_omschrijving, sm.mld_stdmelding_omschrijving),
mldkpi6b -- Per complex volgens KPI6ab-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,
d.alg_district_omschrijving vt, l.alg_locatie_omschrijving cx,
sd.ins_srtdiscipline_omschrijving, md.ins_discipline_omschrijving, sm.mld_stdmelding_omschrijving,
COUNT ( * ) totaal,
SUM (DECODE (SIGN (m.mld_melding_acceptdatum_std - TRUNC (fac.gettrackingdate ('MLDACP', m.mld_melding_key), 'mi')), -1, 0, 1))
acpoptijd,
SUM (DECODE (SIGN (m.mld_melding_einddatum_std - TRUNC (t.fac_tracking_datum, 'mi')), -1, 0, 1))
afmoptijd
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!
mld_stdmelding sm,
mld_discipline md,
ins_srtdiscipline sd,
(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, -12), 'yyyy')
AND t.fac_tracking_refkey = m.mld_melding_key
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_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_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),
d.alg_district_omschrijving, l.alg_locatie_omschrijving,
sd.ins_srtdiscipline_omschrijving, md.ins_discipline_omschrijving, sm.mld_stdmelding_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,
d.alg_district_omschrijving vt, l.alg_locatie_omschrijving cx,
--sd.ins_srtdiscipline_omschrijving, md.ins_discipline_omschrijving,
pd.fac_usrdata_omschr mld_stdmelding_omschrijving,
COUNT ( * ) totaal,
SUM (DECODE (SIGN (m.mld_melding_acceptdatum_std - TRUNC (fac.gettrackingdate ('MLDACP', m.mld_melding_key), 'mi')), -1, 0, 1))
acpoptijd,
SUM (DECODE (SIGN (m.mld_melding_einddatum_std - TRUNC (t.fac_tracking_datum, 'mi')), -1, 0, 1))
afmoptijd
FROM fac_tracking t,
mld_melding m,
(SELECT *
FROM fac_v_aanwezigusrdata
WHERE fac_usrtab_key = 561) ud, -- KPI7
alg_locatie l, -- Ook verwijderde locaties
alg_district d, -- en verwijderde districten!
--mld_stdmelding sm,
--mld_discipline md,
--ins_srtdiscipline sd,
(SELECT *
FROM mld_v_aanwezigkenmerkmelding km
WHERE EXISTS
(SELECT 1
FROM mld_kenmerk
WHERE mld_srtkenmerk_key = 541 -- Product / Dienst
AND mld_kenmerk_key = km.mld_kenmerk_key)) km,
(SELECT *
FROM fac_v_aanwezigusrdata
WHERE fac_usrtab_key = 461) pd -- Product / Dienst
WHERE t.fac_srtnotificatie_key = 38 -- MLDAFM
AND t.fac_tracking_datum > TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy')
AND t.fac_tracking_refkey = m.mld_melding_key
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_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_melding_key = km.mld_melding_key(+)
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = pd.fac_usrdata_key(+)
GROUP BY TO_CHAR (t.fac_tracking_datum, 'yyyy'),
CEIL (fac.safe_to_number (TO_CHAR (t.fac_tracking_datum, 'mm')) / 2),
d.alg_district_omschrijving, l.alg_locatie_omschrijving,
--sd.ins_srtdiscipline_omschrijving, md.ins_discipline_omschrijving,
pd.fac_usrdata_omschr)
SELECT jaar || periode || '1' || vt || cx sortering,
jaar, periode, '2. Meldingen urgente storingen' kpi,
vt, cx, NULL org,
ins_srtdiscipline_omschrijving, ins_discipline_omschrijving, mld_stdmelding_omschrijving,
totaal, acpoptijd, afmoptijd
FROM mldkpi2
UNION ALL
SELECT jaar || periode || '2' || vt || cx sortering,
jaar, periode, '6. Alle dienstverlening' kpi,
vt, cx, NULL org,
ins_srtdiscipline_omschrijving, ins_discipline_omschrijving, NULL mld_stdmelding_omschrijving,
totaal, acpoptijd, afmoptijd
FROM mldkpi6
UNION ALL
SELECT jaar || periode || '3' || vt || cx sortering,
jaar, periode, '6. Top 5 onder de norm' kpi,
vt, cx, NULL org,
ins_srtdiscipline_omschrijving, ins_discipline_omschrijving, mld_stdmelding_omschrijving,
totaal, acpoptijd, afmoptijd
FROM ( SELECT jaar, periode, vt, cx,
ins_srtdiscipline_omschrijving, ins_discipline_omschrijving, mld_stdmelding_omschrijving,
totaal, acpoptijd, afmoptijd,
RANK () OVER (PARTITION BY jaar, periode, vt, cx ORDER BY totaal DESC) rnk
FROM mldkpi6t5
WHERE afmoptijd / totaal < 0.8)
WHERE rnk <= 5
UNION ALL
SELECT jaar || periode || '4' || vt || cx sortering,
jaar, periode, '6a. Meldingen gebouwbeheer' kpi,
vt, cx, NULL org,
ins_srtdiscipline_omschrijving, ins_discipline_omschrijving, mld_stdmelding_omschrijving,
totaal, acpoptijd, afmoptijd
FROM mldkpi6a
UNION ALL
SELECT jaar || periode || '5' || vt || cx sortering,
jaar, periode, '6b. Meldingen gebouwbeheer RVB' kpi,
vt, cx, NULL org,
ins_srtdiscipline_omschrijving, ins_discipline_omschrijving, mld_stdmelding_omschrijving,
totaal, acpoptijd, afmoptijd
FROM mldkpi6b
UNION ALL
SELECT jaar || periode || '6' || vt || cx sortering,
jaar, periode, '7. Afhandeling klachten' kpi,
vt, cx, NULL org,
NULL ins_srtdiscipline_omschrijving, NULL ins_discipline_omschrijving, mld_stdmelding_omschrijving,
totaal, acpoptijd, afmoptijd
FROM mldkpi7;
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, -12), '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, -12), '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 KPI6ab-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, -12), '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, -12), '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,
(SELECT *
FROM fac_v_aanwezigusrdata
WHERE fac_usrtab_key = 561) ud, -- KPI7
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, -12), '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),
'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_dvr_spec_org
(
hide_f_sortering,
jaar,
periode,
kpi,
vestiging,
complex,
organisatie,
vakgroeptype,
vakgroep,
soortmelding,
aantal,
mldacp_optijd,
mldafm_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,
d.alg_district_omschrijving vt, l.alg_locatie_omschrijving cx,
a.prs_afdeling_key, a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving org,
sd.ins_srtdiscipline_omschrijving, md.ins_discipline_omschrijving, sm.mld_stdmelding_omschrijving,
COUNT ( * ) totaal,
SUM (DECODE (SIGN (m.mld_melding_acceptdatum_std - TRUNC (fac.gettrackingdate ('MLDACP', m.mld_melding_key), 'mi')), -1, 0, 1))
acpoptijd,
SUM (DECODE (SIGN (m.mld_melding_einddatum_std - TRUNC (t.fac_tracking_datum, 'mi')), -1, 0, 1))
afmoptijd
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,
mld_stdmelding sm,
mld_discipline md,
ins_srtdiscipline sd
WHERE t.fac_srtnotificatie_key = 38 -- MLDAFM
AND t.fac_tracking_datum > TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy')
AND t.fac_tracking_refkey = m.mld_melding_key
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
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
GROUP BY TO_CHAR (t.fac_tracking_datum, 'yyyy'),
CEIL (fac.safe_to_number (TO_CHAR (t.fac_tracking_datum, 'mm')) / 2),
d.alg_district_omschrijving, l.alg_locatie_omschrijving,
a.prs_afdeling_key, a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving,
sd.ins_srtdiscipline_omschrijving, md.ins_discipline_omschrijving, sm.mld_stdmelding_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,
d.alg_district_omschrijving vt, l.alg_locatie_omschrijving cx,
a.prs_afdeling_key, a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving org,
sd.ins_srtdiscipline_omschrijving, md.ins_discipline_omschrijving,
COUNT ( * ) totaal,
SUM (DECODE (SIGN (m.mld_melding_acceptdatum_std - TRUNC (fac.gettrackingdate ('MLDACP', m.mld_melding_key), 'mi')), -1, 0, 1))
acpoptijd,
SUM (DECODE (SIGN (m.mld_melding_einddatum_std - TRUNC (t.fac_tracking_datum, 'mi')), -1, 0, 1))
afmoptijd
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,
mld_stdmelding sm,
mld_discipline md,
ins_srtdiscipline sd
WHERE t.fac_srtnotificatie_key = 38 -- MLDAFM
AND t.fac_tracking_datum > TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy')
AND t.fac_tracking_refkey = m.mld_melding_key
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_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
GROUP BY TO_CHAR (t.fac_tracking_datum, 'yyyy'),
CEIL (fac.safe_to_number (TO_CHAR (t.fac_tracking_datum, 'mm')) / 2),
d.alg_district_omschrijving, l.alg_locatie_omschrijving,
a.prs_afdeling_key, a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving,
sd.ins_srtdiscipline_omschrijving, md.ins_discipline_omschrijving),
mldkpi6t5 -- 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,
d.alg_district_omschrijving vt, l.alg_locatie_omschrijving cx,
a.prs_afdeling_key, a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving org,
sd.ins_srtdiscipline_omschrijving, md.ins_discipline_omschrijving, sm.mld_stdmelding_omschrijving,
COUNT ( * ) totaal,
SUM (DECODE (SIGN (m.mld_melding_acceptdatum_std - TRUNC (fac.gettrackingdate ('MLDACP', m.mld_melding_key), 'mi')), -1, 0, 1))
acpoptijd,
SUM (DECODE (SIGN (m.mld_melding_einddatum_std - TRUNC (t.fac_tracking_datum, 'mi')), -1, 0, 1))
afmoptijd
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,
mld_stdmelding sm,
mld_discipline md,
ins_srtdiscipline sd
WHERE t.fac_srtnotificatie_key = 38 -- MLDAFM
AND t.fac_tracking_datum > TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy')
AND t.fac_tracking_refkey = m.mld_melding_key
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_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
GROUP BY TO_CHAR (t.fac_tracking_datum, 'yyyy'),
CEIL (fac.safe_to_number (TO_CHAR (t.fac_tracking_datum, 'mm')) / 2),
d.alg_district_omschrijving, l.alg_locatie_omschrijving,
a.prs_afdeling_key, a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving,
sd.ins_srtdiscipline_omschrijving, md.ins_discipline_omschrijving, sm.mld_stdmelding_omschrijving),
mldkpi6a -- Per complex volgens KPI6ab-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,
d.alg_district_omschrijving vt, l.alg_locatie_omschrijving cx,
a.prs_afdeling_key, a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving org,
sd.ins_srtdiscipline_omschrijving, md.ins_discipline_omschrijving, sm.mld_stdmelding_omschrijving,
COUNT ( * ) totaal,
SUM (DECODE (SIGN (m.mld_melding_acceptdatum_std - TRUNC (fac.gettrackingdate ('MLDACP', m.mld_melding_key), 'mi')), -1, 0, 1))
acpoptijd,
SUM (DECODE (SIGN (m.mld_melding_einddatum_std - TRUNC (t.fac_tracking_datum, 'mi')), -1, 0, 1))
afmoptijd
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,
mld_stdmelding sm,
mld_discipline md,
ins_srtdiscipline sd
WHERE t.fac_srtnotificatie_key = 38 -- MLDAFM
AND t.fac_tracking_datum > TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy')
AND t.fac_tracking_refkey = m.mld_melding_key
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_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
GROUP BY TO_CHAR (t.fac_tracking_datum, 'yyyy'),
CEIL (fac.safe_to_number (TO_CHAR (t.fac_tracking_datum, 'mm')) / 2),
d.alg_district_omschrijving, l.alg_locatie_omschrijving,
a.prs_afdeling_key, a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving,
sd.ins_srtdiscipline_omschrijving, md.ins_discipline_omschrijving, sm.mld_stdmelding_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,
d.alg_district_omschrijving vt, l.alg_locatie_omschrijving cx,
a.prs_afdeling_key, a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving org,
sd.ins_srtdiscipline_omschrijving, md.ins_discipline_omschrijving, sm.mld_stdmelding_omschrijving,
COUNT ( * ) totaal,
SUM (DECODE (SIGN (m.mld_melding_acceptdatum_std - TRUNC (fac.gettrackingdate ('MLDACP', m.mld_melding_key), 'mi')), -1, 0, 1))
acpoptijd,
SUM (DECODE (SIGN (m.mld_melding_einddatum_std - TRUNC (t.fac_tracking_datum, 'mi')), -1, 0, 1))
afmoptijd
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,
mld_stdmelding sm,
mld_discipline md,
ins_srtdiscipline sd,
(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, -12), 'yyyy')
AND t.fac_tracking_refkey = m.mld_melding_key
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_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_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),
d.alg_district_omschrijving, l.alg_locatie_omschrijving,
a.prs_afdeling_key, a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving,
sd.ins_srtdiscipline_omschrijving, md.ins_discipline_omschrijving, sm.mld_stdmelding_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,
d.alg_district_omschrijving vt, l.alg_locatie_omschrijving cx,
a.prs_afdeling_key, a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving org,
--sd.ins_srtdiscipline_omschrijving, md.ins_discipline_omschrijving,
pd.fac_usrdata_omschr mld_stdmelding_omschrijving,
COUNT ( * ) totaal,
SUM (DECODE (SIGN (m.mld_melding_acceptdatum_std - TRUNC (fac.gettrackingdate ('MLDACP', m.mld_melding_key), 'mi')), -1, 0, 1))
acpoptijd,
SUM (DECODE (SIGN (m.mld_melding_einddatum_std - TRUNC (t.fac_tracking_datum, 'mi')), -1, 0, 1))
afmoptijd
FROM fac_tracking t,
mld_melding m,
(SELECT *
FROM fac_v_aanwezigusrdata
WHERE fac_usrtab_key = 561) ud, -- KPI7
alg_locatie l, -- Ook verwijderde locaties
alg_district d, -- en verwijderde districten!
prs_perslid p,
prs_afdeling a,
--mld_stdmelding sm,
--mld_discipline md,
--ins_srtdiscipline sd,
(SELECT *
FROM mld_v_aanwezigkenmerkmelding km
WHERE EXISTS
(SELECT 1
FROM mld_kenmerk
WHERE mld_srtkenmerk_key = 541 -- Product / Dienst
AND mld_kenmerk_key = km.mld_kenmerk_key)) km,
(SELECT *
FROM fac_v_aanwezigusrdata
WHERE fac_usrtab_key = 461) pd -- Product / Dienst
WHERE t.fac_srtnotificatie_key = 38 -- MLDAFM
AND t.fac_tracking_datum > TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy')
AND t.fac_tracking_refkey = m.mld_melding_key
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_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_melding_key = km.mld_melding_key(+)
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = pd.fac_usrdata_key(+)
GROUP BY TO_CHAR (t.fac_tracking_datum, 'yyyy'),
CEIL (fac.safe_to_number (TO_CHAR (t.fac_tracking_datum, 'mm')) / 2),
d.alg_district_omschrijving, l.alg_locatie_omschrijving,
a.prs_afdeling_key, a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving,
--sd.ins_srtdiscipline_omschrijving, md.ins_discipline_omschrijving,
pd.fac_usrdata_omschr)
SELECT jaar || periode || '1' || vt || cx || org sortering,
jaar, periode, '2. Meldingen urgente storingen' kpi,
vt, cx, org,
ins_srtdiscipline_omschrijving, ins_discipline_omschrijving, mld_stdmelding_omschrijving,
totaal, acpoptijd, afmoptijd
FROM mldkpi2
UNION ALL
SELECT jaar || periode || '2' || vt || cx || org sortering,
jaar, periode, '6. Alle dienstverlening' kpi,
vt, cx, org,
ins_srtdiscipline_omschrijving, ins_discipline_omschrijving, NULL mld_stdmelding_omschrijving,
totaal, acpoptijd, afmoptijd
FROM mldkpi6
UNION ALL
SELECT jaar || periode || '3' || vt || cx || org sortering,
jaar, periode, '6. Top 5 onder de norm' kpi,
vt, cx, org,
ins_srtdiscipline_omschrijving, ins_discipline_omschrijving, mld_stdmelding_omschrijving,
totaal, acpoptijd, afmoptijd
FROM ( SELECT jaar, periode, vt, cx, org,
ins_srtdiscipline_omschrijving, ins_discipline_omschrijving, mld_stdmelding_omschrijving,
totaal, acpoptijd, afmoptijd,
RANK () OVER (PARTITION BY jaar, periode, vt, cx, org ORDER BY totaal DESC) rnk
FROM mldkpi6t5
WHERE afmoptijd / totaal < 0.8)
WHERE rnk <= 5
UNION ALL
SELECT jaar || periode || '4' || vt || cx || org sortering,
jaar, periode, '6a. Meldingen gebouwbeheer' kpi,
vt, cx, org,
ins_srtdiscipline_omschrijving, ins_discipline_omschrijving, mld_stdmelding_omschrijving,
totaal, acpoptijd, afmoptijd
FROM mldkpi6a
UNION ALL
SELECT jaar || periode || '5' || vt || cx || org sortering,
jaar, periode, '6b. Meldingen gebouwbeheer RVB' kpi,
vt, cx, org,
ins_srtdiscipline_omschrijving, ins_discipline_omschrijving, mld_stdmelding_omschrijving,
totaal, acpoptijd, afmoptijd
FROM mldkpi6b
UNION ALL
SELECT jaar || periode || '6' || vt || cx || org sortering,
jaar, periode, '7. Afhandeling klachten' kpi,
vt, cx, org,
NULL ins_srtdiscipline_omschrijving, NULL ins_discipline_omschrijving, mld_stdmelding_omschrijving,
totaal, acpoptijd, afmoptijd
FROM mldkpi7;
CREATE OR REPLACE VIEW djin_v_rap_dvl_spec_orgonly
(
hide_f_sortering,
jaar,
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,
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
prs_perslid p,
prs_afdeling a
WHERE t.fac_srtnotificatie_key = 38 -- MLDAFM
AND t.fac_tracking_datum > TRUNC (ADD_MONTHS (SYSDATE, -12), '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.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',
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,
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
prs_perslid p,
prs_afdeling a
WHERE t.fac_srtnotificatie_key = 38 -- MLDAFM
AND t.fac_tracking_datum > TRUNC (ADD_MONTHS (SYSDATE, -12), '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.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',
a.prs_afdeling_key, a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving),
mldkpi6a -- Per complex volgens KPI6ab-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,
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
prs_perslid p,
prs_afdeling a
WHERE t.fac_srtnotificatie_key = 38 -- MLDAFM
AND t.fac_tracking_datum > TRUNC (ADD_MONTHS (SYSDATE, -12), '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.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',
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,
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
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, -12), '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.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',
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,
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 = 561) ud, -- KPI7
prs_perslid p,
prs_afdeling a
WHERE t.fac_srtnotificatie_key = 38 -- MLDAFM
AND t.fac_tracking_datum > TRUNC (ADD_MONTHS (SYSDATE, -12), '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.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',
a.prs_afdeling_key, a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving)
SELECT jaar || org || '1', jaar, 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 || org || '1', jaar, org, kpi
UNION ALL -- Nul-regel voor deze kpi per jaar/org voorkomend in andere kpi's!
SELECT x.jaar || x.org || '1', x.jaar, x.org,
'2. Meldingen urgente storingen', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
FROM (SELECT jaar, prs_afdeling_key, org FROM mldkpi6
UNION
SELECT jaar, prs_afdeling_key, org FROM mldkpi6a
UNION
SELECT jaar, prs_afdeling_key, org FROM mldkpi6b
UNION
SELECT jaar, prs_afdeling_key, org FROM mldkpi7) x
WHERE NOT EXISTS (SELECT 1 FROM mldkpi2 WHERE jaar = x.jaar AND prs_afdeling_key = x.prs_afdeling_key)
UNION ALL
SELECT jaar || org || '2', jaar, 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 || org || '2', jaar, org, kpi
UNION ALL -- Nul-regel voor deze kpi per jaar/org voorkomend in andere kpi's!
SELECT x.jaar || x.org || '2', x.jaar, x.org,
'6. Alle dienstverlening', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
FROM (SELECT jaar, prs_afdeling_key, org FROM mldkpi2
UNION
SELECT jaar, prs_afdeling_key, org FROM mldkpi6a
UNION
SELECT jaar, prs_afdeling_key, org FROM mldkpi6b
UNION
SELECT jaar, prs_afdeling_key, org FROM mldkpi7) x
WHERE NOT EXISTS (SELECT 1 FROM mldkpi6 WHERE jaar = x.jaar AND prs_afdeling_key = x.prs_afdeling_key)
UNION ALL
SELECT jaar || org || '3', jaar, 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 || org || '3', jaar, org, kpi
UNION ALL -- Nul-regel voor deze kpi per jaar/org voorkomend in andere kpi's!
SELECT x.jaar || x.org || '3', x.jaar, x.org,
'6a. Meldingen gebouwbeheer', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
FROM (SELECT jaar, prs_afdeling_key, org FROM mldkpi2
UNION
SELECT jaar, prs_afdeling_key, org FROM mldkpi6
UNION
SELECT jaar, prs_afdeling_key, org FROM mldkpi6b
UNION
SELECT jaar, prs_afdeling_key, org FROM mldkpi7) x
WHERE NOT EXISTS (SELECT 1 FROM mldkpi6a WHERE jaar = x.jaar AND prs_afdeling_key = x.prs_afdeling_key)
UNION ALL
SELECT jaar || org || '4', jaar, 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 || org || '4', jaar, org, kpi
UNION ALL -- Nul-regel voor deze kpi per jaar/org voorkomend in andere kpi's!
SELECT x.jaar || x.org || '4', x.jaar, x.org,
'6b. Meldingen gebouwbeheer RVB', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
FROM (SELECT jaar, prs_afdeling_key, org FROM mldkpi2
UNION
SELECT jaar, prs_afdeling_key, org FROM mldkpi6
UNION
SELECT jaar, prs_afdeling_key, org FROM mldkpi6a
UNION
SELECT jaar, prs_afdeling_key, org FROM mldkpi7) x
WHERE NOT EXISTS (SELECT 1 FROM mldkpi6b WHERE jaar = x.jaar AND prs_afdeling_key = x.prs_afdeling_key)
UNION ALL
SELECT jaar || org || '5', jaar, 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 || org || '5', jaar, org, kpi
UNION ALL -- Nul-regel voor deze kpi per jaar/org voorkomend in andere kpi's!
SELECT x.jaar || x.org || '5', x.jaar, x.org,
'7. Afhandeling klachten', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
FROM (SELECT jaar, prs_afdeling_key, org FROM mldkpi2
UNION
SELECT jaar, prs_afdeling_key, org FROM mldkpi6
UNION
SELECT jaar, prs_afdeling_key, org FROM mldkpi6a
UNION
SELECT jaar, prs_afdeling_key, org FROM mldkpi6b) x
WHERE NOT EXISTS (SELECT 1 FROM mldkpi7 WHERE jaar = x.jaar 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, -12), '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, -12), '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 KPI6ab-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, -12), '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 KPI6ab-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, -12), '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,
(SELECT *
FROM fac_v_aanwezigusrdata
WHERE fac_usrtab_key = 561) ud, -- KPI7
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, -12), '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),
'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_district d
WHERE p.jaar BETWEEN TO_CHAR (d.alg_district_aanmaak, 'yyyy') AND TO_CHAR (COALESCE (alg_district_verwijder, SYSDATE), 'yyyy')
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_district d
WHERE p.jaar BETWEEN TO_CHAR (d.alg_district_aanmaak, 'yyyy') AND TO_CHAR (COALESCE (alg_district_verwijder, SYSDATE), 'yyyy')
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_district d
WHERE p.jaar BETWEEN TO_CHAR (d.alg_district_aanmaak, 'yyyy') AND TO_CHAR (COALESCE (alg_district_verwijder, SYSDATE), 'yyyy')
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_district d
WHERE p.jaar BETWEEN TO_CHAR (d.alg_district_aanmaak, 'yyyy') AND TO_CHAR (COALESCE (alg_district_verwijder, SYSDATE), 'yyyy')
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_district d
WHERE p.jaar BETWEEN TO_CHAR (d.alg_district_aanmaak, 'yyyy') AND TO_CHAR (COALESCE (alg_district_verwijder, SYSDATE), 'yyyy')
AND NOT EXISTS (SELECT 1 FROM mldkpi7 WHERE jaar = p.jaar AND vt = d.alg_district_omschrijving);
CREATE OR REPLACE VIEW djin_v_rap_dvr_spec_vt
(
hide_f_sortering,
jaar,
periode,
kpi,
vestiging,
complex,
organisatie,
vakgroeptype,
vakgroep,
soortmelding,
aantal,
mldacp_optijd,
mldafm_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,
d.alg_district_omschrijving vt,
sd.ins_srtdiscipline_omschrijving, md.ins_discipline_omschrijving, sm.mld_stdmelding_omschrijving,
COUNT ( * ) totaal,
SUM (DECODE (SIGN (m.mld_melding_acceptdatum_std - TRUNC (fac.gettrackingdate ('MLDACP', m.mld_melding_key), 'mi')), -1, 0, 1))
acpoptijd,
SUM (DECODE (SIGN (m.mld_melding_einddatum_std - TRUNC (t.fac_tracking_datum, 'mi')), -1, 0, 1))
afmoptijd
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!
mld_stdmelding sm,
mld_discipline md,
ins_srtdiscipline sd
WHERE t.fac_srtnotificatie_key = 38 -- MLDAFM
AND t.fac_tracking_datum > TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy')
AND t.fac_tracking_refkey = m.mld_melding_key
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.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
GROUP BY TO_CHAR (t.fac_tracking_datum, 'yyyy'),
CEIL (fac.safe_to_number (TO_CHAR (t.fac_tracking_datum, 'mm')) / 2),
d.alg_district_omschrijving,
sd.ins_srtdiscipline_omschrijving, md.ins_discipline_omschrijving, sm.mld_stdmelding_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,
d.alg_district_omschrijving vt,
sd.ins_srtdiscipline_omschrijving, md.ins_discipline_omschrijving,
COUNT ( * ) totaal,
SUM (DECODE (SIGN (m.mld_melding_acceptdatum_std - TRUNC (fac.gettrackingdate ('MLDACP', m.mld_melding_key), 'mi')), -1, 0, 1))
acpoptijd,
SUM (DECODE (SIGN (m.mld_melding_einddatum_std - TRUNC (t.fac_tracking_datum, 'mi')), -1, 0, 1))
afmoptijd
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!
mld_stdmelding sm,
mld_discipline md,
ins_srtdiscipline sd
WHERE t.fac_srtnotificatie_key = 38 -- MLDAFM
AND t.fac_tracking_datum > TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy')
AND t.fac_tracking_refkey = m.mld_melding_key
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_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
GROUP BY TO_CHAR (t.fac_tracking_datum, 'yyyy'),
CEIL (fac.safe_to_number (TO_CHAR (t.fac_tracking_datum, 'mm')) / 2),
d.alg_district_omschrijving,
sd.ins_srtdiscipline_omschrijving, md.ins_discipline_omschrijving),
mldkpi6t5 -- 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,
d.alg_district_omschrijving vt,
sd.ins_srtdiscipline_omschrijving, md.ins_discipline_omschrijving, sm.mld_stdmelding_omschrijving,
COUNT ( * ) totaal,
SUM (DECODE (SIGN (m.mld_melding_acceptdatum_std - TRUNC (fac.gettrackingdate ('MLDACP', m.mld_melding_key), 'mi')), -1, 0, 1))
acpoptijd,
SUM (DECODE (SIGN (m.mld_melding_einddatum_std - TRUNC (t.fac_tracking_datum, 'mi')), -1, 0, 1))
afmoptijd
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!
mld_stdmelding sm,
mld_discipline md,
ins_srtdiscipline sd
WHERE t.fac_srtnotificatie_key = 38 -- MLDAFM
AND t.fac_tracking_datum > TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy')
AND t.fac_tracking_refkey = m.mld_melding_key
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_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
GROUP BY TO_CHAR (t.fac_tracking_datum, 'yyyy'),
CEIL (fac.safe_to_number (TO_CHAR (t.fac_tracking_datum, 'mm')) / 2),
d.alg_district_omschrijving,
sd.ins_srtdiscipline_omschrijving, md.ins_discipline_omschrijving, sm.mld_stdmelding_omschrijving),
mldkpi6a -- Per complex volgens KPI6ab-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,
d.alg_district_omschrijving vt,
sd.ins_srtdiscipline_omschrijving, md.ins_discipline_omschrijving, sm.mld_stdmelding_omschrijving,
COUNT ( * ) totaal,
SUM (DECODE (SIGN (m.mld_melding_acceptdatum_std - TRUNC (fac.gettrackingdate ('MLDACP', m.mld_melding_key), 'mi')), -1, 0, 1))
acpoptijd,
SUM (DECODE (SIGN (m.mld_melding_einddatum_std - TRUNC (t.fac_tracking_datum, 'mi')), -1, 0, 1))
afmoptijd
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!
mld_stdmelding sm,
mld_discipline md,
ins_srtdiscipline sd
WHERE t.fac_srtnotificatie_key = 38 -- MLDAFM
AND t.fac_tracking_datum > TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy')
AND t.fac_tracking_refkey = m.mld_melding_key
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_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
GROUP BY TO_CHAR (t.fac_tracking_datum, 'yyyy'),
CEIL (fac.safe_to_number (TO_CHAR (t.fac_tracking_datum, 'mm')) / 2),
d.alg_district_omschrijving,
sd.ins_srtdiscipline_omschrijving, md.ins_discipline_omschrijving, sm.mld_stdmelding_omschrijving),
mldkpi6b -- Per complex volgens KPI6ab-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,
d.alg_district_omschrijving vt,
sd.ins_srtdiscipline_omschrijving, md.ins_discipline_omschrijving, sm.mld_stdmelding_omschrijving,
COUNT ( * ) totaal,
SUM (DECODE (SIGN (m.mld_melding_acceptdatum_std - TRUNC (fac.gettrackingdate ('MLDACP', m.mld_melding_key), 'mi')), -1, 0, 1))
acpoptijd,
SUM (DECODE (SIGN (m.mld_melding_einddatum_std - TRUNC (t.fac_tracking_datum, 'mi')), -1, 0, 1))
afmoptijd
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!
mld_stdmelding sm,
mld_discipline md,
ins_srtdiscipline sd,
(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, -12), 'yyyy')
AND t.fac_tracking_refkey = m.mld_melding_key
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_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_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),
d.alg_district_omschrijving,
sd.ins_srtdiscipline_omschrijving, md.ins_discipline_omschrijving, sm.mld_stdmelding_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,
d.alg_district_omschrijving vt,
--sd.ins_srtdiscipline_omschrijving, md.ins_discipline_omschrijving,
pd.fac_usrdata_omschr mld_stdmelding_omschrijving,
COUNT ( * ) totaal,
SUM (DECODE (SIGN (m.mld_melding_acceptdatum_std - TRUNC (fac.gettrackingdate ('MLDACP', m.mld_melding_key), 'mi')), -1, 0, 1))
acpoptijd,
SUM (DECODE (SIGN (m.mld_melding_einddatum_std - TRUNC (t.fac_tracking_datum, 'mi')), -1, 0, 1))
afmoptijd
FROM fac_tracking t,
mld_melding m,
(SELECT *
FROM fac_v_aanwezigusrdata
WHERE fac_usrtab_key = 561) ud, -- KPI7
alg_locatie l, -- Ook verwijderde locaties
alg_district d, -- en verwijderde districten!
--mld_stdmelding sm,
--mld_discipline md,
--ins_srtdiscipline sd,
(SELECT *
FROM mld_v_aanwezigkenmerkmelding km
WHERE EXISTS
(SELECT 1
FROM mld_kenmerk
WHERE mld_srtkenmerk_key = 541 -- Product / Dienst
AND mld_kenmerk_key = km.mld_kenmerk_key)) km,
(SELECT *
FROM fac_v_aanwezigusrdata
WHERE fac_usrtab_key = 461) pd -- Product / Dienst
WHERE t.fac_srtnotificatie_key = 38 -- MLDAFM
AND t.fac_tracking_datum > TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy')
AND t.fac_tracking_refkey = m.mld_melding_key
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_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_melding_key = km.mld_melding_key(+)
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = pd.fac_usrdata_key(+)
GROUP BY TO_CHAR (t.fac_tracking_datum, 'yyyy'),
CEIL (fac.safe_to_number (TO_CHAR (t.fac_tracking_datum, 'mm')) / 2),
d.alg_district_omschrijving,
--sd.ins_srtdiscipline_omschrijving, md.ins_discipline_omschrijving,
pd.fac_usrdata_omschr)
SELECT jaar || periode || '1' || vt sortering,
jaar, periode, '2. Meldingen urgente storingen' kpi,
vt, NULL cx, NULL org,
ins_srtdiscipline_omschrijving, ins_discipline_omschrijving, mld_stdmelding_omschrijving,
totaal, acpoptijd, afmoptijd
FROM mldkpi2
UNION ALL
SELECT jaar || periode || '2' || vt sortering,
jaar, periode, '6. Alle dienstverlening' kpi,
vt, NULL cx, NULL org,
ins_srtdiscipline_omschrijving, ins_discipline_omschrijving, NULL mld_stdmelding_omschrijving,
totaal, acpoptijd, afmoptijd
FROM mldkpi6
UNION ALL
SELECT jaar || periode || '3' || vt sortering,
jaar, periode, '6. Top 5 onder de norm' kpi,
vt, NULL cx, NULL org,
ins_srtdiscipline_omschrijving, ins_discipline_omschrijving, mld_stdmelding_omschrijving,
totaal, acpoptijd, afmoptijd
FROM ( SELECT jaar, periode, vt,
ins_srtdiscipline_omschrijving, ins_discipline_omschrijving, mld_stdmelding_omschrijving,
totaal, acpoptijd, afmoptijd,
RANK () OVER (PARTITION BY jaar, periode, vt ORDER BY totaal DESC) rnk
FROM mldkpi6t5
WHERE afmoptijd / totaal < 0.8)
WHERE rnk <= 5
UNION ALL
SELECT jaar || periode || '4' || vt sortering,
jaar, periode, '6a. Meldingen gebouwbeheer' kpi,
vt, NULL cx, NULL org,
ins_srtdiscipline_omschrijving, ins_discipline_omschrijving, mld_stdmelding_omschrijving,
totaal, acpoptijd, afmoptijd
FROM mldkpi6a
UNION ALL
SELECT jaar || periode || '5' || vt sortering,
jaar, periode, '6b. Meldingen gebouwbeheer RVB' kpi,
vt, NULL cx, NULL org,
ins_srtdiscipline_omschrijving, ins_discipline_omschrijving, mld_stdmelding_omschrijving,
totaal, acpoptijd, afmoptijd
FROM mldkpi6b
UNION ALL
SELECT jaar || periode || '6' || vt sortering,
jaar, periode, '7. Afhandeling klachten' kpi,
vt, NULL cx, NULL org,
NULL ins_srtdiscipline_omschrijving, NULL ins_discipline_omschrijving, mld_stdmelding_omschrijving,
totaal, acpoptijd, afmoptijd
FROM mldkpi7;
-- 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)
fclt_3d_locatie_key
)
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, -12), '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,
x.alg_locatie_key
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, -12), '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 285)
ON x.mld_melding_key = ln.mld_melding_key
AND EXISTS (SELECT 1 FROM mld_kenmerk WHERE mld_srtkenmerk_key = 285 AND mld_kenmerk_key = ln.mld_kenmerk_key)
LEFT JOIN mld_v_aanwezigkenmerkmelding lt -- Locatieteam-vinkveld (Soort 461)
ON x.mld_melding_key = lt.mld_melding_key
AND EXISTS (SELECT 1 FROM mld_kenmerk WHERE mld_srtkenmerk_key = 461 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, -12), '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(+);
-- DJIN#57015 (incl. DJIN#55449): Afhandeling meldingen en opdrachten.
CREATE OR REPLACE VIEW djin_v_rap_mld_afh
(
mld_melding_key,
--mld_opdr_key,
mld_id,
--organisatie,
vestiging,
complex,
clusteroms,
gebouwcode,
gebouwnaam,
vakgroeptype,
vakgroep,
melding,
prio,
prio_oms,
vervolgmelding,
kleurmarkering,
--servicenr,
--leverancier,
--ref_leverancier,
mldafm,
mldacp_uvtijd,
ordacp_uvtijd,
ordafm_uvtijd,
ordafm_mldafm,
mldafm_uvtijd,
mldacp_sla,
mldacp_optijd,
mldafm_sla,
mldafm_optijd
)
AS
SELECT x.mld_melding_key,
--x.mld_opdr_key,
x.mld_id,
--x.prs_afdeling_naam || '-' || x.prs_afdeling_omschrijving organisatie,
x.alg_district_omschrijving vt,
x.alg_locatie_omschrijving cx,
cl_ud.fac_usrdata_omschr cl,
x.alg_gebouw_code gebouwcode,
x.alg_gebouw_naam gebouwnaam,
x.ins_srtdiscipline_omschrijving vakgroeptype,
x.ins_discipline_omschrijving vakgroep,
x.mld_stdmelding_omschrijving melding,
x.mld_melding_spoed prio,
DECODE (x.mld_melding_spoed,
3, lcl.l ('lcl_mld_urg_normaal'),
1, lcl.l ('lcl_mld_urg_kritiek'),
2, lcl.l ('lcl_mld_urg_hoog'),
4, lcl.l ('lcl_mld_urg_laag'))
prio_oms,
DECODE (x.mld_melding_start_key, NULL, 'Nee', 'Ja')
vervolgmelding,
DECODE (x.mld_melding_flag,
NULL, NULL,
0, NULL,
lcl.l ('lcl_melding_flag' || TO_CHAR (x.mld_melding_flag)))
kleurmarkering,
--san.mld_kenmerkopdr_waarde san, -- Serviceaanvraagnummer = RVB?
--lev.mld_kenmerkopdr_waarde lev,
--ref.mld_kenmerkopdr_waarde ref,
x.mldafm,
DECODE (x.mldacp,
NULL, TO_NUMBER (NULL),
fac.datumtijdnaaruitvoertijd (x.mldnew, x.mldacp, 'U').tijdsduur)
mldacp_uvtijd,
DECODE (minordacp.fac_tracking_datum,
NULL, TO_NUMBER (NULL),
fac.datumtijdnaaruitvoertijd (minordnew.fac_tracking_datum, minordacp.fac_tracking_datum, 'U').tijdsduur)
ordacp_uvtijd,
DECODE (maxordafm.fac_tracking_datum,
NULL, TO_NUMBER (NULL),
fac.datumtijdnaaruitvoertijd (minordnew.fac_tracking_datum, maxordafm.fac_tracking_datum, 'U').tijdsduur)
ordafm_uvtijd,
DECODE (maxordafm.fac_tracking_datum,
NULL, TO_NUMBER (NULL),
fac.datumtijdnaaruitvoertijd (maxordafm.fac_tracking_datum, x.mldafm, 'U').tijdsduur)
ordafm_mldafm,
fac.datumtijdnaaruitvoertijd (x.mldnew, x.mldafm, 'U').tijdsduur
mldafm_uvtijd,
TO_CHAR (x.mld_melding_t_accepttijd.tijdsduur) || x.mld_melding_t_accepttijd.eenheid mldacp_sla,
DECODE (SIGN (x.mld_melding_acceptdatum_std - x.mldacp), -1, 0, 1) mldacp_optijd,
TO_CHAR (x.mld_melding_t_uitvoertijd.tijdsduur) || x.mld_melding_t_uitvoertijd.eenheid mldafm_sla,
DECODE (SIGN (x.mld_melding_einddatum_std - x.mldafm), -1, 0, 1) mldafm_optijd
FROM (SELECT m.mld_melding_key,
--o.mld_opdr_key,
COALESCE (sd.ins_srtdiscipline_prefix, '') || TO_CHAR (m.mld_melding_key) mld_id,
d.alg_district_omschrijving,
l.alg_locatie_key,
l.alg_locatie_omschrijving,
aog.alg_gebouw_code,
aog.alg_gebouw_naam,
sd.ins_srtdiscipline_omschrijving,
md.ins_discipline_omschrijving,
sm.mld_stdmelding_omschrijving,
m.mld_melding_spoed,
m.mld_melding_start_key,
m.mld_melding_flag,
m.mld_melding_t_accepttijd,
m.mld_melding_acceptdatum_std,
m.mld_melding_t_uitvoertijd,
m.mld_melding_einddatum_std,
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,
mld_stdmelding sm, mld_discipline md, ins_srtdiscipline sd,
alg_locatie l, alg_district d, -- Ook verwijderde locaties en districten!
alg_v_allonrgoed_gegevens aog
WHERE m.mld_melding_status IN (5, 6) -- Afgemeld/Verwerkt
AND m.mld_melding_datum > TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy')
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 m.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
( SELECT o.mld_melding_key, MIN (t.fac_tracking_datum) fac_tracking_datum
FROM fac_tracking t, mld_opdr o
WHERE t.fac_srtnotificatie_key = 59 -- ORDNEW
AND t.fac_tracking_refkey = o.mld_opdr_key
GROUP BY o.mld_melding_key) minordnew
ON x.mld_melding_key = minordnew.mld_melding_key
LEFT JOIN
( SELECT o.mld_melding_key, MIN (t.fac_tracking_datum) fac_tracking_datum
FROM fac_tracking t, mld_opdr o
WHERE t.fac_srtnotificatie_key = 65 -- ORDACP
AND t.fac_tracking_refkey = o.mld_opdr_key
GROUP BY o.mld_melding_key) minordacp
ON x.mld_melding_key = minordacp.mld_melding_key
LEFT JOIN
( SELECT o.mld_melding_key, MAX (t.fac_tracking_datum) fac_tracking_datum
FROM fac_tracking t, mld_opdr o
WHERE t.fac_srtnotificatie_key = 58 -- ORDAFM
AND t.fac_tracking_refkey = o.mld_opdr_key
GROUP BY o.mld_melding_key) maxordafm
ON x.mld_melding_key = maxordafm.mld_melding_key
--LEFT JOIN mld_v_aanwezigkenmerkopdr san -- Serviceaanvraagnummer (Soort 2)
-- ON x.mld_opdr_key = san.mld_opdr_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_aanwezigkenmerkopdr lev -- Naam leverancier (Soort 43)
-- ON x.mld_opdr_key = lev.mld_opdr_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_aanwezigkenmerkopdr ref -- Opdrachtnummer leverancier (Soort 44)
-- ON x.mld_opdr_key = ref.mld_opdr_key
-- AND EXISTS (SELECT 1 FROM mld_kenmerk WHERE mld_srtkenmerk_key = 44 AND mld_kenmerk_key = ref.mld_kenmerk_key)
;
CREATE OR REPLACE VIEW djin_v_rap_mldord_afh
(
--mld_melding_key,
mld_opdr_key,
ord_id,
--organisatie,
vestiging,
complex,
clusteroms,
gebouwcode,
gebouwnaam,
vakgroeptype,
vakgroep,
melding,
prio,
prio_oms,
vervolgmelding,
kleurmarkering,
servicenr,
leverancier,
ref_leverancier,
mldafm,
mldacp_uvtijd,
ordacp_uvtijd,
ordafm_uvtijd,
ordafm_mldafm,
mldafm_uvtijd,
mldacp_sla,
mldacp_optijd,
mldafm_sla,
mldafm_optijd
)
AS
SELECT --x.mld_melding_key,
x.mld_opdr_key,
x.ord_id,
--x.prs_afdeling_naam || '-' || x.prs_afdeling_omschrijving organisatie,
x.alg_district_omschrijving vt,
x.alg_locatie_omschrijving cx,
cl_ud.fac_usrdata_omschr cl,
x.alg_gebouw_code gebouwcode,
x.alg_gebouw_naam gebouwnaam,
x.ins_srtdiscipline_omschrijving vakgroeptype,
x.ins_discipline_omschrijving vakgroep,
x.mld_stdmelding_omschrijving melding,
x.mld_melding_spoed prio,
DECODE (x.mld_melding_spoed,
3, lcl.l ('lcl_mld_urg_normaal'),
1, lcl.l ('lcl_mld_urg_kritiek'),
2, lcl.l ('lcl_mld_urg_hoog'),
4, lcl.l ('lcl_mld_urg_laag'))
prio_oms,
DECODE (x.mld_melding_start_key, NULL, 'Nee', 'Ja')
vervolgmelding,
DECODE (x.mld_opdr_flag,
NULL, NULL,
0, NULL,
lcl.l ('lcl_opdr_flag' || TO_CHAR (x.mld_opdr_flag)))
kleurmarkering,
san.mld_kenmerkopdr_waarde san, -- Serviceaanvraagnummer = RVB?
lev.mld_kenmerkopdr_waarde lev,
ref.mld_kenmerkopdr_waarde ref,
x.mldafm,
DECODE (x.mldacp,
NULL, TO_NUMBER (NULL),
fac.datumtijdnaaruitvoertijd (x.mldnew, x.mldacp, 'U').tijdsduur)
mldacp_uvtijd,
DECODE (x.ordacp,
NULL, TO_NUMBER (NULL),
fac.datumtijdnaaruitvoertijd (x.ordnew, x.ordacp, 'U').tijdsduur)
ordacp_uvtijd,
DECODE (x.ordafm,
NULL, TO_NUMBER (NULL),
fac.datumtijdnaaruitvoertijd (x.ordnew, x.ordafm, 'U').tijdsduur)
ordafm_uvtijd,
DECODE (maxordafm.fac_tracking_datum,
NULL, TO_NUMBER (NULL),
fac.datumtijdnaaruitvoertijd (maxordafm.fac_tracking_datum, x.mldafm, 'U').tijdsduur)
ordafm_mldafm,
fac.datumtijdnaaruitvoertijd (x.mldnew, x.mldafm, 'U').tijdsduur
mldafm_uvtijd,
TO_CHAR (x.mld_melding_t_accepttijd.tijdsduur) || x.mld_melding_t_accepttijd.eenheid mldacp_sla,
DECODE (SIGN (x.mld_melding_acceptdatum_std - x.mldacp), -1, 0, 1) mldacp_optijd,
TO_CHAR (x.mld_melding_t_uitvoertijd.tijdsduur) || x.mld_melding_t_uitvoertijd.eenheid mldafm_sla,
DECODE (SIGN (x.mld_melding_einddatum_std - x.mldafm), -1, 0, 1) mldafm_optijd
FROM (SELECT m.mld_melding_key,
o.mld_opdr_key,
COALESCE (sd.ins_srtdiscipline_prefix, '') || TO_CHAR (m.mld_melding_key) || DECODE (o.mld_opdr_key, NULL, '', '/' || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr))
ord_id, -- Opdracht met hoogste volgnummer!
d.alg_district_omschrijving,
l.alg_locatie_key,
l.alg_locatie_omschrijving,
aog.alg_gebouw_code,
aog.alg_gebouw_naam,
sd.ins_srtdiscipline_omschrijving,
md.ins_discipline_omschrijving,
sm.mld_stdmelding_omschrijving,
m.mld_melding_spoed,
m.mld_melding_start_key,
o.mld_opdr_flag,
m.mld_melding_t_accepttijd,
m.mld_melding_acceptdatum_std,
m.mld_melding_t_uitvoertijd,
m.mld_melding_einddatum_std,
fac.gettrackingdate ('MLDNEW', m.mld_melding_key) mldnew,
fac.gettrackingdate ('MLDACP', m.mld_melding_key) mldacp,
fac.gettrackingdate ('ORDNEW', o.mld_opdr_key) ordnew,
fac.gettrackingdate ('ORDACP', o.mld_opdr_key) ordacp,
fac.gettrackingdate ('ORDAFM', o.mld_opdr_key) ordafm,
fac.gettrackingdate ('MLDAFM', m.mld_melding_key) mldafm
FROM mld_melding m, mld_opdr o,
mld_stdmelding sm, mld_discipline md, ins_srtdiscipline sd,
alg_locatie l, alg_district d, -- Ook verwijderde locaties en districten!
alg_v_allonrgoed_gegevens aog
WHERE m.mld_melding_status IN (5, 6) -- Afgemeld/Verwerkt
AND m.mld_melding_datum > TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy')
AND m.mld_melding_key = o.mld_melding_key(+)
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = md.ins_discipline_key
AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
AND m.mld_alg_locatie_key = l.alg_locatie_key
AND l.alg_district_key = d.alg_district_key
AND m.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
-- ( SELECT o.mld_melding_key, MIN (t.fac_tracking_datum) fac_tracking_datum
-- FROM fac_tracking t, mld_opdr o
-- WHERE t.fac_srtnotificatie_key = 59 -- ORDNEW
-- AND t.fac_tracking_refkey = o.mld_opdr_key
-- GROUP BY o.mld_melding_key) minordnew
-- ON x.mld_melding_key = minordnew.mld_melding_key
--LEFT JOIN
-- ( SELECT o.mld_melding_key, MIN (t.fac_tracking_datum) fac_tracking_datum
-- FROM fac_tracking t, mld_opdr o
-- WHERE t.fac_srtnotificatie_key = 65 -- ORDACP
-- AND t.fac_tracking_refkey = o.mld_opdr_key
-- GROUP BY o.mld_melding_key) minordacp
-- ON x.mld_melding_key = minordacp.mld_melding_key
LEFT JOIN
( SELECT o.mld_melding_key, MAX (t.fac_tracking_datum) fac_tracking_datum
FROM fac_tracking t, mld_opdr o
WHERE t.fac_srtnotificatie_key = 58 -- ORDAFM
AND t.fac_tracking_refkey = o.mld_opdr_key
GROUP BY o.mld_melding_key) maxordafm
ON x.mld_melding_key = maxordafm.mld_melding_key
LEFT JOIN mld_v_aanwezigkenmerkopdr san -- Serviceaanvraagnummer (Soort 2)
ON x.mld_opdr_key = san.mld_opdr_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_aanwezigkenmerkopdr lev -- Naam leverancier (Soort 43)
ON x.mld_opdr_key = lev.mld_opdr_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_aanwezigkenmerkopdr ref -- Opdrachtnummer leverancier (Soort 44)
ON x.mld_opdr_key = ref.mld_opdr_key
AND EXISTS (SELECT 1 FROM mld_kenmerk WHERE mld_srtkenmerk_key = 44 AND mld_kenmerk_key = ref.mld_kenmerk_key)
;
-- DJIN#58152: MT rapportage (exclusief vervolgmeldingen)
CREATE OR REPLACE VIEW djin_v_rap_mt_bron
(
hide_f_sortering,
jaar,
week,
vestiging,
vakgroeptype,
vakgroep,
aantal,
acp_optijd,
afm_optijd
)
AS
SELECT TO_CHAR (mldafm, 'iyyy-iw') || vt || vakgroeptype || vakgroep,
TO_CHAR (mldafm, 'iyyy') jaar,
TO_CHAR (mldafm, 'iw') week,
vt, vakgroeptype, vakgroep,
COUNT ( * ) totaal,
SUM (DECODE (SIGN (mld_melding_acceptdatum_std - mldacp), -1, 0, 1))
acp_optijd,
SUM (DECODE (SIGN (mld_melding_einddatum_std - TRUNC (mldafm, 'mi')), -1, 0, 1))
afm_optijd
FROM (SELECT d.alg_district_omschrijving vt,
sd.ins_srtdiscipline_omschrijving vakgroeptype,
md.ins_discipline_omschrijving vakgroep,
m.mld_melding_key,
m.mld_melding_acceptdatum_std,
fac.gettrackingdate ('MLDACP', m.mld_melding_key) mldacp,
m.mld_melding_einddatum_std,
t.fac_tracking_datum mldafm
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, -- 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, -12), 'yyyy')
AND t.fac_tracking_refkey = m.mld_melding_key
--AND NOT EXISTS -- Als er 2x wordt Afgemeld, want dat kan in theorie!
-- (SELECT 1
-- FROM fac_tracking
-- WHERE fac_srtnotificatie_key = 38 -- MLDAFM
-- AND fac_tracking_refkey = t.fac_tracking_refkey
-- AND fac_tracking_key > t.fac_tracking_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 = 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)
GROUP BY TO_CHAR (mldafm, 'iyyy-iw') || vt || vakgroeptype || vakgroep,
TO_CHAR (mldafm, 'iyyy'),
TO_CHAR (mldafm, 'iw'),
vt, vakgroeptype, vakgroep;
-- DJIN#58223: Recente wijzigingen reserveringen
CREATE OR REPLACE VIEW djin_v_rap_res_wijzigingen
(
datum_upd,
catalogus, -- Van de ruimte bij een ruimtereservering (met/zonder catering) en leeg voor een roomservice-reservering?
activiteit,
verwijderd, -- X als verwijderd
--dirtlevel,
datum_res,
van,
tot,
vestiging,
complex,
ruimte,
aant_pers,
resnr,
opstelling,
aanvrager,
gastheer_vrouw,
omschrijving,
opmerking,
extra_velden,
catering, -- X als catering
fclt_3d_discipline_key,
fclt_3d_locatie_key,
res_rsv_ruimte_key
)
AS
SELECT lastchange.fac_tracking_datum datum_upd,
x.ins_discipline_omschrijving catalogus,
x.res_activiteit_omschrijving activiteit,
DECODE (x.res_rsv_ruimte_verwijder, NULL, NULL, 'X') verwijderd,
--x.res_rsv_ruimte_dirtlevel dirtlevel,
x.res_rsv_ruimte_van datum,
x.res_rsv_ruimte_van van,
x.res_rsv_ruimte_tot tot,
x.alg_district_omschrijving vt,
x.alg_locatie_omschrijving cx,
x.ruimte,
x.res_rsv_ruimte_bezoekers aant_pers,
TO_CHAR (x.res_reservering_key) || '/' || TO_CHAR (x.res_rsv_ruimte_volgnr) resnr,
x.res_opstelling_omschrijving opstelling,
x.contact,
x.host,
x.res_rsv_ruimte_omschrijving,
x.res_rsv_ruimte_opmerking,
DECODE (k1.res_rsv_ruimte_key, NULL, '', k1.res_kenmerkreservering_waarde || CHR (13) || CHR (10))
|| DECODE (k2.res_rsv_ruimte_key, NULL, '', k2.res_kenmerkreservering_waarde || CHR (13) || CHR (10))
|| DECODE (k3.res_rsv_ruimte_key, NULL, '', k3.res_kenmerkreservering_waarde || CHR (13) || CHR (10))
|| DECODE (k4.res_rsv_ruimte_key, NULL, '', k4.res_kenmerkreservering_waarde || CHR (13) || CHR (10))
|| DECODE (k5.res_rsv_ruimte_key, NULL, '', k5.res_kenmerkreservering_waarde || CHR (13) || CHR (10))
extra_velden,
DECODE (rra.res_rsv_ruimte_key, NULL, NULL, 'X') catering,
COALESCE (x.ins_discipline_key, rra.res_discipline_key, rrd.res_discipline_key) ins_discipline_key,
x.alg_locatie_key,
x.res_rsv_ruimte_key
FROM (SELECT rrr.res_rsv_ruimte_key, rrr.res_reservering_key, rrr.res_rsv_ruimte_volgnr,
rd.ins_discipline_key, rd.ins_discipline_omschrijving,
act.res_activiteit_omschrijving,
rrr.res_rsv_ruimte_verwijder,
--rrr.res_rsv_ruimte_dirtlevel,
rrr.res_rsv_ruimte_van, rrr.res_rsv_ruimte_tot,
d.alg_district_omschrijving, l.alg_locatie_key, l.alg_locatie_omschrijving,
COALESCE (rr.res_ruimte_nr, pa.alg_plaatsaanduiding) ruimte,
rrr.res_rsv_ruimte_bezoekers, ro.res_opstelling_omschrijving,
pc.prs_perslid_naam_full contact, ph.prs_perslid_naam_full host,
rrr.res_rsv_ruimte_omschrijving, rrr.res_rsv_ruimte_opmerking
FROM res_rsv_ruimte rrr,
res_activiteit act,
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_v_plaatsaanduiding_all pa,
alg_district d,
alg_locatie l,
res_ruimte rr,
res_opstelling ro,
res_discipline rd,
prs_v_perslid_fullnames_all pc,
prs_v_perslid_fullnames_all ph
WHERE rrr.res_activiteit_key = act.res_activiteit_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_ruimte_key = pa.alg_onroerendgoed_keys
AND aog.alg_locatie_key = l.alg_locatie_key
AND l.alg_district_key = d.alg_district_key
AND rro.res_ruimte_key = rr.res_ruimte_key(+)
AND rr.res_discipline_key = rd.ins_discipline_key(+)
AND rro.res_opstelling_key = ro.res_opstelling_key(+)
--AND rrr.res_rsv_ruimte_dirtlevel = 0
AND rrr.res_rsv_ruimte_contact_key = pc.prs_perslid_key
AND rrr.res_rsv_ruimte_host_key = ph.prs_perslid_key) x
LEFT JOIN res_v_aanwezigkenmerkwaarde k1
ON x.res_rsv_ruimte_key = k1.res_rsv_ruimte_key
AND EXISTS
(SELECT 1
FROM res_kenmerk
WHERE res_kenmerk_verwijder IS NULL
AND res_srtkenmerk_key = 81 -- Afdeling
AND res_kenmerk_key = k1.res_kenmerk_key)
LEFT JOIN res_v_aanwezigkenmerkwaarde k2
ON x.res_rsv_ruimte_key = k2.res_rsv_ruimte_key
AND EXISTS
(SELECT 1
FROM res_kenmerk
WHERE res_kenmerk_verwijder IS NULL
AND res_srtkenmerk_key = 3 -- Bestemming
AND res_kenmerk_key = k2.res_kenmerk_key)
LEFT JOIN res_v_aanwezigkenmerkwaarde k3
ON x.res_rsv_ruimte_key = k3.res_rsv_ruimte_key
AND EXISTS
(SELECT 1
FROM res_kenmerk
WHERE res_kenmerk_verwijder IS NULL
AND res_srtkenmerk_key = 41 -- Kenteken
AND res_kenmerk_key = k3.res_kenmerk_key)
LEFT JOIN res_v_aanwezigkenmerkwaarde k4
ON x.res_rsv_ruimte_key = k4.res_rsv_ruimte_key
AND EXISTS
(SELECT 1
FROM res_kenmerk
WHERE res_kenmerk_verwijder IS NULL
AND res_srtkenmerk_key = 24 -- Kostenplaats/afdeling
AND res_kenmerk_key = k4.res_kenmerk_key)
LEFT JOIN res_v_aanwezigkenmerkwaarde k5
ON x.res_rsv_ruimte_key = k5.res_rsv_ruimte_key
AND EXISTS
(SELECT 1
FROM res_kenmerk
WHERE res_kenmerk_verwijder IS NULL
AND res_srtkenmerk_key = 42 -- Telefoonnummer
AND res_kenmerk_key = k5.res_kenmerk_key)
LEFT JOIN ( SELECT t.fac_tracking_refkey, MAX (t.fac_tracking_datum) fac_tracking_datum
FROM fac_tracking t, fac_srtnotificatie sn
WHERE t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
AND sn.fac_srtnotificatie_code LIKE 'RES%'
GROUP BY fac_tracking_refkey) lastchange
ON x.res_rsv_ruimte_key = lastchange.fac_tracking_refkey
LEFT JOIN ( SELECT rra.res_rsv_ruimte_key, COUNT ( * ) aantal, MIN (ra.res_discipline_key) res_discipline_key
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
WHERE rra.res_rsv_artikel_dirtlevel = 0
AND rra.res_artikel_key = ra.res_artikel_key
GROUP BY rra.res_rsv_ruimte_key) rra
ON x.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
LEFT JOIN ( SELECT rrd.res_rsv_ruimte_key, COUNT ( * ) aantal, MIN (rd.res_discipline_key) res_discipline_key
FROM res_v_aanwezigrsv_deel rrd, res_deel rd
WHERE rrd.res_rsv_deel_dirtlevel = 0
AND rrd.bez_bezoekers_key IS NULL -- Geen parkeerplaatsen (maar heeft DJI toch -nog- niet)!
AND rrd.res_deel_key = rd.res_deel_key
GROUP BY rrd.res_rsv_ruimte_key) rrd
ON x.res_rsv_ruimte_key = rrd.res_rsv_ruimte_key
WHERE x.ins_discipline_omschrijving IS NOT NULL -- Zaalreservering
OR (x.ins_discipline_omschrijving IS NULL -- Roomservice
AND (rra.aantal > 0 OR rrd.aantal > 0)) -- voor "iets"
;
-- DJIN#59913: Reserveringen (= catering) naar gebouw.
CREATE OR REPLACE VIEW djin_v_rap_res2gebouw
(
hide_f_sortering,
vestiging,
complex,
gebouwcode,
gebouwnaam,
ruimte,
datum,
van,
tot,
resnr,
aant_pers,
activiteit,
opstelling,
catalogus,
catering,
gastheer_vrouw,
aanvrager,
telefoonnr,
mobielnr,
kostenplaats,
omschrijving,
opmerking,
res_rsv_ruimte_key,
extra_key, -- Moet zo heten?
noti
)
AS
SELECT d.alg_district_omschrijving || l.alg_locatie_omschrijving || g.alg_gebouw_code || TO_CHAR (rrr.res_rsv_ruimte_van, 'yymmddhh24miss') || TO_CHAR (rrr.res_rsv_ruimte_key) || TO_CHAR (rra.res_rsv_artikel_levering, 'yymmddhh24miss') sortering,
d.alg_district_omschrijving vt,
l.alg_locatie_omschrijving cx,
g.alg_gebouw_code gebouwcode,
g.alg_gebouw_naam gebouwnaam,
COALESCE (rr.res_ruimte_nr, pa.alg_plaatsaanduiding) ruimte,
rrr.res_rsv_ruimte_van datum,
rra.res_rsv_artikel_levering van,
rrr.res_rsv_ruimte_tot tot,
TO_CHAR (rrr.res_reservering_key) || '/' || TO_CHAR (rrr.res_rsv_ruimte_volgnr) resnr,
rrr.res_rsv_ruimte_bezoekers aant_pers,
act.res_activiteit_omschrijving activiteit,
ro.res_opstelling_omschrijving opstelling,
cd.ins_discipline_omschrijving catalogus,
TO_CHAR (rra.res_rsv_artikel_aantal) || ' * ' || ra.res_artikel_omschrijving || DECODE (ra.res_artikel_eenheid, NULL, '', ' (' || ra.res_artikel_eenheid || ')') catering,
pfh.prs_perslid_naam_full host,
pfc.prs_perslid_naam_full contact,
pc.prs_perslid_telefoonnr telefoonnr,
pc.prs_perslid_mobiel mobielnr,
kp.prs_kostenplaats_nr kostenplaats,
rrr.res_rsv_ruimte_omschrijving oms,
rrr.res_rsv_ruimte_opmerking opm,
rrr.res_rsv_ruimte_key,
aog.alg_gebouw_key extra_key,
DECODE (TRUNC (rrr.res_rsv_ruimte_van), TRUNC (SYSDATE + 2), 'CUST01', DECODE (TRUNC (rrr.res_rsv_ruimte_van, 'IW'), TRUNC (SYSDATE, 'IW'), NULL, 'CUST03')) noti
FROM res_rsv_ruimte rrr,
res_activiteit act,
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_v_plaatsaanduiding_all pa,
alg_gebouw g,
alg_locatie l,
alg_district d,
res_ruimte rr,
res_opstelling ro,
prs_perslid pc,
prs_v_perslid_fullnames_all pfc,
prs_v_perslid_fullnames_all pfh,
prs_kostenplaats kp,
res_v_aanwezigrsv_artikel rra,
res_artikel ra,
res_discipline cd
WHERE rrr.res_rsv_ruimte_van BETWEEN TRUNC (SYSDATE) AND TRUNC (SYSDATE + 21, 'IW') -- Vandaag t/m komende 2 weken!
AND rrr.res_rsv_ruimte_dirtlevel = 0
AND rrr.res_activiteit_key = act.res_activiteit_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_ruimte_key = pa.alg_onroerendgoed_keys
AND aog.alg_gebouw_key = g.alg_gebouw_key
AND g.alg_locatie_key = l.alg_locatie_key
AND l.alg_district_key = d.alg_district_key
AND rro.res_ruimte_key = rr.res_ruimte_key(+)
AND rro.res_opstelling_key = ro.res_opstelling_key(+)
AND rrr.res_rsv_ruimte_contact_key = pc.prs_perslid_key
AND pc.prs_perslid_key = pfc.prs_perslid_key
AND rrr.res_rsv_ruimte_host_key = pfh.prs_perslid_key
AND rrr.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
AND rra.res_rsv_artikel_dirtlevel = 0
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key = cd.ins_discipline_key;
-- DJIN#59913: Bezoekers naar gebouw.
CREATE OR REPLACE VIEW djin_v_rap_bez2gebouw
(
hide_f_sortering,
vestiging,
complex,
gebouwcode,
gebouwnaam,
datum,
van,
tot,
afspraaknr,
bezoeker,
bedrijf,
parkeerplaats,
contactpers,
contactpers_telnr,
bezoek_voor,
bezoek_voor_telnr,
ruimte,
actie,
omschrijving,
opmerking,
badgenr,
bez_afspraak_key,
extra_key, -- Moet zo heten?
noti
)
AS
SELECT d.alg_district_omschrijving || l.alg_locatie_omschrijving || TO_CHAR (a.bez_afspraak_datum, 'yymmddhh24miss') || TO_CHAR (a.bez_afspraak_key) || b.bez_afspraak_naam sortering,
d.alg_district_omschrijving vt,
l.alg_locatie_omschrijving cx,
g.alg_gebouw_code gebouwcode,
g.alg_gebouw_naam gebouwnaam,
a.bez_afspraak_datum datum,
a.bez_afspraak_datum van,
a.bez_afspraak_eind tot,
TO_CHAR (a.bez_afspraak_key) afspraaknr,
b.bez_afspraak_naam bezoeker,
b.bez_afspraak_bedrijf bedrijf,
--rd.res_deel_omschrijving parkeerplaats,
DECODE (rd.res_deel_key, NULL, NULL, 'X') parkeerplaats,
pfc.prs_perslid_naam_full contactpers,
pc.prs_perslid_telefoonnr contactpers_telnr,
COALESCE (pfh.prs_perslid_naam_full, a.bez_afspraak_gastheer) bezoek_voor,
DECODE (pfh.prs_perslid_key, NULL, a.bez_afspraak_telefoonnr, ph.prs_perslid_telefoonnr) bezoek_voor_telnr,
COALESCE (rr.res_ruimte_nr, pa.alg_plaatsaanduiding) ruimte,
act.bez_actie_omschrijving actie,
a.bez_afspraak_opmerking oms,
b.bez_bezoekers_opmerking opm,
b.bez_bezoekers_pasnr badgenr,
a.bez_afspraak_key,
--COALESCE (g.alg_gebouw_key, fac.safe_to_number (ok.alg_onrgoedkenmerk_waarde)) extra_key,
a.alg_locatie_key extra_key, -- DJIN#61250: CUST02-noti voortaan per locatie!
DECODE (TRUNC (a.bez_afspraak_datum), TRUNC (SYSDATE + 1), 'CUST02', NULL) noti
FROM bez_afspraak a,
bez_actie act,
bez_bezoekers b,
alg_locatie l,
alg_district d,
res_rsv_ruimte rrr,
res_ruimte_opstelling rro,
res_ruimte rr,
alg_v_allonroerendgoed aog,
alg_gebouw g,
alg_v_plaatsaanduiding_all pa,
--(SELECT * FROM alg_v_aanwezigonrgoedkenmerk WHERE alg_kenmerk_key = 1040) ok,
res_rsv_deel rrd,
res_deel rd,
prs_perslid pc,
prs_v_perslid_fullnames_all pfc,
prs_perslid ph,
prs_v_perslid_fullnames_all pfh
WHERE a.bez_afspraak_datum BETWEEN TRUNC (SYSDATE) AND TRUNC (SYSDATE + 2) -- Vandaag en morgen!
AND a.bez_actie_key = act.bez_actie_key(+)
AND a.bez_afspraak_key = b.bez_afspraak_key
AND a.alg_locatie_key = l.alg_locatie_key(+)
AND l.alg_district_key = d.alg_district_key(+)
AND a.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key(+)
AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key(+)
AND rro.res_ruimte_key = rr.res_ruimte_key(+)
AND a.alg_onrgoed_keys = aog.alg_onroerendgoed_keys(+)
AND aog.alg_gebouw_key = g.alg_gebouw_key(+)
AND aog.alg_ruimte_key = pa.alg_onroerendgoed_keys(+)
--AND a.alg_locatie_key = ok.alg_onrgoed_key(+)
AND b.bez_bezoekers_key = rrd.bez_bezoekers_key(+)
AND rrd.res_deel_key = rd.res_deel_key(+)
AND a.bez_afspraak_contact_key = pc.prs_perslid_key(+)
AND pc.prs_perslid_key = pfc.prs_perslid_key(+)
AND a.bez_afspraak_host_key = ph.prs_perslid_key(+)
AND ph.prs_perslid_key = pfh.prs_perslid_key(+);
-- DJIN#59913: Dagelijkse rapport-notificatie naar gebouw (voor RES overmorgen en BEZ morgen).
CREATE OR REPLACE VIEW djin_v_noti_ext_gebouw_d
(
code,
sender,
receiver,
text,
key,
xkey,
xemail,
xmobile
)
AS
SELECT DISTINCT sn.fac_srtnotificatie_code,
NULL,
NULL,
REPLACE (REPLACE (sn.fac_srtnotificatie_oms, '##GEB##', g.alg_gebouw_code), '##DATUM##', TO_CHAR (SYSDATE + 2, 'dd-mm-yyyy')),
r.fac_usrrap_key,
v.extra_key,
g.alg_gebouw_email,
NULL
FROM djin_v_rap_res2gebouw v,
alg_gebouw g,
fac_usrrap r,
fac_srtnotificatie sn
WHERE TRUNC (v.datum) = TRUNC (SYSDATE + 2) -- Vandaag verstuurd voor overmorgen
AND v.extra_key = g.alg_gebouw_key
AND INSTR (g.alg_gebouw_email, '@') > 0
AND UPPER (r.fac_usrrap_view_name) = 'DJIN_V_RAP_RES2GEBOUW'
AND sn.fac_srtnotificatie_code = 'CUST01'
UNION ALL
SELECT DISTINCT sn.fac_srtnotificatie_code,
NULL,
NULL,
REPLACE (REPLACE (sn.fac_srtnotificatie_oms, '##GEB##', v.complex), '##DATUM##', TO_CHAR (SYSDATE + 1, 'dd-mm-yyyy')),
r.fac_usrrap_key,
v.extra_key,
--g.alg_gebouw_email,
ok.alg_onrgoedkenmerk_waarde, -- DJIN#61250: CUST02-noti voortaan per locatie!
NULL
FROM djin_v_rap_bez2gebouw v,
--alg_gebouw g,
(SELECT * FROM alg_v_aanwezigonrgoedkenmerk WHERE alg_kenmerk_key = 1040) ok,
fac_usrrap r,
fac_srtnotificatie sn
WHERE TRUNC (v.datum) = TRUNC (SYSDATE + 1) -- Vandaag verstuurd voor morgen
--AND v.extra_key = g.alg_gebouw_key
--AND INSTR (g.alg_gebouw_email, '@') > 0
AND v.extra_key = ok.alg_onrgoed_key
AND INSTR (ok.alg_onrgoedkenmerk_waarde, '@') > 0
AND UPPER (r.fac_usrrap_view_name) = 'DJIN_V_RAP_BEZ2GEBOUW'
AND sn.fac_srtnotificatie_code = 'CUST02';
-- DJIN#59913: Wekelijkse rapport-notificatie naar gebouw (voor RES komende 2 weken).
CREATE OR REPLACE VIEW djin_v_noti_ext_gebouw_w
(
code,
sender,
receiver,
text,
key,
xkey,
xemail,
xmobile
)
AS
SELECT DISTINCT sn.fac_srtnotificatie_code,
NULL,
NULL,
REPLACE (REPLACE (sn.fac_srtnotificatie_oms, '##GEB##', g.alg_gebouw_code), '##DATUM##', TO_CHAR (TRUNC (SYSDATE + 7, 'IW'), 'dd-mm-yyyy')),
r.fac_usrrap_key,
v.extra_key,
g.alg_gebouw_email,
NULL
FROM djin_v_rap_res2gebouw v,
alg_gebouw g,
fac_usrrap r,
fac_srtnotificatie sn
WHERE TRUNC (v.datum) BETWEEN TRUNC (SYSDATE + 7, 'IW') AND TRUNC (SYSDATE + 21, 'IW') -- Deze week verstuurd voor komende 2 weken!
AND v.extra_key = g.alg_gebouw_key
AND INSTR (g.alg_gebouw_email, '@') > 0
AND UPPER (r.fac_usrrap_view_name) = 'DJIN_V_RAP_RES2GEBOUW'
AND sn.fac_srtnotificatie_code = 'CUST03';
-- DJIN#59913: Uurlijkse afspraak-notificatie naar gebouw (voor last-minute afspraken).
CREATE OR REPLACE VIEW djin_v_noti_ext_gebouw_u
(
code,
sender,
receiver,
text,
key,
xkey,
xemail,
xmobile
)
AS
SELECT DISTINCT sn.fac_srtnotificatie_code,
NULL,
NULL,
REPLACE (REPLACE (sn.fac_srtnotificatie_oms, '##GEB##', v.complex), '##DATUM##', TO_CHAR (SYSDATE, 'dd-mm-yyyy')),
t.fac_tracking_refkey,
NULL,
--g.alg_gebouw_email,
ok.alg_onrgoedkenmerk_waarde, -- DJIN#61250: CUST02-noti voortaan per locatie!
NULL
FROM djin_v_rap_bez2gebouw v,
--alg_gebouw g,
(SELECT * FROM alg_v_aanwezigonrgoedkenmerk WHERE alg_kenmerk_key = 1040) ok,
fac_srtnotificatie sn,
fac_tracking t,
fac_notificatie_job nj
WHERE TRUNC (v.datum) = TRUNC (SYSDATE)
--AND v.extra_key = g.alg_gebouw_key
--AND INSTR (g.alg_gebouw_email, '@') > 0
AND v.extra_key = ok.alg_onrgoed_key
AND INSTR (ok.alg_onrgoedkenmerk_waarde, '@') > 0
AND sn.fac_srtnotificatie_code = 'CUST04'
AND v.bez_afspraak_key = t.fac_tracking_refkey
AND t.fac_srtnotificatie_key = 26 -- BEZMUT=Alleen nieuwe afspraken!
AND nj.fac_notificatie_job_view = 'DJIN_V_NOTI_EXT_GEBOUW_U'
AND t.fac_tracking_datum BETWEEN nj.fac_notificatie_job_nextrun - (nj.fac_notificatie_job_interval / 24) AND nj.fac_notificatie_job_nextrun;
-- DJIN#58881: UDR Sleutelmodule!
CREATE OR REPLACE VIEW djin_v_rap_udr_sle
AS
WITH kd AS (SELECT sk.vnr, sk.ins_srtkenmerk_key, sk.ins_srtkenmerk_omschrijving, kd.ins_deel_key, kd.waarde
FROM (SELECT ROWNUM vnr, ins_srtkenmerk_key, ins_srtkenmerk_omschrijving
FROM ( SELECT DISTINCT k.ins_kenmerk_volgnummer, sk.ins_srtkenmerk_key, sk.ins_srtkenmerk_omschrijving
FROM ins_v_aanwezigsrtdeel sd, ins_v_aanwezigsrtgroep sg, ins_v_aanwezigkenmerk k, ins_v_aanwezigsrtkenmerk sk
WHERE sd.ins_srtgroep_key = sg.ins_srtgroep_key
AND sg.ins_srtgroep_key = fac.getsetting ('cil_ins_srt_groep_key')
AND ((k.ins_kenmerk_niveau = 'S' AND k.ins_srtinstallatie_key = sd.ins_srtdeel_key)
OR (k.ins_kenmerk_niveau = 'G' AND k.ins_srtinstallatie_key = sg.ins_srtgroep_key)
OR (k.ins_kenmerk_niveau = 'D' AND k.ins_srtinstallatie_key = 2101)) -- Rijdend materieel
AND k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key
AND sk.ins_srtkenmerk_kenmerktype IN ('C', 'D', 'N', 'R', 'S', 'X', 'B', 'V')
ORDER BY k.ins_kenmerk_volgnummer)) sk
LEFT JOIN
(SELECT sk.ins_srtkenmerk_key, kd.ins_deel_key,
DECODE (
sk.ins_srtkenmerk_kenmerktype,
'R', flx.getdomeinwaarde (sk.fac_kenmerkdomein_key, kd.ins_kenmerkdeel_waarde),
'S', flx.getdomeinwaarde (sk.fac_kenmerkdomein_key, kd.ins_kenmerkdeel_waarde),
kd.ins_kenmerkdeel_waarde)
waarde
FROM ins_v_aanwezigkenmerkdeel kd, ins_v_aanwezigkenmerk k, ins_srtkenmerk sk
WHERE kd.ins_kenmerk_key = k.ins_kenmerk_key
AND k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key) kd
ON sk.ins_srtkenmerk_key = kd.ins_srtkenmerk_key)
SELECT x.ins_discipline_key, x.ins_srtgroep_key, x.ins_srtgroep_omschrijving, x.ins_srtdeel_code, x.ins_srtdeel_omschrijving,
x.ins_deel_omschrijving,
x.loc_cil, -- Bestaat altijd
x.loc_org, -- Bestaat niet altijd
x.geb_org,
x.ver_org,
x.rui_org,
k1.waarde kenmerk1,
k2.waarde kenmerk2,
k3.waarde kenmerk3,
k4.waarde kenmerk4,
k5.waarde kenmerk5,
k6.waarde kenmerk6,
k7.waarde kenmerk7,
k8.waarde kenmerk8,
k9.waarde kenmerk9,
k10.waarde kenmerk10,
k11.waarde kenmerk11,
k12.waarde kenmerk12,
k13.waarde kenmerk13,
k14.waarde kenmerk14,
k15.waarde kenmerk15,
k16.waarde kenmerk16,
k17.waarde kenmerk17,
k18.waarde kenmerk18,
k19.waarde kenmerk19,
k20.waarde kenmerk20
FROM (SELECT sg.ins_discipline_key, sg.ins_srtgroep_key, sd.ins_srtdeel_key, d.ins_deel_key,
sg.ins_srtgroep_omschrijving, sd.ins_srtdeel_code, sd.ins_srtdeel_omschrijving,
d.ins_deel_omschrijving,
lc.alg_locatie_code loc_cil, -- Bestaat altijd
lo.alg_locatie_code loc_org, -- Bestaat niet altijd
aog.alg_gebouw_code geb_org,
aog.alg_verdieping_code ver_org,
aog.alg_ruimte_nr rui_org
FROM ins_v_aanwezigsrtgroep sg,
ins_v_aanwezigsrtdeel sd,
ins_v_aanwezigdeel d,
alg_v_aanweziglocatie lc,
alg_v_allonrgoed_gegevens aog,
alg_v_aanweziglocatie lo
WHERE sg.ins_srtgroep_key = fac.getsetting ('cil_ins_srt_groep_key') -- fac.getsetting ('sle_ins_srt_groep_key')
AND sg.ins_srtgroep_key = sd.ins_srtgroep_key
AND sd.ins_srtdeel_key = d.ins_srtdeel_key
AND d.ins_alg_locatie_key = lc.alg_locatie_key
AND d.ins_alg_ruimte_key_org = aog.alg_onroerendgoed_keys(+)
AND aog.alg_locatie_key = lo.alg_locatie_key(+)) x
LEFT JOIN kd k1 ON x.ins_deel_key = k1.ins_deel_key AND k1.vnr = 1
LEFT JOIN kd k2 ON x.ins_deel_key = k2.ins_deel_key AND k2.vnr = 2
LEFT JOIN kd k3 ON x.ins_deel_key = k3.ins_deel_key AND k3.vnr = 3
LEFT JOIN kd k4 ON x.ins_deel_key = k4.ins_deel_key AND k4.vnr = 4
LEFT JOIN kd k5 ON x.ins_deel_key = k5.ins_deel_key AND k5.vnr = 5
LEFT JOIN kd k6 ON x.ins_deel_key = k6.ins_deel_key AND k6.vnr = 6
LEFT JOIN kd k7 ON x.ins_deel_key = k7.ins_deel_key AND k7.vnr = 7
LEFT JOIN kd k8 ON x.ins_deel_key = k8.ins_deel_key AND k8.vnr = 8
LEFT JOIN kd k9 ON x.ins_deel_key = k9.ins_deel_key AND k9.vnr = 9
LEFT JOIN kd k10 ON x.ins_deel_key = k10.ins_deel_key AND k10.vnr = 10
LEFT JOIN kd k11 ON x.ins_deel_key = k11.ins_deel_key AND k11.vnr = 11
LEFT JOIN kd k12 ON x.ins_deel_key = k12.ins_deel_key AND k12.vnr = 12
LEFT JOIN kd k13 ON x.ins_deel_key = k13.ins_deel_key AND k13.vnr = 13
LEFT JOIN kd k14 ON x.ins_deel_key = k14.ins_deel_key AND k14.vnr = 14
LEFT JOIN kd k15 ON x.ins_deel_key = k15.ins_deel_key AND k15.vnr = 15
LEFT JOIN kd k16 ON x.ins_deel_key = k16.ins_deel_key AND k16.vnr = 16
LEFT JOIN kd k17 ON x.ins_deel_key = k17.ins_deel_key AND k17.vnr = 17
LEFT JOIN kd k18 ON x.ins_deel_key = k18.ins_deel_key AND k18.vnr = 18
LEFT JOIN kd k19 ON x.ins_deel_key = k19.ins_deel_key AND k19.vnr = 19
LEFT JOIN kd k20 ON x.ins_deel_key = k20.ins_deel_key AND k20.vnr = 20
;
------ 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