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);