FCLT#90103 Performance optimalisatie res_v_udr_reservering

svn path=/Database/trunk/; revision=70447
This commit is contained in:
Jos Groot Lipman
2025-09-29 14:22:20 +00:00
parent 0601eb9cc8
commit 606b681557

View File

@@ -780,13 +780,53 @@ AS
rrr.res_rsv_ruimte_omschrijving,
rrr.res_rsv_ruimte_aanmaak,
rrr.res_rsv_ruimte_van,
host_pf.prs_perslid_naam_full,
contact_pf.prs_perslid_naam_full,
ph.prs_perslid_email,
pc.prs_perslid_email,
invoerder_pf.prs_perslid_naam_full,
ksg.prs_kostensoortgrp_oms kostensoortgroep,
ks.prs_kostensoort_oms kostensoort,
(SELECT prs_perslid_naam_full
FROM prs_v_perslid_fullnames_all pf
WHERE pf.prs_perslid_key = rrr.res_rsv_ruimte_host_key),
(SELECT prs_perslid_naam_full
FROM prs_v_perslid_fullnames_all pf
WHERE pf.prs_perslid_key = rrr.res_rsv_ruimte_contact_key),
(SELECT ph.prs_perslid_email
FROM prs_perslid ph
WHERE ph.prs_perslid_key = rrr.res_rsv_ruimte_host_key),
(SELECT pc.prs_perslid_email
FROM prs_perslid pc
WHERE pc.prs_perslid_key = rrr.res_rsv_ruimte_contact_key),
(SELECT pf.prs_perslid_naam_full
FROM fac_tracking tr, fac_srtnotificatie str, prs_v_perslid_fullnames_all pf
WHERE tr.prs_perslid_key = pf.prs_perslid_key
AND str.fac_srtnotificatie_code = 'RESNEW'
AND tr.fac_srtnotificatie_key = str.fac_srtnotificatie_key
AND tr.fac_tracking_refkey = rrr.res_rsv_ruimte_key),
(SELECT ksg.prs_kostensoortgrp_oms
FROM prs_kostensoortgrp ksg, prs_kostensoort ks
WHERE ksg.prs_kostensoortgrp_key = ks.prs_kostensoortgrp_key
AND ks.prs_kostensoort_key =
(SELECT disc.prs_kostensoort_key
FROM res_discipline disc
WHERE disc.ins_discipline_key =
(SELECT ins_discipline_key
FROM ins_tab_discipline d,
res_ruimte_opstelling ro,
res_ruimte rr
WHERE rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
AND ro.res_ruimte_key = rr.res_ruimte_key
AND rr.res_discipline_key = d.ins_discipline_key)))
kostensoortgroep,
(SELECT ks.prs_kostensoort_oms
FROM prs_kostensoort ks
WHERE ks.prs_kostensoort_key =
(SELECT disc.prs_kostensoort_key
FROM res_discipline disc
WHERE disc.ins_discipline_key =
(SELECT ins_discipline_key
FROM ins_tab_discipline d,
res_ruimte_opstelling ro,
res_ruimte rr
WHERE rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
AND ro.res_ruimte_key = rr.res_ruimte_key
AND rr.res_discipline_key = d.ins_discipline_key)))
kostensoort,
k.prs_kostenplaats_nr,
k.prs_kostenplaats_omschrijving,
k.prs_kostenplaats_extern,
@@ -796,32 +836,114 @@ AS
a.prs_afdeling_key,
a.prs_afdeling_naam,
a.prs_afdeling_omschrijving,
rg.alg_regio_omschrijving,
d.alg_district_omschrijving,
l.alg_locatie_key,
l.alg_locatie_code,
l.alg_locatie_omschrijving,
l.alg_locatie_plaats,
g.alg_gebouw_code,
g.alg_gebouw_key,
v.alg_verdieping_code,
(SELECT rg.alg_regio_omschrijving
FROM alg_regio rg,
alg_district d,
alg_locatie l,
alg_gebouw g,
alg_verdieping v,
alg_ruimte r
WHERE rg.alg_regio_key = d.alg_regio_key
AND d.alg_district_key = l.alg_district_key
AND l.alg_locatie_key = g.alg_locatie_key
AND g.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
(SELECT d.alg_district_omschrijving
FROM alg_district d,
alg_locatie l,
alg_gebouw g,
alg_verdieping v,
alg_ruimte r
WHERE d.alg_district_key = l.alg_district_key
AND l.alg_locatie_key = g.alg_locatie_key
AND g.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
(SELECT l.alg_locatie_key
FROM alg_locatie l,
alg_gebouw g,
alg_verdieping v,
alg_ruimte r
WHERE l.alg_locatie_key = g.alg_locatie_key
AND g.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
(SELECT alg_locatie_code
FROM alg_locatie l,
alg_gebouw g,
alg_verdieping v,
alg_ruimte r
WHERE l.alg_locatie_key = g.alg_locatie_key
AND g.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
(SELECT alg_locatie_omschrijving
FROM alg_locatie l,
alg_gebouw g,
alg_verdieping v,
alg_ruimte r
WHERE l.alg_locatie_key = g.alg_locatie_key
AND g.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
(SELECT alg_locatie_plaats
FROM alg_locatie l,
alg_gebouw g,
alg_verdieping v,
alg_ruimte r
WHERE l.alg_locatie_key = g.alg_locatie_key
AND g.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
(SELECT alg_gebouw_code
FROM alg_gebouw g, alg_verdieping v, alg_ruimte r
WHERE g.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
(SELECT v.alg_gebouw_key
FROM alg_verdieping v, alg_ruimte r
WHERE v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
(SELECT alg_verdieping_code
FROM alg_verdieping v, alg_ruimte r
WHERE v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
r2a.ruimte_nr,
r2a.opstelling,
r2a.capaciteit,
rrr.res_rsv_ruimte_noshow,
rrr.res_rsv_ruimte_bezoekers_shown,
NVL(pr.fac_profiel_limiet, 0),
p.prs_perslid_nr,
d.ins_discipline_key,
d.ins_discipline_key,
d.ins_discipline_omschrijving,
DECODE(rrr.alg_ruimte_key, NULL, 'Ja', 'Nee'),
NVL ( (SELECT pr.fac_profiel_limiet
FROM fac_profiel pr
WHERE p.fac_profiel_key = pr.fac_profiel_key), 0),
prs_perslid_nr,
(SELECT ins_discipline_key
FROM ins_tab_discipline d, res_ruimte_opstelling ro, res_ruimte rr
WHERE rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
AND ro.res_ruimte_key = rr.res_ruimte_key
AND rr.res_discipline_key = d.ins_discipline_key),
(SELECT ins_discipline_key
FROM ins_tab_discipline d, res_ruimte_opstelling ro, res_ruimte rr
WHERE rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
AND ro.res_ruimte_key = rr.res_ruimte_key
AND rr.res_discipline_key = d.ins_discipline_key),
(SELECT ins_discipline_omschrijving
FROM ins_tab_discipline d, res_ruimte_opstelling ro, res_ruimte rr
WHERE rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
AND ro.res_ruimte_key = rr.res_ruimte_key
AND rr.res_discipline_key = d.ins_discipline_key),
DECODE (rrr.alg_ruimte_key, NULL, 'Ja', 'Nee'),
rrr.res_rsv_ruimte_bezoekers,
rrr.res_rsv_ruimte_van,
rrr.res_rsv_ruimte_tot,
COALESCE((rrr.res_rsv_ruimte_tot - rrr.res_rsv_ruimte_van) * 24, 0),
rs_fo.res_status_fo_omschrijving,
rs_bo.res_status_bo_omschrijving,
COALESCE ( (rrr.res_rsv_ruimte_tot - rrr.res_rsv_ruimte_van) * 24, 0),
(SELECT res_status_fo_omschrijving
FROM res_status_fo rs
WHERE rs.res_status_fo_key = rrr.res_status_fo_key),
(SELECT res_status_bo_omschrijving
FROM res_status_bo rs
WHERE rs.res_status_bo_key = rrr.res_status_bo_key),
ra.res_activiteit_omschrijving,
rsa.res_srtactiviteit_key,
rsa.res_srtactiviteit_omschrijving,
@@ -829,67 +951,49 @@ AS
rrr.res_rsv_ruimte_visibility,
res.getruimteprijs(rrr.res_rsv_ruimte_key),
rrr.res_rsv_ruimte_korting
FROM res_v_aanwezigrsv_ruimte rrr
JOIN res_reservering res ON rrr.res_reservering_key = res.res_reservering_key
JOIN res_activiteit ra ON rrr.res_activiteit_key = ra.res_activiteit_key
JOIN res_srtactiviteit rsa ON ra.res_srtactiviteit_key = rsa.res_srtactiviteit_key
JOIN prs_perslid p ON rrr.res_rsv_ruimte_host_key = p.prs_perslid_key
JOIN prs_afdeling a ON p.prs_afdeling_key = a.prs_afdeling_key
JOIN prs_v_afdeling_boom ab ON ab.prs_afdeling_key = p.prs_afdeling_key
JOIN prs_afdeling an ON ab.prs_afdeling_key1 = an.prs_afdeling_key
LEFT JOIN prs_kostenplaats k ON rrr.prs_kostenplaats_key = k.prs_kostenplaats_key
LEFT JOIN fac_profiel pr ON p.fac_profiel_key = pr.fac_profiel_key
LEFT JOIN prs_v_perslid_fullnames_all host_pf ON host_pf.prs_perslid_key = rrr.res_rsv_ruimte_host_key
LEFT JOIN prs_v_perslid_fullnames_all contact_pf ON contact_pf.prs_perslid_key = rrr.res_rsv_ruimte_contact_key
LEFT JOIN prs_perslid ph ON ph.prs_perslid_key = rrr.res_rsv_ruimte_host_key
LEFT JOIN prs_perslid pc ON pc.prs_perslid_key = rrr.res_rsv_ruimte_contact_key
LEFT JOIN res_status_fo rs_fo ON rs_fo.res_status_fo_key = rrr.res_status_fo_key
LEFT JOIN res_status_bo rs_bo ON rs_bo.res_status_bo_key = rrr.res_status_bo_key
LEFT JOIN (
SELECT tr.fac_tracking_refkey, pf.prs_perslid_naam_full
FROM fac_tracking tr
JOIN fac_srtnotificatie str ON tr.fac_srtnotificatie_key = str.fac_srtnotificatie_key
JOIN prs_v_perslid_fullnames_all pf ON tr.prs_perslid_key = pf.prs_perslid_key
WHERE str.fac_srtnotificatie_code = 'RESNEW'
) invoerder_pf ON invoerder_pf.fac_tracking_refkey = rrr.res_rsv_ruimte_key
LEFT JOIN (
SELECT r.res_rsv_ruimte_key,
MAX(o.res_opstelling_omschrijving) opstelling,
MAX(ro.res_ruimte_opstel_bezoekers) capaciteit,
MAX(ra.alg_ruimte_key) alg_ruimte_key,
MAX(rr.res_ruimte_nr) ruimte_nr
FROM res_rsv_ruimte r
JOIN res_ruimte_opstelling ro ON r.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
JOIN res_opstelling o ON ro.res_opstelling_key = o.res_opstelling_key
JOIN res_ruimte rr ON ro.res_ruimte_key = rr.res_ruimte_key
JOIN res_alg_ruimte ra ON rr.res_ruimte_key = ra.res_ruimte_key
WHERE r.res_rsv_ruimte_verwijder IS NULL
GROUP BY r.res_rsv_ruimte_key
UNION ALL
SELECT rrr.res_rsv_ruimte_key,
'' opstelling,
NULL capaciteit,
rrr.alg_ruimte_key,
r.alg_ruimte_nr
FROM res_rsv_ruimte rrr
JOIN alg_ruimte r ON r.alg_ruimte_key = rrr.alg_ruimte_key
WHERE rrr.alg_ruimte_key IS NOT NULL
) r2a ON rrr.res_rsv_ruimte_key = r2a.res_rsv_ruimte_key
LEFT JOIN res_ruimte_opstelling ro ON rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
LEFT JOIN res_ruimte rr ON ro.res_ruimte_key = rr.res_ruimte_key
LEFT JOIN ins_tab_discipline d ON rr.res_discipline_key = d.ins_discipline_key
LEFT JOIN res_discipline disc ON d.ins_discipline_key = disc.ins_discipline_key
LEFT JOIN prs_kostensoort ks ON disc.prs_kostensoort_key = ks.prs_kostensoort_key
LEFT JOIN prs_kostensoortgrp ksg ON ks.prs_kostensoortgrp_key = ksg.prs_kostensoortgrp_key
LEFT JOIN alg_ruimte r ON r2a.alg_ruimte_key = r.alg_ruimte_key
LEFT JOIN alg_verdieping v ON r.alg_verdieping_key = v.alg_verdieping_key
LEFT JOIN alg_gebouw g ON v.alg_gebouw_key = g.alg_gebouw_key
LEFT JOIN alg_locatie l ON g.alg_locatie_key = l.alg_locatie_key
LEFT JOIN alg_district d ON l.alg_district_key = d.alg_district_key
LEFT JOIN alg_regio rg ON d.alg_regio_key = rg.alg_regio_key
WHERE rrr.res_rsv_ruimte_van >= TO_DATE('01-01-2017', 'DD-MM-YYYY');
FROM res_v_aanwezigrsv_ruimte rrr,
res_activiteit ra,
res_srtactiviteit rsa,
res_reservering res,
prs_kostenplaats k,
prs_perslid p,
prs_afdeling a,
prs_afdeling an,
prs_v_afdeling_boom ab,
( SELECT res_rsv_ruimte_key,
MAX (o.res_opstelling_omschrijving) opstelling,
MAX (ro.res_ruimte_opstel_bezoekers) capaciteit,
MAX (ra.alg_ruimte_key) alg_ruimte_key,
MAX (rr.res_ruimte_nr) ruimte_nr
FROM res_rsv_ruimte r,
res_ruimte_opstelling ro,
res_opstelling o,
res_ruimte rr,
res_alg_ruimte ra
WHERE r.res_rsv_ruimte_verwijder IS NULL
AND r.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
AND ro.res_ruimte_key = rr.res_ruimte_key
AND ro.res_opstelling_key = o.res_opstelling_key
AND rr.res_ruimte_key = ra.res_ruimte_key
GROUP BY res_rsv_ruimte_key
UNION ALL
SELECT res_rsv_ruimte_key,
'' opstelling,
NULL capaciteit,
rrr.alg_ruimte_key,
r.alg_ruimte_nr
FROM res_rsv_ruimte rrr, alg_ruimte r
WHERE rrr.alg_ruimte_key IS NOT NULL AND r.alg_ruimte_key = rrr.alg_ruimte_key) r2a
WHERE rrr.res_reservering_key = res.res_reservering_key
AND rrr.res_rsv_ruimte_key = r2a.res_rsv_ruimte_key(+)
AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
AND rrr.res_activiteit_key = ra.res_activiteit_key
AND ra.res_srtactiviteit_key = rsa.res_srtactiviteit_key
AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key
AND p.prs_afdeling_key = a.prs_afdeling_key
AND ab.prs_afdeling_key1 = an.prs_afdeling_key
AND ab.prs_afdeling_key = p.prs_afdeling_key
AND rrr.res_rsv_ruimte_van >= TO_DATE ('01-01-2010', 'DD-MM-YYYY');
CREATE_VIEW(res_v_udr_reserveringincl, 1)
(
@@ -922,7 +1026,6 @@ CREATE_VIEW(res_v_udr_reserveringincl, 1)
locatie_omschrijving,
locatie_plaats,
gebouw,
gebouw_key,
verdieping,
ruimte,
opstelling,
@@ -963,16 +1066,64 @@ AS
SELECT rrr.res_rsv_ruimte_key,
res.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr,
rrr.res_rsv_ruimte_omschrijving,
COALESCE(rrr.res_rsv_ruimte_aanmaak, voorz.van),
COALESCE (rrr.res_rsv_ruimte_aanmaak, voorz.van),
rrr.res_rsv_ruimte_van,
host_pf.prs_perslid_naam_full,
DECODE(p.prs_perslid_visibility, 1, host_pf_friendly.prs_perslid_naam_friendly, a.prs_afdeling_omschrijving) zichtbare_gastheer,
contact_pf.prs_perslid_naam_full,
ph.prs_perslid_email,
pc.prs_perslid_email,
invoerder_pf.prs_perslid_naam_full,
ksg.prs_kostensoortgrp_oms kostensoortgroep,
ks.prs_kostensoort_oms kostensoort,
(SELECT prs_perslid_naam_full
FROM prs_v_perslid_fullnames_all pf
WHERE pf.prs_perslid_key = rrr.res_rsv_ruimte_host_key),
DECODE (p.prs_perslid_visibility,
1, (SELECT prs_perslid_naam_friendly
FROM prs_v_perslid_fullnames_all pf
WHERE pf.prs_perslid_key = rrr.res_rsv_ruimte_host_key),
a.prs_afdeling_omschrijving) zichtbare_gastheer,
(SELECT prs_perslid_naam_full
FROM prs_v_perslid_fullnames_all pf
WHERE pf.prs_perslid_key = rrr.res_rsv_ruimte_contact_key),
(SELECT ph.prs_perslid_email
FROM prs_perslid ph
WHERE ph.prs_perslid_key = rrr.res_rsv_ruimte_host_key),
(SELECT pc.prs_perslid_email
FROM prs_perslid pc
WHERE pc.prs_perslid_key = rrr.res_rsv_ruimte_contact_key),
(SELECT pf.prs_perslid_naam_full
FROM fac_tracking tr, fac_srtnotificatie str, prs_v_perslid_fullnames_all pf
WHERE tr.prs_perslid_key = pf.prs_perslid_key
AND str.fac_srtnotificatie_code = 'RESNEW'
AND tr.fac_srtnotificatie_key = str.fac_srtnotificatie_key
AND tr.fac_tracking_refkey = rrr.res_rsv_ruimte_key),
(SELECT ksg.prs_kostensoortgrp_oms
FROM prs_kostensoortgrp ksg, prs_kostensoort ks
WHERE ksg.prs_kostensoortgrp_key = ks.prs_kostensoortgrp_key
AND ks.prs_kostensoort_key =
(SELECT disc.prs_kostensoort_key
FROM res_discipline disc
WHERE disc.ins_discipline_key =
COALESCE (
voorz.ins_discipline_key,
(SELECT ins_discipline_key
FROM ins_tab_discipline d,
res_ruimte_opstelling ro,
res_ruimte rr
WHERE rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
AND ro.res_ruimte_key = rr.res_ruimte_key
AND rr.res_discipline_key = d.ins_discipline_key))))
kostensoortgroep,
(SELECT ks.prs_kostensoort_oms
FROM prs_kostensoort ks
WHERE ks.prs_kostensoort_key =
(SELECT disc.prs_kostensoort_key
FROM res_discipline disc
WHERE disc.ins_discipline_key =
COALESCE (
voorz.ins_discipline_key,
(SELECT ins_discipline_key
FROM ins_tab_discipline d,
res_ruimte_opstelling ro,
res_ruimte rr
WHERE rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
AND ro.res_ruimte_key = rr.res_ruimte_key
AND rr.res_discipline_key = d.ins_discipline_key))))
kostensoort,
k.prs_kostenplaats_nr,
k.prs_kostenplaats_omschrijving,
k.prs_kostenplaats_extern,
@@ -982,32 +1133,112 @@ AS
a.prs_afdeling_key,
a.prs_afdeling_naam,
a.prs_afdeling_omschrijving,
rg.alg_regio_omschrijving,
d.alg_district_omschrijving,
l.alg_locatie_key,
l.alg_locatie_code,
l.alg_locatie_omschrijving,
l.alg_locatie_plaats,
g.alg_gebouw_code,
g.alg_gebouw_key,
v.alg_verdieping_code,
(SELECT rg.alg_regio_omschrijving
FROM alg_regio rg,
alg_district d,
alg_locatie l,
alg_gebouw g,
alg_verdieping v,
alg_ruimte r
WHERE rg.alg_regio_key = d.alg_regio_key
AND d.alg_district_key = l.alg_district_key
AND l.alg_locatie_key = g.alg_locatie_key
AND g.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
(SELECT d.alg_district_omschrijving
FROM alg_district d,
alg_locatie l,
alg_gebouw g,
alg_verdieping v,
alg_ruimte r
WHERE d.alg_district_key = l.alg_district_key
AND l.alg_locatie_key = g.alg_locatie_key
AND g.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
(SELECT l.alg_locatie_key
FROM alg_locatie l,
alg_gebouw g,
alg_verdieping v,
alg_ruimte r
WHERE l.alg_locatie_key = g.alg_locatie_key
AND g.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
(SELECT alg_locatie_code
FROM alg_locatie l,
alg_gebouw g,
alg_verdieping v,
alg_ruimte r
WHERE l.alg_locatie_key = g.alg_locatie_key
AND g.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
(SELECT alg_locatie_omschrijving
FROM alg_locatie l,
alg_gebouw g,
alg_verdieping v,
alg_ruimte r
WHERE l.alg_locatie_key = g.alg_locatie_key
AND g.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
(SELECT alg_locatie_plaats
FROM alg_locatie l,
alg_gebouw g,
alg_verdieping v,
alg_ruimte r
WHERE l.alg_locatie_key = g.alg_locatie_key
AND g.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
(SELECT alg_gebouw_code
FROM alg_gebouw g, alg_verdieping v, alg_ruimte r
WHERE g.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
(SELECT alg_verdieping_code
FROM alg_verdieping v, alg_ruimte r
WHERE v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
r2a.ruimte_nr,
r2a.opstelling,
r2a.capaciteit,
rrr.res_rsv_ruimte_noshow,
rrr.res_rsv_ruimte_bezoekers_shown,
NVL(pr.fac_profiel_limiet, 0),
p.prs_perslid_nr,
COALESCE(voorz.ins_discipline_key, disc.ins_discipline_key),
disc.ins_discipline_key,
disc.ins_discipline_omschrijving,
DECODE(rrr.alg_ruimte_key, NULL, 'Ja', 'Nee'),
NVL ( (SELECT pr.fac_profiel_limiet
FROM fac_profiel pr
WHERE p.fac_profiel_key = pr.fac_profiel_key), 0),
prs_perslid_nr,
COALESCE (
voorz.ins_discipline_key,
(SELECT ins_discipline_key
FROM ins_tab_discipline d, res_ruimte_opstelling ro, res_ruimte rr
WHERE rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
AND ro.res_ruimte_key = rr.res_ruimte_key
AND rr.res_discipline_key = d.ins_discipline_key)),
(SELECT ins_discipline_key
FROM ins_tab_discipline d, res_ruimte_opstelling ro, res_ruimte rr
WHERE rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
AND ro.res_ruimte_key = rr.res_ruimte_key
AND rr.res_discipline_key = d.ins_discipline_key),
(SELECT ins_discipline_omschrijving
FROM ins_tab_discipline d, res_ruimte_opstelling ro, res_ruimte rr
WHERE rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
AND ro.res_ruimte_key = rr.res_ruimte_key
AND rr.res_discipline_key = d.ins_discipline_key),
DECODE (rrr.alg_ruimte_key, NULL, 'Ja', 'Nee'),
rrr.res_rsv_ruimte_bezoekers,
rrr.res_rsv_ruimte_van,
rrr.res_rsv_ruimte_tot,
COALESCE((rrr.res_rsv_ruimte_tot - rrr.res_rsv_ruimte_van) * 24, 0),
rs_fo.res_status_fo_omschrijving,
rs_bo.res_status_bo_omschrijving,
COALESCE ( (rrr.res_rsv_ruimte_tot - rrr.res_rsv_ruimte_van) * 24, 0),
(SELECT res_status_fo_omschrijving
FROM res_status_fo rs
WHERE rs.res_status_fo_key = rrr.res_status_fo_key),
(SELECT res_status_bo_omschrijving
FROM res_status_bo rs
WHERE rs.res_status_bo_key = rrr.res_status_bo_key),
ra.res_activiteit_omschrijving,
rsa.res_srtactiviteit_key,
rsa.res_srtactiviteit_omschrijving,
@@ -1017,126 +1248,105 @@ AS
voorz.ins_discipline_key,
voorz.vtype,
voorz.catalogus,
leverancier.prs_bedrijf_naam,
(SELECT prs_bedrijf_naam
FROM res_disc_params rdp, prs_bedrijf b
WHERE rdp.prs_bedrijf_key = b.prs_bedrijf_key
AND rdp.res_ins_discipline_key = voorz.ins_discipline_key),
voorz.product_key,
voorz.product,
voorz.totaalprijs,
TO_CHAR(voorz.van, 'hh24:mi'),
TO_CHAR(voorz.tot, 'hh24:mi'),
TO_CHAR (voorz.van, 'hh24:mi'),
TO_CHAR (voorz.tot, 'hh24:mi'),
voorz.aantal,
voorz.prijs
FROM res_v_aanwezigrsv_ruimte rrr
JOIN res_reservering res ON rrr.res_reservering_key = res.res_reservering_key
JOIN res_activiteit ra ON rrr.res_activiteit_key = ra.res_activiteit_key
JOIN res_srtactiviteit rsa ON ra.res_srtactiviteit_key = rsa.res_srtactiviteit_key
JOIN prs_perslid p ON rrr.res_rsv_ruimte_host_key = p.prs_perslid_key
JOIN prs_afdeling a ON p.prs_afdeling_key = a.prs_afdeling_key
JOIN prs_v_afdeling_boom ab ON p.prs_afdeling_key = ab.prs_afdeling_key
JOIN prs_afdeling an ON ab.prs_afdeling_key1 = an.prs_afdeling_key
LEFT JOIN prs_kostenplaats k ON rrr.prs_kostenplaats_key = k.prs_kostenplaats_key
LEFT JOIN prs_v_perslid_fullnames_all host_pf ON host_pf.prs_perslid_key = rrr.res_rsv_ruimte_host_key
LEFT JOIN prs_v_perslid_fullnames_all host_pf_friendly ON host_pf_friendly.prs_perslid_key = rrr.res_rsv_ruimte_host_key
LEFT JOIN prs_v_perslid_fullnames_all contact_pf ON contact_pf.prs_perslid_key = rrr.res_rsv_ruimte_contact_key
LEFT JOIN prs_perslid ph ON ph.prs_perslid_key = rrr.res_rsv_ruimte_host_key
LEFT JOIN prs_perslid pc ON pc.prs_perslid_key = rrr.res_rsv_ruimte_contact_key
LEFT JOIN fac_profiel pr ON p.fac_profiel_key = pr.fac_profiel_key
LEFT JOIN res_status_fo rs_fo ON rs_fo.res_status_fo_key = rrr.res_status_fo_key
LEFT JOIN res_status_bo rs_bo ON rs_bo.res_status_bo_key = rrr.res_status_bo_key
LEFT JOIN (
SELECT tr.fac_tracking_refkey, pf.prs_perslid_naam_full
FROM fac_tracking tr
JOIN fac_srtnotificatie str ON tr.fac_srtnotificatie_key = str.fac_srtnotificatie_key
JOIN prs_v_perslid_fullnames_all pf ON tr.prs_perslid_key = pf.prs_perslid_key
WHERE str.fac_srtnotificatie_code = 'RESNEW'
) invoerder_pf ON invoerder_pf.fac_tracking_refkey = rrr.res_rsv_ruimte_key
LEFT JOIN (
SELECT r.res_rsv_ruimte_key,
MAX(o.res_opstelling_omschrijving) opstelling,
MAX(ro.res_ruimte_opstel_bezoekers) capaciteit,
MAX(ra.alg_ruimte_key) alg_ruimte_key,
MAX(rr.res_ruimte_nr) ruimte_nr
FROM res_rsv_ruimte r
JOIN res_ruimte_opstelling ro ON r.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
JOIN res_opstelling o ON ro.res_opstelling_key = o.res_opstelling_key
JOIN res_ruimte rr ON ro.res_ruimte_key = rr.res_ruimte_key
JOIN res_alg_ruimte ra ON rr.res_ruimte_key = ra.res_ruimte_key
WHERE r.res_rsv_ruimte_verwijder IS NULL
GROUP BY r.res_rsv_ruimte_key
UNION ALL
SELECT rrr.res_rsv_ruimte_key,
'' opstelling,
NULL capaciteit,
rrr.alg_ruimte_key,
r.alg_ruimte_nr
FROM res_rsv_ruimte rrr
JOIN alg_ruimte r ON r.alg_ruimte_key = rrr.alg_ruimte_key
WHERE rrr.alg_ruimte_key IS NOT NULL
) r2a ON rrr.res_rsv_ruimte_key = r2a.res_rsv_ruimte_key
LEFT JOIN res_ruimte_opstelling ro ON rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
LEFT JOIN res_ruimte rr ON ro.res_ruimte_key = rr.res_ruimte_key
LEFT JOIN ins_tab_discipline disc ON rr.res_discipline_key = disc.ins_discipline_key
LEFT JOIN res_discipline rd ON disc.ins_discipline_key = rd.ins_discipline_key
LEFT JOIN prs_kostensoort ks ON rd.prs_kostensoort_key = ks.prs_kostensoort_key
LEFT JOIN prs_kostensoortgrp ksg ON ks.prs_kostensoortgrp_key = ksg.prs_kostensoortgrp_key
LEFT JOIN alg_ruimte r ON r2a.alg_ruimte_key = r.alg_ruimte_key
LEFT JOIN alg_verdieping v ON r.alg_verdieping_key = v.alg_verdieping_key
LEFT JOIN alg_gebouw g ON v.alg_gebouw_key = g.alg_gebouw_key
LEFT JOIN alg_locatie l ON g.alg_locatie_key = l.alg_locatie_key
LEFT JOIN alg_district d ON l.alg_district_key = d.alg_district_key
LEFT JOIN alg_regio rg ON d.alg_regio_key = rg.alg_regio_key
LEFT JOIN (
SELECT rrd.res_rsv_ruimte_key res_rsv_ruimte_key,
-rd.res_deel_key product_key,
rd.res_deel_omschrijving product,
DECODE(
rd.res_deel_prijs_vast,
1,
NVL(rrd.res_rsv_deel_prijs, rd.res_deel_prijs),
(rrd.res_rsv_deel_tot - rrd.res_rsv_deel_van)
* 24
* NVL(rrd.res_rsv_deel_prijs, rd.res_deel_prijs))
totaalprijs,
rrd.res_rsv_deel_van van,
rrd.res_rsv_deel_tot tot,
(rrd.res_rsv_deel_tot - rrd.res_rsv_deel_van) * 24 aantal,
NVL(rrd.res_rsv_deel_prijs, rd.res_deel_prijs) prijs,
c.ins_discipline_key ins_discipline_key,
c.ins_discipline_omschrijving catalogus,
'object' vtype
FROM res_v_aanwezigrsv_deel rrd
JOIN res_deel rd ON rrd.res_deel_key = rd.res_deel_key
JOIN ins_deel d ON d.ins_deel_key = rd.res_ins_deel_key
JOIN ins_tab_discipline c ON c.ins_discipline_key = rd.res_discipline_key
WHERE rrd.res_rsv_ruimte_key IS NOT NULL
UNION ALL
SELECT rra.res_rsv_ruimte_key res_rsv_ruimte_key,
ra.res_artikel_key product_key,
ra.res_artikel_omschrijving product,
NVL(rra.res_rsv_artikel_prijs, rra.res_rsv_artikel_aantal * res_artikel_prijs)
totaalprijs,
rra.res_rsv_artikel_levering van,
NULL tot,
rra.res_rsv_artikel_aantal aantal,
NVL(rra.res_rsv_artikel_prijs / rra.res_rsv_artikel_aantal, res_artikel_prijs)
prijs,
c.ins_discipline_key ins_discipline_key,
c.ins_discipline_omschrijving catalogus,
'consumable' vtype
FROM res_v_aanwezigrsv_artikel rra
JOIN res_artikel ra ON rra.res_artikel_key = ra.res_artikel_key
JOIN ins_tab_discipline c ON ra.res_discipline_key = c.ins_discipline_key
) voorz ON rrr.res_rsv_ruimte_key = voorz.res_rsv_ruimte_key
LEFT JOIN (
SELECT rdp.res_ins_discipline_key, b.prs_bedrijf_naam
FROM res_disc_params rdp
JOIN prs_bedrijf b ON rdp.prs_bedrijf_key = b.prs_bedrijf_key
) leverancier ON leverancier.res_ins_discipline_key = voorz.ins_discipline_key
WHERE rrr.res_rsv_ruimte_van >= TO_DATE('01-01-2017', 'DD-MM-YYYY')
AND (rrr.res_ruimte_opstel_key IS NOT NULL OR voorz.res_rsv_ruimte_key IS NOT NULL);
FROM res_v_aanwezigrsv_ruimte rrr,
res_activiteit ra,
res_srtactiviteit rsa,
res_reservering res,
prs_kostenplaats k,
prs_perslid p,
prs_afdeling a,
prs_afdeling an,
prs_v_afdeling_boom ab,
( SELECT res_rsv_ruimte_key,
MAX (o.res_opstelling_omschrijving) opstelling,
MAX (ro.res_ruimte_opstel_bezoekers) capaciteit,
MAX (ra.alg_ruimte_key) alg_ruimte_key,
MAX (rr.res_ruimte_nr) ruimte_nr
FROM res_rsv_ruimte r,
res_ruimte_opstelling ro,
res_opstelling o,
res_ruimte rr,
res_alg_ruimte ra
WHERE r.res_rsv_ruimte_verwijder IS NULL
AND r.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
AND ro.res_ruimte_key = rr.res_ruimte_key
AND ro.res_opstelling_key = o.res_opstelling_key
AND rr.res_ruimte_key = ra.res_ruimte_key
GROUP BY res_rsv_ruimte_key
UNION ALL
SELECT res_rsv_ruimte_key,
'' opstelling,
NULL capaciteit,
rrr.alg_ruimte_key,
r.alg_ruimte_nr
FROM res_rsv_ruimte rrr, alg_ruimte r
WHERE rrr.alg_ruimte_key IS NOT NULL AND r.alg_ruimte_key = rrr.alg_ruimte_key) r2a,
(SELECT rrd.res_rsv_ruimte_key res_rsv_ruimte_key,
-rd.res_deel_key product_key,
rd.res_deel_omschrijving product,
DECODE (
rd.res_deel_prijs_vast,
1,
NVL (rrd.res_rsv_deel_prijs, rd.res_deel_prijs),
(rrd.res_rsv_deel_tot - rrd.res_rsv_deel_van)
* 24
* NVL (rrd.res_rsv_deel_prijs, rd.res_deel_prijs))
totaalprijs,
rrd.res_rsv_deel_van van,
rrd.res_rsv_deel_tot tot,
(rrd.res_rsv_deel_tot - rrd.res_rsv_deel_van) * 24 aantal,
NVL (rrd.res_rsv_deel_prijs, rd.res_deel_prijs) prijs,
c.ins_discipline_key ins_discipline_key,
c.ins_discipline_omschrijving catalogus,
'object' vtype
FROM res_v_aanwezigrsv_deel rrd,
res_deel rd,
ins_deel d,
ins_tab_discipline c
WHERE rrd.res_deel_key = rd.res_deel_key
AND d.ins_deel_key = rd.res_ins_deel_key
AND rrd.res_rsv_ruimte_key IS NOT NULL
AND c.ins_discipline_key = rd.res_discipline_key
UNION ALL
SELECT rra.res_rsv_ruimte_key res_rsv_ruimte_key,
ra.res_artikel_key product_key,
ra.res_artikel_omschrijving product,
NVL (rra.res_rsv_artikel_prijs, rra.res_rsv_artikel_aantal * res_artikel_prijs)
totaalprijs,
rra.res_rsv_artikel_levering van,
NULL tot,
rra.res_rsv_artikel_aantal aantal,
NVL (rra.res_rsv_artikel_prijs / rra.res_rsv_artikel_aantal, res_artikel_prijs)
prijs,
c.ins_discipline_key ins_discipline_key,
c.ins_discipline_omschrijving catalogus,
'consumable' vtype
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra, ins_tab_discipline c
WHERE rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key = c.ins_discipline_key) voorz
WHERE rrr.res_reservering_key = res.res_reservering_key
AND rrr.res_rsv_ruimte_key = r2a.res_rsv_ruimte_key(+)
AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
AND rrr.res_rsv_ruimte_key = voorz.res_rsv_ruimte_key(+)
AND rrr.res_activiteit_key = ra.res_activiteit_key
AND ra.res_srtactiviteit_key = rsa.res_srtactiviteit_key
AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key
AND p.prs_afdeling_key = a.prs_afdeling_key
AND p.prs_afdeling_key = ab.prs_afdeling_key
AND ab.prs_afdeling_key1 = an.prs_afdeling_key
AND (rrr.res_ruimte_opstel_key IS NOT NULL OR voorz.res_rsv_ruimte_key IS NOT NULL)
AND rrr.res_rsv_ruimte_van >= TO_DATE ('01-01-2010', 'DD-MM-YYYY');
-- Om een goede bezettingsgraad te kunnen leveren zijn onderstaande views gegenereerd
-- Deze houdt rekening met werkplekreserveringen in een ruimte, en telt dan het aantal bezettingen