diff --git a/DJIN/djin.sql b/DJIN/djin.sql index 0dead5ed4..6e28bf9dd 100644 --- a/DJIN/djin.sql +++ b/DJIN/djin.sql @@ -808,17 +808,23 @@ AS GROUP BY gg.prs_perslid_key, g.fac_groep_omschrijving) pgr -- PersoonGroepRechten ON x.prs_perslid_key = pgr.prs_perslid_key; + -- DJIN#37160: KPI-rapportages (incl. exports via NACHTWERK-taak) -- 90=PRSSYS /* Formatted on 30-8-2016 11:42:24 (QP5 v5.136.908.31019) */ CREATE OR REPLACE VIEW djin_v_rap_kpi_mld_std ( fclt_3d_locatie_key, - fclt_f_maand, + --fclt_f_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, @@ -831,7 +837,9 @@ CREATE OR REPLACE VIEW djin_v_rap_kpi_mld_std AS WITH mldstdcx -- Per vakgroep/complex onder vakgroeptype=3+4 de STD-meldingen=normaal+laag op MLDAFM-tijd! AS ( SELECT l.alg_locatie_key, - TO_CHAR (t.fac_tracking_datum, 'yyyy-mm') maand, + --TO_CHAR (t.fac_tracking_datum, 'yyyy-mm') maand, + TO_CHAR (t.fac_tracking_datum, 'yyyy-iw') week, + sd.ins_srtdiscipline_prefix type, md.ins_discipline_omschrijving vakgroep, COALESCE (ud.fac_usrdata_omschr, 'Onbekend') cl, d.alg_district_omschrijving vt, @@ -849,21 +857,24 @@ AS 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! + 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 > 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 IN (3, 4) -- Melding Facilitair/Aanvraag + 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(+) @@ -871,59 +882,114 @@ AS 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'), + TO_CHAR (t.fac_tracking_datum, 'yyyy-iw'), + sd.ins_srtdiscipline_prefix, md.ins_discipline_omschrijving, COALESCE (ud.fac_usrdata_omschr, 'Onbekend'), d.alg_district_omschrijving, l.alg_locatie_omschrijving) - SELECT cx.alg_locatie_key, nl.maand, nl.vakgroep, cl.cl, vt.vt, cx.cx, + 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.ac_cx, '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.uv_cx, '990') || '%' - FROM ( SELECT maand, vakgroep, SUM (acoptijd) / SUM (totaal) ac_nl, SUM (uvoptijd) / SUM (totaal) uv_nl + 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 maand, vakgroep) nl - LEFT JOIN ( SELECT maand, vakgroep, cl, SUM (acoptijd) / SUM (totaal) ac_cl, SUM (uvoptijd) / SUM (totaal) uv_cl + 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 maand, vakgroep, cl) cl - ON nl.maand = cl.maand AND nl.vakgroep = cl.vakgroep - LEFT JOIN ( SELECT maand, vakgroep, cl, vt, SUM (acoptijd) / SUM (totaal) ac_vt, SUM (uvoptijd) / SUM (totaal) uv_vt + 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 maand, vakgroep, 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, vakgroep, cl, vt, cx, acoptijd / totaal ac_cx, uvoptijd / totaal uv_cx + 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.maand = cx.maand AND vt.vakgroep = cx.vakgroep AND vt.cl = cx.cl AND vt.vt = cx.vt - UNION ALL - SELECT cx.alg_locatie_key, nl.maand, nl.vakgroep, cl.cl, vt.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 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.ac_cx, '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.uv_cx, '990') || '%' - FROM ( SELECT maand, 'Totaal' vakgroep, SUM (acoptijd) / SUM (totaal) ac_nl, SUM (uvoptijd) / SUM (totaal) uv_nl + 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 maand, 'Totaal') nl - LEFT JOIN ( SELECT maand, 'Totaal' vakgroep, cl, SUM (acoptijd) / SUM (totaal) ac_cl, SUM (uvoptijd) / SUM (totaal) uv_cl + 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 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 + 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 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 (acoptijd) / SUM (totaal) ac_cx, SUM (uvoptijd) / SUM (totaal) uv_cx + 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, 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; + 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 ( @@ -931,11 +997,15 @@ CREATE OR REPLACE VIEW djin_v_export_kpi_mld_std result_order ) AS - SELECT '"maand"' + 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"' @@ -948,7 +1018,9 @@ AS FROM DUAL UNION ALL SELECT '"' - || fclt_f_maand + || fclt_f_week + || '";"' + || fclt_f_type || '";"' || fclt_f_vakgroep || '";"' @@ -958,6 +1030,12 @@ AS || '";"' || 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 @@ -980,11 +1058,16 @@ AS CREATE OR REPLACE VIEW djin_v_rap_kpi_mld_urg ( fclt_3d_locatie_key, - fclt_f_maand, + --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, @@ -997,7 +1080,9 @@ CREATE OR REPLACE VIEW djin_v_rap_kpi_mld_urg AS WITH mldurgcx -- Per vakgroep/complex onder vakgroeptype=3+4 de URG-meldingen=kritiek+hoog op MLDAFM-tijd! AS ( SELECT l.alg_locatie_key, - TO_CHAR (t.fac_tracking_datum, 'yyyy-mm') maand, + --TO_CHAR (t.fac_tracking_datum, 'yyyy-mm') maand, + TO_CHAR (t.fac_tracking_datum, 'yyyy-iw') week, + sd.ins_srtdiscipline_prefix type, md.ins_discipline_omschrijving vakgroep, COALESCE (ud.fac_usrdata_omschr, 'Onbekend') cl, d.alg_district_omschrijving vt, @@ -1015,21 +1100,24 @@ AS 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! + 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 > ADD_MONTHS (TRUNC (SYSDATE, 'mm'), -25) + AND t.fac_tracking_datum > TRUNC (SYSDATE, 'iw') - 770 -- Afgelopen 110 weken AND t.fac_tracking_refkey = m.mld_melding_key --AND m.mld_melding_status IN (5, 6) -- Afgemeld/Verwerkt AND m.mld_melding_start_key IS NULL -- Muv. vervolgmeldingen AND m.mld_melding_spoed IN (1, 2) -- Normaal/Laag AND m.mld_stdmelding_key = sm.mld_stdmelding_key AND sm.mld_ins_discipline_key = md.ins_discipline_key - AND md.ins_srtdiscipline_key IN (3, 4) -- Melding Facilitair/Aanvraag + 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(+) @@ -1037,59 +1125,114 @@ AS 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'), + TO_CHAR (t.fac_tracking_datum, 'yyyy-iw'), + sd.ins_srtdiscipline_prefix, md.ins_discipline_omschrijving, COALESCE (ud.fac_usrdata_omschr, 'Onbekend'), d.alg_district_omschrijving, l.alg_locatie_omschrijving) - SELECT cx.alg_locatie_key, nl.maand, nl.vakgroep, cl.cl, vt.vt, cx.cx, + 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.ac_cx, '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.uv_cx, '990') || '%' - FROM ( SELECT maand, vakgroep, SUM (acoptijd) / SUM (totaal) ac_nl, SUM (uvoptijd) / SUM (totaal) uv_nl + 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 maand, vakgroep) nl - LEFT JOIN ( SELECT maand, vakgroep, cl, SUM (acoptijd) / SUM (totaal) ac_cl, SUM (uvoptijd) / SUM (totaal) uv_cl + 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 maand, vakgroep, cl) cl - ON nl.maand = cl.maand AND nl.vakgroep = cl.vakgroep - LEFT JOIN ( SELECT maand, vakgroep, cl, vt, SUM (acoptijd) / SUM (totaal) ac_vt, SUM (uvoptijd) / SUM (totaal) uv_vt + 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 maand, vakgroep, 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, vakgroep, cl, vt, cx, acoptijd / totaal ac_cx, uvoptijd / totaal uv_cx + 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.maand = cx.maand AND vt.vakgroep = cx.vakgroep AND vt.cl = cx.cl AND vt.vt = cx.vt - UNION ALL - SELECT cx.alg_locatie_key, nl.maand, nl.vakgroep, cl.cl, vt.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 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.ac_cx, '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.uv_cx, '990') || '%' - FROM ( SELECT maand, 'Totaal' vakgroep, SUM (acoptijd) / SUM (totaal) ac_nl, SUM (uvoptijd) / SUM (totaal) uv_nl + 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 maand, 'Totaal') nl - LEFT JOIN ( SELECT maand, 'Totaal' vakgroep, cl, SUM (acoptijd) / SUM (totaal) ac_cl, SUM (uvoptijd) / SUM (totaal) uv_cl + 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 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 + 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 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 (acoptijd) / SUM (totaal) ac_cx, SUM (uvoptijd) / SUM (totaal) uv_cx + 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, 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; + 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 ( @@ -1097,11 +1240,15 @@ CREATE OR REPLACE VIEW djin_v_export_kpi_mld_urg result_order ) AS - SELECT '"maand"' + 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"' @@ -1114,7 +1261,9 @@ AS FROM DUAL UNION ALL SELECT '"' - || fclt_f_maand + || fclt_f_week + || '";"' + || fclt_f_type || '";"' || fclt_f_vakgroep || '";"' @@ -1124,6 +1273,12 @@ AS || '";"' || 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 @@ -1146,11 +1301,16 @@ AS CREATE OR REPLACE VIEW djin_v_rap_kpi_mld_vvg ( fclt_3d_locatie_key, - fclt_f_maand, + --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, @@ -1163,7 +1323,9 @@ CREATE OR REPLACE VIEW djin_v_rap_kpi_mld_vvg AS WITH mldvvgcx -- Per vakgroep/complex onder vakgroeptype=3+4 de VVG-meldingen (elke spoed) op MLDAFM-tijd! AS ( SELECT l.alg_locatie_key, - TO_CHAR (t.fac_tracking_datum, 'yyyy-mm') maand, + --TO_CHAR (t.fac_tracking_datum, 'yyyy-mm') maand, + TO_CHAR (t.fac_tracking_datum, 'yyyy-iw') week, + sd.ins_srtdiscipline_prefix type, md.ins_discipline_omschrijving vakgroep, COALESCE (ud.fac_usrdata_omschr, 'Onbekend') cl, d.alg_district_omschrijving vt, @@ -1181,20 +1343,23 @@ AS 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! + 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 > 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 IN (3, 4) -- Melding Facilitair/Aanvraag + 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(+) @@ -1202,59 +1367,114 @@ AS 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'), + TO_CHAR (t.fac_tracking_datum, 'yyyy-iw'), + sd.ins_srtdiscipline_prefix, md.ins_discipline_omschrijving, COALESCE (ud.fac_usrdata_omschr, 'Onbekend'), d.alg_district_omschrijving, l.alg_locatie_omschrijving) - SELECT cx.alg_locatie_key, nl.maand, nl.vakgroep, cl.cl, vt.vt, cx.cx, + 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.ac_cx, '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.uv_cx, '990') || '%' - FROM ( SELECT maand, vakgroep, SUM (acoptijd) / SUM (totaal) ac_nl, SUM (uvoptijd) / SUM (totaal) uv_nl + 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 maand, vakgroep) nl - LEFT JOIN ( SELECT maand, vakgroep, cl, SUM (acoptijd) / SUM (totaal) ac_cl, SUM (uvoptijd) / SUM (totaal) uv_cl + 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 maand, vakgroep, cl) cl - ON nl.maand = cl.maand AND nl.vakgroep = cl.vakgroep - LEFT JOIN ( SELECT maand, vakgroep, cl, vt, SUM (acoptijd) / SUM (totaal) ac_vt, SUM (uvoptijd) / SUM (totaal) uv_vt + 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 maand, vakgroep, 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, vakgroep, cl, vt, cx, acoptijd / totaal ac_cx, uvoptijd / totaal uv_cx + 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.maand = cx.maand AND vt.vakgroep = cx.vakgroep AND vt.cl = cx.cl AND vt.vt = cx.vt - UNION ALL - SELECT cx.alg_locatie_key, nl.maand, nl.vakgroep, cl.cl, vt.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 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.ac_cx, '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.uv_cx, '990') || '%' - FROM ( SELECT maand, 'Totaal' vakgroep, SUM (acoptijd) / SUM (totaal) ac_nl, SUM (uvoptijd) / SUM (totaal) uv_nl + 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 maand, 'Totaal') nl - LEFT JOIN ( SELECT maand, 'Totaal' vakgroep, cl, SUM (acoptijd) / SUM (totaal) ac_cl, SUM (uvoptijd) / SUM (totaal) uv_cl + 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 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 + 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 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 (acoptijd) / SUM (totaal) ac_cx, SUM (uvoptijd) / SUM (totaal) uv_cx + 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, 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; + 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 ( @@ -1262,11 +1482,15 @@ CREATE OR REPLACE VIEW djin_v_export_kpi_mld_vvg result_order ) AS - SELECT '"maand"' + 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"' @@ -1279,7 +1503,9 @@ AS FROM DUAL UNION ALL SELECT '"' - || fclt_f_maand + || fclt_f_week + || '";"' + || fclt_f_type || '";"' || fclt_f_vakgroep || '";"' @@ -1289,6 +1515,12 @@ AS || '";"' || 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 @@ -1311,11 +1543,15 @@ AS CREATE OR REPLACE VIEW djin_v_rap_kpi_klr ( fclt_3d_locatie_key, - fclt_f_maand, + --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, @@ -1328,7 +1564,8 @@ CREATE OR REPLACE VIEW djin_v_rap_kpi_klr AS WITH mldklrcx -- Per melding/complex onder vakgroeptype=2 de KLR-meldingen (klantreacties) op MLDAFM-tijd! AS ( SELECT l.alg_locatie_key, - TO_CHAR (t.fac_tracking_datum, 'yyyy-mm') maand, + --TO_CHAR (t.fac_tracking_datum, 'yyyy-mm') maand, + TO_CHAR (t.fac_tracking_datum, 'yyyy-iw') week, sm.mld_stdmelding_omschrijving melding, COALESCE (ud.fac_usrdata_omschr, 'Onbekend') cl, d.alg_district_omschrijving vt, @@ -1353,7 +1590,8 @@ AS 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 > 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 @@ -1366,59 +1604,61 @@ AS 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'), + TO_CHAR (t.fac_tracking_datum, 'yyyy-iw'), sm.mld_stdmelding_omschrijving, COALESCE (ud.fac_usrdata_omschr, 'Onbekend'), d.alg_district_omschrijving, l.alg_locatie_omschrijving) - SELECT cx.alg_locatie_key, nl.maand, nl.melding, cl.cl, vt.vt, cx.cx, + 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.ac_cx, '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.uv_cx, '990') || '%' - FROM ( SELECT maand, melding, SUM (acoptijd) / SUM (totaal) ac_nl, SUM (uvoptijd) / SUM (totaal) uv_nl + 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 maand, melding) nl - LEFT JOIN ( SELECT maand, melding, cl, SUM (acoptijd) / SUM (totaal) ac_cl, SUM (uvoptijd) / SUM (totaal) uv_cl + 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 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 + 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 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, acoptijd / totaal ac_cx, uvoptijd / totaal uv_cx + 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.maand = cx.maand AND vt.melding = cx.melding AND vt.cl = cx.cl AND vt.vt = cx.vt - UNION ALL - SELECT cx.alg_locatie_key, nl.maand, nl.vakgroep, cl.cl, vt.vt, cx.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.ac_cx, '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.uv_cx, '990') || '%' - FROM ( SELECT maand, 'Totaal' vakgroep, SUM (acoptijd) / SUM (totaal) ac_nl, SUM (uvoptijd) / SUM (totaal) uv_nl + 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 maand, 'Totaal') nl - LEFT JOIN ( SELECT maand, 'Totaal' vakgroep, cl, SUM (acoptijd) / SUM (totaal) ac_cl, SUM (uvoptijd) / SUM (totaal) uv_cl + 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 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 + 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 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 (acoptijd) / SUM (totaal) ac_cx, SUM (uvoptijd) / SUM (totaal) uv_cx + 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, 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; + 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 ( @@ -1426,11 +1666,14 @@ CREATE OR REPLACE VIEW djin_v_export_kpi_klr result_order ) AS - SELECT '"maand"' + 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"' @@ -1443,7 +1686,7 @@ AS FROM DUAL UNION ALL SELECT '"' - || fclt_f_maand + || fclt_f_week || '";"' || fclt_f_melding || '";"' @@ -1453,6 +1696,12 @@ AS || '";"' || fclt_f_complex || '";"' + || n_tot_klr_cx + || '";"' + || n_ac_klr_cx + || '";"' + || n_uv_klr_cx + || '";"' || ac_klr_nl || '";"' || ac_klr_cl @@ -1476,7 +1725,7 @@ AS CREATE OR REPLACE VIEW djin_v_rap_kpi_res ( fclt_3d_locatie_key, - fclt_f_maand, + fclt_f_week, fclt_f_catalogus, fclt_f_cluster, fclt_f_vestiging, @@ -1493,7 +1742,7 @@ CREATE OR REPLACE VIEW djin_v_rap_kpi_res AS WITH rescatcx -- Per catalogus/complex de reserveringen van ruimten ‚n voorzieningen op tot-tijd! AS ( SELECT l.alg_locatie_key, - resbes.maand, + resbes.wk, COALESCE (rd.ins_discipline_omschrijving, 'Ruimtes') catalogus, COALESCE (ud.fac_usrdata_omschr, 'Onbekend') cl, d.alg_district_omschrijving vt, @@ -1501,33 +1750,33 @@ AS 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') maand, -- DISTINCT igv. verwijderde res_alg_ruimte! + FROM (SELECT DISTINCT TO_CHAR (p.wk, 'yyyy-iw') wk, -- DISTINCT igv. verwijderde res_alg_ruimte! -1 res_discipline_key, -- Ruimte-catalogi niet per catalogus onderverdelen! rr.res_ruimte_key resource_key, rar.alg_ruimte_key, - fac.count_work_days (p.mnd - 1, ADD_MONTHS (p.mnd, 1) - 1) + 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 ADD_MONTHS (TRUNC (SYSDATE, 'mm'), LEVEL - 26) mnd FROM DUAL CONNECT BY LEVEL <= 25) p + (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 < ADD_MONTHS (p.mnd, 1) - AND (rar.res_alg_ruimte_verwijder IS NULL OR rar.res_alg_ruimte_verwijder >= p.mnd) + 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.mnd, 'yyyy-mm') maand, -- DISTINCT per definitie! + SELECT TO_CHAR (p.wk, 'yyyy-iw') wk, -- DISTINCT per definitie! rd.res_discipline_key, rd.res_deel_key resource_key, COALESCE (d.ins_alg_ruimte_key_org, d.ins_alg_ruimte_key) alg_ruimte_key, - fac.count_work_days (p.mnd - 1, ADD_MONTHS (p.mnd, 1) - 1) * 9 -- = 17-8 + fac.count_work_days (p.wk - 1, p.wk + 5) * 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 + (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 < 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') maand, + AND rd.res_deel_aanmaak < p.wk + 7 + AND (rd.res_deel_verwijder IS NULL OR rd.res_deel_verwijder >= p.wk)) resbes, + ( SELECT TO_CHAR (rrr.res_rsv_ruimte_tot, 'yyyy-iw') wk, -1 res_discipline_key, -- Ruimte-catalogi niet per catalogus onderverdelen! rr.res_ruimte_key resource_key, ra.alg_ruimte_key, @@ -1539,7 +1788,7 @@ AS 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 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' @@ -1547,12 +1796,12 @@ AS 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'), + GROUP BY TO_CHAR (rrr.res_rsv_ruimte_tot, 'yyyy-iw'), -1, rr.res_ruimte_key, ra.alg_ruimte_key UNION ALL -- Eendaagse voorzieningen! - SELECT TO_CHAR (rrd.res_rsv_deel_tot, 'yyyy-mm') maand, + SELECT TO_CHAR (rrd.res_rsv_deel_tot, 'yyyy-iw') wk, rd.res_discipline_key, rd.res_deel_key resource_key, COALESCE (d.ins_alg_ruimte_key_org, d.ins_alg_ruimte_key) alg_ruimte_key, @@ -1564,7 +1813,7 @@ AS 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 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' @@ -1575,12 +1824,12 @@ AS 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'), + GROUP BY TO_CHAR (rrd.res_rsv_deel_tot, 'yyyy-iw'), rd.res_discipline_key, rd.res_deel_key, COALESCE (d.ins_alg_ruimte_key_org, d.ins_alg_ruimte_key) UNION ALL -- Meerdaagse voorzieningen! - SELECT TO_CHAR (p.dag, 'yyyy-mm') maand, + SELECT TO_CHAR (p.dag, 'yyyy-iw') wk, rd.res_discipline_key, rd.res_deel_key resource_key, COALESCE (d.ins_alg_ruimte_key_org, d.ins_alg_ruimte_key) alg_ruimte_key, @@ -1591,11 +1840,11 @@ AS 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 + (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 ADD_MONTHS (TRUNC (SYSDATE, 'mm'), -25) AND TRUNC (SYSDATE, 'mm') + 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! @@ -1607,7 +1856,7 @@ AS 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'), + GROUP BY TO_CHAR (p.dag, 'yyyy-iw'), rd.res_discipline_key, rd.res_deel_key, COALESCE (d.ins_alg_ruimte_key_org, d.ins_alg_ruimte_key)) resbez, @@ -1617,7 +1866,7 @@ AS alg_district d, -- Ook verwijderde districten! alg_v_aanwezigonrgoedkenmerk ok, fac_usrdata ud - WHERE resbes.maand = resbez.maand(+) + 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(+) @@ -1632,12 +1881,12 @@ AS 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.maand, + 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.maand, nl.catalogus, cl.cl, vt.vt, cx.cx, + 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'), @@ -1646,20 +1895,20 @@ AS TO_CHAR (100 * cl.bzg_cl, '990') || '%', TO_CHAR (100 * vt.bzg_vt, '990') || '%', TO_CHAR (100 * cx.bzg_cx, '990') || '%' - FROM ( SELECT maand, catalogus, SUM (aantal_reserveringen) ant_nl, SUM (COALESCE (bez_uren, 0)) / SUM (bes_uren) bzg_nl + FROM ( SELECT wk, catalogus, SUM (aantal_reserveringen) ant_nl, SUM (COALESCE (bez_uren, 0)) / SUM (bes_uren) bzg_nl FROM rescatcx - GROUP BY maand, catalogus) nl - LEFT JOIN ( SELECT maand, catalogus, cl, SUM (aantal_reserveringen) ant_cl, SUM (COALESCE (bez_uren, 0)) / SUM (bes_uren) bzg_cl + 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 maand, catalogus, cl) cl - ON nl.maand = cl.maand AND nl.catalogus = cl.catalogus - LEFT JOIN ( SELECT maand, catalogus, cl, vt, SUM (aantal_reserveringen) ant_vt, SUM (COALESCE (bez_uren, 0)) / SUM (bes_uren) bzg_vt + 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 maand, catalogus, cl, vt) vt - ON cl.maand = vt.maand AND cl.catalogus = vt.catalogus AND cl.cl = vt.cl - LEFT JOIN (SELECT alg_locatie_key, maand, catalogus, cl, vt, cx, aantal_reserveringen ant_cx, COALESCE (bez_uren, 0) / bes_uren bzg_cx + 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.maand = cx.maand AND vt.catalogus = cx.catalogus AND vt.cl = cx.cl AND vt.vt = cx.vt; + 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 @@ -1668,7 +1917,7 @@ CREATE OR REPLACE VIEW djin_v_export_kpi_res result_order ) AS - SELECT '"maand"' + SELECT '"week"' || ';"catalogus"' || ';"cluster"' || ';"vestiging"' @@ -1685,7 +1934,7 @@ AS FROM DUAL UNION ALL SELECT '"' - || fclt_f_maand + || fclt_f_week || '";"' || fclt_f_catalogus || '";"' @@ -1714,9 +1963,127 @@ AS 1 FROM djin_v_rap_kpi_res; +CREATE OR REPLACE VIEW djin_v_rap_kpi_tot +( + fclt_3d_locatie_key, + fclt_f_week, + fclt_f_type, + fclt_f_vakgroep, + fclt_f_cluster, + fclt_f_vestiging, + fclt_f_complex, + tot_mld, + ac_mld, + uv_mld, + tot_ord +) +AS + WITH mldtot -- Per vakgroep/complex alle meldingen (incl. onderliggende opdrachten) op MLDAFM-tijd! + AS ( SELECT l.alg_locatie_key, + TO_CHAR (t.fac_tracking_datum, 'yyyy-iw') week, + sd.ins_srtdiscipline_prefix type, + md.ins_discipline_omschrijving vakgroep, + COALESCE (ud.fac_usrdata_omschr, 'Onbekend') cl, + d.alg_district_omschrijving vt, + l.alg_locatie_omschrijving cx, + COUNT ( * ) tot_mld, + SUM (DECODE ( + SIGN(m.mld_melding_acceptdatum_std - fac.gettrackingdate ('MLDACP', m.mld_melding_key)), + -1, 0, + 1)) + acoptijd, + SUM (DECODE ( + SIGN(m.mld_melding_einddatum_std - TRUNC (t.fac_tracking_datum, 'mi')), + -1, 0, + 1)) + uvoptijd, + COUNT (o.mld_opdr_key) tot_ord + FROM fac_tracking t, + mld_melding m, + mld_opdr o, + mld_stdmelding sm, -- Ook verwijderde meldingen, + mld_discipline md, -- en verwijderde vakgroepen, + ins_srtdiscipline sd, -- en verwijderde vakgroeptypen, + alg_locatie l, -- en verwijderde locaties, + alg_district d, -- en verwijderde districten! + alg_v_aanwezigonrgoedkenmerk ok, + fac_usrdata ud + WHERE t.fac_srtnotificatie_key = 38 -- MLDAFM + AND t.fac_tracking_datum > TRUNC (SYSDATE, 'iw') - 770 -- Afgelopen 110 weken + AND t.fac_tracking_refkey = m.mld_melding_key + AND m.mld_melding_key = o.mld_melding_key + --AND m.mld_melding_status IN (5, 6) -- Afgemeld/Verwerkt + AND m.mld_stdmelding_key = sm.mld_stdmelding_key + AND sm.mld_ins_discipline_key = md.ins_discipline_key + AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key + AND m.mld_alg_locatie_key = l.alg_locatie_key + AND l.alg_district_key = d.alg_district_key + AND l.alg_locatie_key = ok.alg_onrgoed_key(+) + AND ok.alg_onrgoed_niveau(+) = 'L' + AND ok.alg_kenmerk_key(+) = 1000 -- Cluster + AND ok.alg_onrgoedkenmerk_waarde = TO_CHAR (ud.fac_usrdata_key(+)) + GROUP BY l.alg_locatie_key, + TO_CHAR (t.fac_tracking_datum, 'yyyy-iw'), + sd.ins_srtdiscipline_prefix, + md.ins_discipline_omschrijving, + COALESCE (ud.fac_usrdata_omschr, 'Onbekend'), + d.alg_district_omschrijving, + l.alg_locatie_omschrijving) + SELECT alg_locatie_key, week, type, vakgroep, cl, vt, cx, -- Per vakgroep per vakgroeptype! + TO_CHAR (tot_mld), TO_CHAR (acoptijd), TO_CHAR (uvoptijd), TO_CHAR (tot_ord) + FROM mldtot + UNION ALL -- ALLE vakgroepen over ALLE vakgroeptypen! + SELECT alg_locatie_key, week, 'Alle' type, 'Totaal' vakgroep, cl, vt, cx, + TO_CHAR (SUM (tot_mld)), TO_CHAR (SUM (acoptijd)), TO_CHAR (SUM (uvoptijd)), TO_CHAR (SUM (tot_ord)) + FROM mldtot + GROUP BY alg_locatie_key, week, 'Alle', 'Totaal', cl, vt, cx; + +CREATE OR REPLACE VIEW djin_v_export_kpi_tot +( + result, + result_order +) +AS + SELECT '"week"' + || ';"type"' + || ';"vakgroep"' + || ';"cluster"' + || ';"vestiging"' + || ';"complex"' + || ';"mld"' + || ';"ac"' + || ';"uv"' + || ';"ord"', + 0 + FROM DUAL + UNION ALL + SELECT '"' + || fclt_f_week + || '";"' + || fclt_f_type + || '";"' + || fclt_f_vakgroep + || '";"' + || fclt_f_cluster + || '";"' + || fclt_f_vestiging + || '";"' + || fclt_f_complex + || '";"' + || tot_mld + || '";"' + || ac_mld + || '";"' + || uv_mld + || '";"' + || tot_ord + || '"', + 1 + FROM djin_v_rap_kpi_tot; + BEGIN adm.systrackscriptId('$Id$', 0); END; / -BEGIN fac.registercustversion('DJIN', 6); END; +BEGIN fac.registercustversion('DJIN', 7); END; / commit; spool off