61 lines
2.7 KiB
SQL
61 lines
2.7 KiB
SQL
CREATE OR REPLACE VIEW cad_v_thema_srtruimtesensor
|
|
(
|
|
alg_ruimte_key,
|
|
waarde
|
|
)
|
|
AS
|
|
-- zalen met een sensor
|
|
SELECT r.alg_ruimte_key,
|
|
DECODE (
|
|
INITCAP (d.ins_deel_state),
|
|
'Uit', -- als de sensor uit is kijken we naar de reservering
|
|
DECODE (r2a.res_reservering_key,
|
|
NULL, 'Uit', -- als er geen reservering gescheduled staat is de status uit
|
|
DECODE (eerste10min, 1, 'Aan', 'NoShow')), -- in de eerste 10 minuten v/d reservering melden we nog geen noshow
|
|
'Aan')
|
|
status
|
|
FROM alg_ruimte r,
|
|
ins_deel d,
|
|
(SELECT r2a.*,
|
|
DECODE (TRUNC ( (SYSDATE - res_rsv_ruimte_van) / 144),
|
|
0, 1,
|
|
0)
|
|
eerste10min
|
|
FROM res_v_rsv_ruimte_2_alg_ruimte r2a
|
|
WHERE res_rsv_ruimte_dirtlevel = 0
|
|
AND r2a.res_alg_ruimte_verwijder IS NULL
|
|
AND r2a.res_rsv_ruimte_van < SYSDATE
|
|
AND r2a.res_rsv_ruimte_tot > SYSDATE) r2a
|
|
WHERE r.alg_ruimte_verwijder IS NULL
|
|
AND d.ins_deel_verwijder IS NULL
|
|
AND d.ins_alg_ruimte_type = 'R'
|
|
AND d.ins_alg_ruimte_key = r.alg_ruimte_key
|
|
AND d.ins_deel_state IS NOT NULL
|
|
AND r.alg_ruimte_key = r2a.alg_ruimte_key(+)
|
|
UNION ALL -- en dan de ruimten zonder sensor
|
|
SELECT r.alg_ruimte_key,
|
|
DECODE (rr.res_ruimte_key, -- is dit een vergaderruimte?
|
|
NULL, '*' || sr.alg_srtruimte_omschrijving,
|
|
DECODE (r2a.res_reservering_key, NULL, 'Uit', 'Aan'))
|
|
FROM alg_v_aanwezigruimte r,
|
|
alg_srtruimte sr,
|
|
(SELECT r2a.*
|
|
FROM res_v_rsv_ruimte_2_alg_ruimte r2a
|
|
WHERE res_rsv_ruimte_dirtlevel = 0
|
|
AND r2a.res_alg_ruimte_verwijder IS NULL
|
|
AND r2a.res_rsv_ruimte_van < SYSDATE
|
|
AND r2a.res_rsv_ruimte_tot > SYSDATE) r2a,
|
|
( SELECT alg_ruimte_key, MAX (res_ruimte_key) res_ruimte_key
|
|
FROM res_alg_ruimte
|
|
WHERE res_alg_ruimte_verwijder IS NULL
|
|
GROUP BY alg_ruimte_key) rr
|
|
WHERE r.alg_srtruimte_key = sr.alg_srtruimte_key(+)
|
|
AND r.alg_ruimte_key = r2a.alg_ruimte_key(+)
|
|
AND r.alg_ruimte_key = rr.alg_ruimte_key(+)
|
|
AND NOT EXISTS
|
|
(SELECT r.alg_ruimte_key
|
|
FROM ins_deel d
|
|
WHERE d.ins_deel_verwijder IS NULL
|
|
AND d.ins_alg_ruimte_type = 'R'
|
|
AND d.ins_alg_ruimte_key = r.alg_ruimte_key
|
|
AND d.ins_deel_state IS NOT NULL); |