895 lines
37 KiB
Plaintext
895 lines
37 KiB
Plaintext
#ifdef CAD // 22-05-1998 KTH
|
|
/* CAD_VIE.SRC
|
|
* $Revision$
|
|
* $Id$
|
|
*/
|
|
|
|
CREATE_VIEW(cad_v_cad_aanwezigtekening,0) AS
|
|
SELECT * FROM cad_tekening C_T
|
|
WHERE cad_tekening_verwijder IS NULL
|
|
AND (C_T.ins_discipline_key IN (SELECT ins_discipline_key
|
|
FROM ins_discipline)
|
|
OR C_T.ins_discipline_key IS NULL);
|
|
|
|
/* mapping van labels in tekening met ruimtenr in database
|
|
* let op: de applicatie kan van een specifieke variant gebruikmaken
|
|
* deze heet dan XXXX_V_SYNC..
|
|
*/
|
|
CREATE_VIEW(cad_v_sync_alg_ruimte,0)
|
|
(alg_ruimte_key,
|
|
alg_verdieping_key,
|
|
cadlabel
|
|
) AS
|
|
SELECT R.alg_ruimte_key,
|
|
R.alg_verdieping_key,
|
|
R.alg_ruimte_nr
|
|
FROM alg_v_aanwezigruimte R;
|
|
|
|
CREATE_VIEW(cad_v_sync_alg_terrein,0)
|
|
(alg_terreinsector_key,
|
|
alg_locatie_key,
|
|
cadlabel
|
|
) AS
|
|
SELECT
|
|
t.alg_terreinsector_key,
|
|
t.alg_locatie_key,
|
|
t.alg_terreinsector_code
|
|
FROM alg_v_aanwezigterreinsector t;
|
|
|
|
/* Standard thema/label views */
|
|
// Zowel label-views als thema-views hebben de kolommen alg_ruimte_key en waarde
|
|
// Feature: Sommige thema views kunnen updatable zijn!
|
|
// In dat geval moet de kolom waarde_key ook aanwezig zijn, en zal de code met
|
|
// een UPDATE (drop) of een INSERT (shift-drop) opereren. Om die te ondersteunen
|
|
// zal meestal een INSTEAD OF trigger moeten worden gedefinieerd, dat moet
|
|
// dan ook hier gebeuren. Let op de naamgevingsconventies: cad_v_thema_x
|
|
// heeft trigger cad_t_thema_x_i_iu (of _i_i resp _i_u)
|
|
|
|
|
|
-- FSN#14942: afdelingen zijn geen bewoners meer
|
|
CREATE_VIEW(cad_v_label_bewoner, 0)
|
|
(alg_ruimte_key, waarde)
|
|
AS
|
|
SELECT prs_w.prs_alg_ruimte_key,
|
|
prs_p.prs_perslid_naam_friendly
|
|
FROM prs_werkplek prs_w, prs_perslidwerkplek prs_pw, prs_v_perslid_fullnames prs_p
|
|
WHERE prs_w.prs_werkplek_key = prs_pw.prs_werkplek_key
|
|
AND prs_pw.prs_perslid_key IS NOT NULL
|
|
AND prs_pw.prs_perslid_key = prs_p.prs_perslid_key
|
|
AND prs_w.prs_werkplek_virtueel = 0
|
|
UNION
|
|
SELECT prs_w.prs_alg_ruimte_key, '['||lcl.l('lcl_free')||']'
|
|
FROM prs_werkplek prs_w, prs_v_werkplek_bezetting prs_wb
|
|
WHERE prs_w.prs_werkplek_key = prs_wb.prs_werkplek_key
|
|
AND prs_w.prs_werkplek_virtueel = 0
|
|
AND prs_wb.prs_werkplek_bezetting < 100;
|
|
|
|
-- Toont alle afdelingen die aan een ruimte gekoppeld zijn
|
|
CREATE_VIEW(cad_v_label_afdelingen, 0)
|
|
(alg_ruimte_key, waarde)
|
|
AS
|
|
SELECT alg_ruimte_key, prs_afdeling_naam
|
|
FROM prs_ruimteafdeling ra, prs_v_afdeling d
|
|
WHERE ra.prs_afdeling_key = d.prs_afdeling_key;
|
|
|
|
-- Toont de afdeling die aan een ruimte gekoppeld is, en Meerdere! indien meerdere.
|
|
CREATE_VIEW(cad_v_thema_afdelingen, 0)
|
|
(alg_ruimte_key, waarde, waarde_key)
|
|
AS
|
|
SELECT x.alg_ruimte_key,
|
|
DECODE (x.aantal,
|
|
1, SUBSTR (x.sp, 1, 60),
|
|
'Meerdere!'),
|
|
DECODE (x.aantal, 1, x.sp_key, NULL)
|
|
FROM (SELECT ra.alg_ruimte_key,
|
|
MIN (d.prs_afdeling_naam) sp,
|
|
MIN (d.prs_afdeling_key) sp_key,
|
|
COUNT (ra.prs_afdeling_key) aantal
|
|
FROM prs_v_aanwezigruimteafdeling ra, prs_v_aanwezigafdeling d
|
|
WHERE ra.prs_afdeling_key = d.prs_afdeling_key
|
|
GROUP BY ra.alg_ruimte_key) x;
|
|
|
|
-- Update is: oude situatie weg, nieuwe wordt gedefinieerd.
|
|
-- Insert is: toevoegen aan oude situatie
|
|
CREATE_TRIGGER(cad_t_thema_afdelingen_i_iu)
|
|
INSTEAD OF INSERT OR UPDATE
|
|
ON cad_v_thema_afdelingen
|
|
BEGIN
|
|
IF UPDATING -- oude weggooien
|
|
THEN
|
|
DELETE FROM prs_ruimteafdeling
|
|
WHERE alg_ruimte_key = :new.alg_ruimte_key
|
|
AND prs_afdeling_key <> :new.waarde_key;
|
|
END IF;
|
|
BEGIN
|
|
INSERT INTO prs_ruimteafdeling (alg_ruimte_key, prs_afdeling_key)
|
|
VALUES (:new.alg_ruimte_key, :new.waarde_key);
|
|
EXCEPTION
|
|
WHEN DUP_VAL_ON_INDEX -- Hij was al aanwezig
|
|
THEN
|
|
NULL;
|
|
END;
|
|
END;
|
|
/
|
|
|
|
// De afdelingsbezetting maar dan gebaseerd op de afdelingen
|
|
// van de de personen die op de werkplekken zitten
|
|
CREATE_VIEW(cad_v_thema_prsafdelingen, 0)
|
|
(alg_ruimte_key, waarde)
|
|
AS
|
|
SELECT wp.prs_alg_ruimte_key, d.prs_afdeling_naam
|
|
FROM prs_werkplek wp, prs_perslidwerkplek pwp, prs_perslid p, prs_afdeling d
|
|
WHERE d.prs_afdeling_key = p.prs_afdeling_key
|
|
AND pwp.prs_perslid_key = p.prs_perslid_key
|
|
AND pwp.prs_werkplek_key = wp.prs_werkplek_key;
|
|
|
|
CREATE_VIEW(cad_v_label_bewonerwp, 0) (alg_ruimte_key,waarde)
|
|
AS
|
|
SELECT DISTINCT prs_alg_ruimte_key, waarde
|
|
FROM (SELECT prs_w.prs_alg_ruimte_key,
|
|
CHR (1)
|
|
|| prs_w.prs_werkplek_volgnr
|
|
|| ' '
|
|
|| prs_p.prs_perslid_naam_friendly
|
|
|| ' '
|
|
|| TO_CHAR (NVL (prs_pw.prs_perslidwerkplek_bezetting, 0))
|
|
|| '%'
|
|
waarde
|
|
FROM prs_werkplek prs_w, prs_perslidwerkplek prs_pw, prs_v_perslid_fullnames prs_p
|
|
WHERE prs_w.prs_werkplek_key = prs_pw.prs_werkplek_key
|
|
AND prs_pw.prs_perslid_key IS NOT NULL
|
|
AND prs_pw.prs_perslid_key = prs_p.prs_perslid_key
|
|
UNION
|
|
SELECT prs_w.prs_alg_ruimte_key,
|
|
CHR (1)
|
|
|| prs_w.prs_werkplek_volgnr
|
|
|| ' '|| initcap(lcl.l('lcl_free'))||' '
|
|
|| TO_CHAR (100 - NVL (SUM (prs_wb.prs_perslidwerkplek_bezetting), 0))
|
|
|| '%'
|
|
FROM prs_werkplek prs_w, prs_perslidwerkplek prs_wb
|
|
WHERE prs_w.prs_werkplek_key = prs_wb.prs_werkplek_key(+)
|
|
GROUP BY prs_w.prs_alg_ruimte_key, prs_w.prs_werkplek_key, prs_w.prs_werkplek_volgnr
|
|
HAVING SUM (NVL (prs_wb.prs_perslidwerkplek_bezetting, 0)) < 100) data;
|
|
|
|
CREATE_VIEW(CAD_V_THEMA_AANTALWP, 0) (ALG_RUIMTE_KEY, WAARDE)
|
|
AS
|
|
SELECT wp.prs_alg_ruimte_key, COUNT (*)
|
|
FROM PRS_WERKPLEK wp
|
|
GROUP BY prs_alg_ruimte_key;
|
|
/
|
|
|
|
CREATE_VIEW(cad_v_label_werkplekken,0)
|
|
(alg_ruimte_key, waarde, highlight)
|
|
AS
|
|
SELECT prs_alg_ruimte_key,
|
|
CHR (1)
|
|
|| prs_werkplek_volgnr
|
|
|| ' ('
|
|
|| TO_CHAR (wpopp, 'FM9990.0')
|
|
|| ' m2'
|
|
|| DECODE (bez, 100, '', ' '||TO_CHAR (bez) || '%')
|
|
|| ')'
|
|
waarde,
|
|
DECODE (SIGN (bez - 100), 1, 2, 0) highlight
|
|
FROM ( SELECT prs_w.prs_alg_ruimte_key,
|
|
prs_w.prs_werkplek_volgnr,
|
|
SUM (NVL (prs_pw.prs_perslidwerkplek_bezetting, 0)) bez,
|
|
wpopp
|
|
FROM prs_werkplek prs_w,
|
|
prs_v_werkplek_oppervlakte pwo,
|
|
prs_perslidwerkplek prs_pw
|
|
WHERE prs_w.prs_werkplek_key = prs_pw.prs_werkplek_key(+)
|
|
AND pwo.prs_werkplek_key(+) = prs_w.prs_werkplek_key
|
|
GROUP BY prs_w.prs_alg_ruimte_key,
|
|
prs_w.prs_werkplek_volgnr,
|
|
'prs_werkplek',
|
|
prs_w.prs_werkplek_key,
|
|
wpopp);
|
|
|
|
CREATE_VIEW(CAD_V_THEMA_WPOPP, 0)
|
|
(alg_ruimte_key, waarde)
|
|
AS
|
|
SELECT wp.prs_alg_ruimte_key, r.alg_ruimte_bruto_vloeropp / COUNT (prs_werkplek_key)
|
|
FROM PRS_WERKPLEK wp, ALG_RUIMTE r
|
|
WHERE wp.prs_alg_ruimte_key = r.alg_ruimte_key
|
|
GROUP BY wp.prs_alg_ruimte_key, r.alg_ruimte_bruto_vloeropp
|
|
/
|
|
|
|
CREATE_VIEW(cad_v_thema_bezetmismatch, 0)
|
|
(alg_ruimte_key, waarde)
|
|
AS
|
|
SELECT ra.alg_ruimte_key, 'mismatch'
|
|
FROM prs_ruimteafdeling ra, prs_werkplek wp, prs_perslidwerkplek pwp, prs_perslid p
|
|
WHERE pwp.prs_perslid_key = p.prs_perslid_key
|
|
AND pwp.prs_werkplek_key = wp.prs_werkplek_key
|
|
AND wp.prs_alg_ruimte_key = ra.alg_ruimte_key
|
|
AND ra.prs_afdeling_key <> p.prs_afdeling_key;
|
|
|
|
CREATE_VIEW(cad_v_label_srtruimteopp,0)
|
|
(alg_ruimte_key, waarde)
|
|
AS
|
|
SELECT r.alg_ruimte_key,
|
|
lcl.x ('alg_srtruimte_omschrijving',
|
|
sr.alg_srtruimte_key,
|
|
sr.alg_srtruimte_omschrijving)
|
|
|| DECODE (r.alg_ruimte_bruto_vloeropp,
|
|
NULL, '',
|
|
' (' || r.alg_ruimte_bruto_vloeropp || ' m2)')
|
|
FROM alg_v_aanwezigruimte r, alg_srtruimte sr
|
|
WHERE r.alg_srtruimte_key = sr.alg_srtruimte_key;
|
|
|
|
-- Ruimtesoort
|
|
CREATE_VIEW(cad_v_thema_srtruimte, 0)
|
|
(alg_ruimte_key, waarde, waarde_key)
|
|
AS
|
|
SELECT r.alg_ruimte_key,
|
|
sr.alg_srtruimte_omschrijving, // deze moet niet vertaald worden, dat regelt de programmatuur
|
|
r.alg_srtruimte_key
|
|
FROM alg_v_aanwezigruimte r, alg_srtruimte sr
|
|
WHERE r.alg_srtruimte_key = sr.alg_srtruimte_key(+);
|
|
|
|
CREATE_TRIGGER(cad_t_thema_srtruimte_i_iu)
|
|
INSTEAD OF INSERT OR UPDATE ON cad_v_thema_srtruimte
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE alg_ruimte
|
|
SET alg_srtruimte_key = :new.waarde_key
|
|
WHERE alg_ruimte_key = :new.alg_ruimte_key;
|
|
END;
|
|
/
|
|
|
|
-- Bezetting
|
|
-- Afdelingen
|
|
|
|
CREATE_VIEW(cad_v_thema_vloerafwerking, 0)
|
|
(alg_ruimte_key, waarde)
|
|
AS
|
|
SELECT r.alg_ruimte_key,
|
|
va.fac_usrdata_omschr
|
|
FROM alg_ruimte r,
|
|
(SELECT rr.alg_ruimte_key, ud.fac_usrdata_omschr
|
|
FROM alg_onrgoedkenmerk ok,
|
|
fac_usrdata ud,
|
|
fac_kenmerkdomein rk,
|
|
alg_kenmerk k,
|
|
alg_v_aanwezigruimte rr
|
|
WHERE rk.fac_usrtab_key = ud.fac_usrtab_key
|
|
AND k.fac_kenmerkdomein_key = rk.fac_kenmerkdomein_key
|
|
AND TO_CHAR (ud.fac_usrdata_key) = ok.alg_onrgoedkenmerk_waarde
|
|
AND k.alg_kenmerk_key = 2
|
|
AND rr.alg_ruimte_key = ok.alg_onrgoed_key) va
|
|
WHERE va.alg_ruimte_key = r.alg_ruimte_key;
|
|
|
|
--Meldingen
|
|
CREATE_VIEW(cad_v_thema_openmeldingen,0)
|
|
(alg_ruimte_key, waarde)
|
|
AS
|
|
SELECT r.alg_ruimte_key, COUNT (mld_melding_key)
|
|
FROM alg_ruimte r, mld_melding m
|
|
WHERE m.mld_alg_onroerendgoed_keys = r.alg_ruimte_key
|
|
AND m.mld_melding_status IN (2, 3, 4, 7)
|
|
GROUP BY r.alg_ruimte_key;
|
|
|
|
CREATE_VIEW(cad_v_label_bewoner2,0) (alg_ruimte_key, waarde)
|
|
AS
|
|
SELECT alg_ruimte_key,
|
|
pf.prs_perslid_naam_friendly
|
|
|| '-'
|
|
|| CASE
|
|
WHEN aantalwp > 1 AND norm_verband IS NOT NULL THEN norm_verband || '/'
|
|
ELSE ''
|
|
END
|
|
|| CASE
|
|
WHEN p.prs_perslid_dienstverband IS NOT NULL
|
|
THEN
|
|
p.prs_perslid_dienstverband || '%'
|
|
ELSE
|
|
''
|
|
END
|
|
FROM prs_v_perslid_fullnames pf, prs_perslid p, prs_v_norm_verband pnv
|
|
WHERE pf.prs_perslid_key = p.prs_perslid_key
|
|
AND pnv.prs_perslid_key = p.prs_perslid_key
|
|
AND p.prs_perslid_verwijder IS NULL;
|
|
|
|
CREATE OR REPLACE FORCE VIEW PRJ_V_CAD_LABEL_BEWONERWPE
|
|
(
|
|
PRJ_WERKPLEK_KEY,
|
|
WAARDE,
|
|
HIGHLIGHT
|
|
)
|
|
AS
|
|
SELECT DISTINCT prj_werkplek_key, waarde, DECODE (prj_selectie_key, NULL, 0, 1)
|
|
FROM (SELECT prj_r.prj_scenario_key,
|
|
prs_w.prj_werkplek_key,
|
|
prs_p.prs_perslid_naam_friendly
|
|
|| ': '
|
|
|| TO_CHAR (NVL (prs_pw.prj_perslidwerkplek_bezetting, 0))
|
|
|| '%'
|
|
waarde,
|
|
'PRJ_WERKPLEK'
|
|
label_soort,
|
|
prs_pw.prj_werkplek_key
|
|
label_key
|
|
FROM prj_ruimte prj_r,
|
|
prj_werkplek prs_w,
|
|
(SELECT *
|
|
FROM prj_perslidwerkplek
|
|
WHERE prj_perslidwerkplek_verwijder IS NULL) prs_pw,
|
|
prs_v_perslid_fullnames prs_p
|
|
WHERE prs_w.prj_werkplek_key = prs_pw.prj_werkplek_key
|
|
AND prs_pw.prs_perslid_key IS NOT NULL
|
|
AND prs_pw.prs_perslid_key = prs_p.prs_perslid_key
|
|
AND prs_w.prj_ruimte_key = prj_r.prj_ruimte_key
|
|
UNION
|
|
SELECT -1,
|
|
prs_w.prj_werkplek_key,
|
|
' Vrij: '
|
|
|| TO_CHAR (100 - NVL (SUM (prs_wb.prj_perslidwerkplek_bezetting), 0))
|
|
|| '%',
|
|
'PRJ_WERKPLEK',
|
|
prs_w.prj_werkplek_key
|
|
FROM prj_werkplek prs_w,
|
|
(SELECT *
|
|
FROM prj_perslidwerkplek
|
|
WHERE prj_perslidwerkplek_verwijder IS NULL) prs_wb
|
|
WHERE prs_w.prj_werkplek_key = prs_wb.prj_werkplek_key(+)
|
|
AND prj_werkplek_verwijder IS NULL
|
|
GROUP BY prs_w.prj_werkplek_key, prs_w.prj_werkplek_key, prs_w.prj_werkplek_volgnr
|
|
HAVING SUM (NVL (prs_wb.prj_perslidwerkplek_bezetting, 0)) < 100) data,
|
|
prj_selectie ps
|
|
WHERE ps.prj_scenario_key(+) = data.prj_scenario_key
|
|
AND ps.prj_selectie_tabelnaam(+) = label_soort
|
|
AND ps.prj_selectie_tabelkey(+) = label_key;
|
|
|
|
/* Lijstje met (ALGCAD) wijzigingen op een ruimte
|
|
Kolom FAC_TRACKING_DATUM om een klantspecifieke beperking mogelijk te maken
|
|
*/
|
|
CREATE_VIEW(cad_v_label_track_algcad, 0)
|
|
(
|
|
ALG_RUIMTE_KEY,
|
|
WAARDE,
|
|
FAC_TRACKING_DATUM
|
|
)
|
|
AS
|
|
SELECT fac_tracking_refkey,
|
|
TO_CHAR (fac_tracking_datum, 'YYYY-MM')
|
|
|| ' '
|
|
|| fac_tracking_oms
|
|
|| CHR (10)
|
|
|| '[s10][i][cd0d0d0]'
|
|
|| TO_CHAR (fac_tracking_datum, 'YYYY-MM-DD HH24:MI:SS')
|
|
|| ' '
|
|
|| PP.PRS_PERSLID_NAAM_FULL,
|
|
fac_tracking_datum
|
|
FROM fac_srtnotificatie fs,
|
|
fac_tracking fn,
|
|
prs_v_perslid_fullnames_all pp
|
|
WHERE fac_srtnotificatie_code = 'ALGCAD'
|
|
AND fs.fac_srtnotificatie_key = fn.fac_srtnotificatie_key
|
|
AND fn.prs_perslid_key = pp.prs_perslid_key(+)
|
|
ORDER BY fac_tracking_refkey, fac_tracking_datum DESC;
|
|
|
|
-- Nog wat basis views voor flexplekthemas
|
|
CREATE_VIEW(cad_v_thema_flexplekken_totaal, 0) AS select alg_ruimte_key, vrij+bezet waarde from prs_v_flexplekken;
|
|
CREATE_VIEW(cad_v_thema_flexplekken_bezet, 0) AS select alg_ruimte_key, bezet waarde from prs_v_flexplekken;
|
|
-- met -1=ruimte zonder wp en -2=ruimte met wp en n=aantal beschikbare flexplekken
|
|
CREATE_VIEW(cad_v_thema_flexplekken_vrij, 0)
|
|
AS
|
|
SELECT alg_ruimte_key, vrij waarde FROM prs_v_flexplekken
|
|
UNION
|
|
SELECT alg_ruimte_key, -1
|
|
FROM alg_ruimte
|
|
WHERE NOT EXISTS
|
|
(SELECT ''
|
|
FROM prs_werkplek
|
|
WHERE prs_alg_ruimte_key = alg_ruimte_key)
|
|
UNION
|
|
SELECT DISTINCT prs_alg_ruimte_key, -2
|
|
FROM prs_werkplek;
|
|
|
|
CREATE_VIEW(cad_v_label_flexwerkers, 0)
|
|
(
|
|
alg_ruimte_key,
|
|
waarde
|
|
)
|
|
AS
|
|
SELECT prs_alg_ruimte_key alg_ruimte_key, prs_perslid_naam_full waarde
|
|
FROM prs_werkplek wp, prs_perslidwerkplek pwp, prs_v_perslid_fullnames pf
|
|
WHERE pwp.prs_perslid_key = pf.prs_perslid_key
|
|
AND wp.prs_werkplek_key = pwp.prs_werkplek_key
|
|
AND wp.prs_werkplek_type = 1;
|
|
|
|
-- Een werkplekkleurenthema, flex/vast/vrij/bezet
|
|
CREATE_VIEW(cad_v_thema_flexwp, 0)
|
|
(
|
|
prs_werkplek_key,
|
|
waarde
|
|
)
|
|
AS
|
|
SELECT wp.prs_werkplek_key prs_werkplek_key,
|
|
MAX (CASE
|
|
WHEN wp.prs_werkplek_type = 1 AND pwp.prs_perslid_key IS NULL THEN 0
|
|
WHEN wp.prs_werkplek_type = 1 AND pwp.prs_perslid_key IS NOT NULL THEN 1
|
|
WHEN wp.prs_werkplek_type = 0 AND pwp.prs_perslid_key IS NOT NULL THEN 2
|
|
WHEN wp.prs_werkplek_type = 0 AND pwp.prs_perslid_key IS NULL THEN 3
|
|
END)
|
|
status
|
|
FROM prs_werkplek wp, prs_perslidwerkplek pwp
|
|
WHERE wp.prs_werkplek_virtueel = 0
|
|
AND pwp.prs_werkplek_key(+) = wp.prs_werkplek_key
|
|
GROUP BY wp.prs_werkplek_key;
|
|
|
|
-- Werkplekthema met de bezetter(s) ervan
|
|
CREATE_VIEW(cad_v_label_wp_bewoner, 0)
|
|
(
|
|
prs_werkplek_key,
|
|
waarde
|
|
)
|
|
AS
|
|
SELECT DISTINCT
|
|
prs_w.prs_werkplek_key,
|
|
prs_p.prs_perslid_naam_friendly
|
|
|| CASE
|
|
WHEN prs_pw.prs_perslidwerkplek_bezetting < 100
|
|
THEN
|
|
' (' || TO_CHAR (NVL (prs_pw.prs_perslidwerkplek_bezetting, 0)) || '%)'
|
|
END
|
|
waarde
|
|
FROM prs_werkplek prs_w, prs_perslidwerkplek prs_pw, prs_v_perslid_fullnames prs_p
|
|
WHERE prs_w.prs_werkplek_key = prs_pw.prs_werkplek_key
|
|
AND prs_pw.prs_perslid_key IS NOT NULL
|
|
AND prs_pw.prs_perslid_key = prs_p.prs_perslid_key;
|
|
|
|
-- Reserveerbare ruimtes kleurenthema (waarde = aantal minuten nog vrij)
|
|
CREATE_VIEW(cad_v_thema_ruimte_reservering,0)
|
|
(ALG_RUIMTE_KEY, WAARDE)
|
|
AS
|
|
SELECT alg_ruimte_key alg_ruimte_key,
|
|
COALESCE (MIN (TRUNC ( (tijdvrij) * 24 * 60) - 1), 999999) waarde -- MIN want pessimistisch
|
|
FROM (SELECT rar.alg_ruimte_key, res_rsv_ruimte_van - SYSDATE tijdvrij
|
|
FROM res_ruimte_opstelling rro,
|
|
res_ruimte rr,
|
|
res_alg_ruimte rar,
|
|
res_opstelling ro,
|
|
(SELECT res_ruimte_opstel_key, res_rsv_ruimte_van
|
|
FROM res_v_aanwezigrsv_ruimte rrr
|
|
WHERE SYSDATE BETWEEN TRUNC (res_rsv_ruimte_van)
|
|
AND res_rsv_ruimte_tot) blokkerend -- vandaag en nog niet afgelopen
|
|
WHERE rro.res_ruimte_key = rr.res_ruimte_key
|
|
AND rro.res_opstelling_key = ro.res_opstelling_key
|
|
AND rar.res_alg_ruimte_verwijder IS NULL
|
|
AND rar.res_ruimte_key = rr.res_ruimte_key
|
|
AND rro.res_ruimte_opstel_key =
|
|
blokkerend.res_ruimte_opstel_key(+))
|
|
GROUP BY alg_ruimte_key;
|
|
|
|
-- Reserveerbare ruimtes label thema, toont de ruimtenaam van
|
|
-- ruimtes die reserveerbaar zijn, hetzij door een reservering,
|
|
-- hetzij door een sensor
|
|
-- DEZE VIEW WORDT STANDAARD GEBRUIKT ALS DEFAULT THEMA VOOR HET INFOBORD
|
|
CREATE_VIEW(cad_v_label_bezetbareruimtes, 0)
|
|
(
|
|
alg_ruimte_key,
|
|
waarde
|
|
)
|
|
AS
|
|
SELECT rar.alg_ruimte_key, MIN (COALESCE(res_ruimte_friendlyname, res_ruimte_nr)) waarde
|
|
FROM res_ruimte_opstelling rro, res_ruimte rr, res_alg_ruimte rar
|
|
WHERE rro.res_ruimte_key = rr.res_ruimte_key
|
|
AND rar.res_ruimte_key = rr.res_ruimte_key
|
|
AND rar.res_alg_ruimte_verwijder IS NULL
|
|
GROUP BY rar.alg_ruimte_key
|
|
UNION
|
|
SELECT alg_ruimte_key, alg_ruimte_nr
|
|
FROM alg_ruimte r, ins_deel d, ins_srtdeel sd
|
|
WHERE d.ins_alg_ruimte_key = r.alg_ruimte_key
|
|
AND d.ins_alg_ruimte_type = 'R'
|
|
AND d.ins_deel_state IS NOT NULL
|
|
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
|
|
AND sd.ins_srtgroep_key = fac.getSetting('ins_occupationsensors_srtgroep_key')
|
|
AND NOT EXISTS (SELECT ''
|
|
FROM res_alg_ruimte
|
|
WHERE alg_ruimte_key = r.alg_ruimte_key);
|
|
|
|
-- Reserveerbare ruimtes label thema
|
|
-- Let op: Toont *eerstvolgende* reservering als die binnen een uur begint
|
|
CREATE_VIEW(cad_v_label_ruimte_reservering,0)
|
|
(ALG_RUIMTE_KEY, WAARDE)
|
|
AS
|
|
SELECT rar.alg_ruimte_key, MAX (COALESCE(res_ruimte_friendlyname, res_ruimte_nr) || res_info.tekst) waarde
|
|
FROM res_ruimte_opstelling rro,
|
|
res_ruimte rr,
|
|
res_alg_ruimte rar,
|
|
res_opstelling ro,
|
|
( SELECT res_ruimte_opstel_key,
|
|
MAX( '[br]'
|
|
|| TO_CHAR (res_rsv_ruimte_van, 'HH24:MI')
|
|
|| '-'
|
|
|| TO_CHAR (res_rsv_ruimte_tot, 'HH24:MI')
|
|
|| '[br][s50]'
|
|
|| prs_perslid_naam_full
|
|
|| '[br][s80][b]'
|
|
|| res_rsv_ruimte_omschrijving)
|
|
tekst
|
|
FROM res_v_aanwezigrsv_ruimte rrr, prs_v_perslid_fullnames pp
|
|
WHERE pp.prs_perslid_key = res_rsv_ruimte_host_key
|
|
AND SYSDATE BETWEEN res_rsv_ruimte_van - (1 / 24)
|
|
AND res_rsv_ruimte_tot
|
|
GROUP BY res_ruimte_opstel_key) res_info
|
|
WHERE res_info.res_ruimte_opstel_key(+) = rro.res_ruimte_opstel_key
|
|
AND rro.res_ruimte_key = rr.res_ruimte_key
|
|
AND rro.res_opstelling_key = ro.res_opstelling_key
|
|
AND rar.res_ruimte_key = rr.res_ruimte_key
|
|
AND rar.res_alg_ruimte_verwijder IS NULL
|
|
GROUP BY rar.alg_ruimte_key;
|
|
|
|
-- Reserveerbare delen kleurenthema (waarde = aantal minuten nog vrij)
|
|
CREATE_VIEW(cad_v_thema_deel_reservering,0)
|
|
(
|
|
INS_DEEL_KEY,
|
|
WAARDE
|
|
)
|
|
AS
|
|
SELECT ins_deel_key,
|
|
COALESCE (MIN (TRUNC (tijdvrij * 24 * 60)-1), 999999) waarde -- MIN want perssimistisch
|
|
FROM (SELECT res_ins_deel_key ins_deel_key,
|
|
res_rsv_deel_van - SYSDATE tijdvrij
|
|
FROM res_v_aanwezigdeel r,
|
|
(SELECT res_deel_key, res_rsv_deel_van, res_rsv_deel_tot
|
|
FROM res_v_aanwezigrsv_deel rrd
|
|
WHERE SYSDATE BETWEEN TRUNC (res_rsv_deel_van)
|
|
AND res_rsv_deel_tot) blokkerend -- vandaag en nog niet afgelopen
|
|
WHERE r.res_deel_key = blokkerend.res_deel_key(+))
|
|
GROUP BY ins_deel_key;
|
|
|
|
-- Reserveerbare delen label thema
|
|
CREATE_VIEW(cad_v_label_deel_reservering,0)
|
|
(
|
|
INS_DEEL_KEY,
|
|
WAARDE
|
|
)
|
|
AS
|
|
SELECT ins_deel_key, prs_perslid_naam_full
|
|
FROM ins_v_aanwezigdeel isd,
|
|
(SELECT res_ins_deel_key, prs_perslid_naam_full
|
|
FROM res_v_aanwezigdeel r,
|
|
res_v_aanwezigrsv_deel rrd,
|
|
res_rsv_ruimte rrr,
|
|
prs_v_perslid_fullnames p
|
|
WHERE r.res_deel_key = rrd.res_deel_key
|
|
AND rrd.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
|
AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key
|
|
AND SYSDATE BETWEEN res_rsv_deel_van - 1 / 24 / 60
|
|
AND res_rsv_deel_tot - 1 / 24 / 60) res -- NU bezig
|
|
WHERE isd.ins_deel_key = res.res_ins_deel_key(+);
|
|
|
|
-- Deze core-view wordt direct als label-thema (13) gebruikt, maar kan ook als basis voor een alternatief via
|
|
-- create view myview (fclt_f_datum, ins_deel_key, waarde) as select fclt_f_datum, ins_deel_key, waarde3 from cad_v_label_deel_res_datum.
|
|
-- Kijkt nu hard maximaal 42 dagen tov van nu vooruit, wat hopelijk even genoeg is voor alle situaties
|
|
-- De verschillende waardevarianten zijn presentatie alternatieven, evt meerdere regels onder elkaar
|
|
-- Merk op dat waarde_html ook een class meeneemt, waarmee in CSS gestyld kan worden
|
|
-- Voor 2d
|
|
-- waarde1: Naam (van-tot)
|
|
-- waarde: van Naam [default]
|
|
-- waarde3: Naam
|
|
-- Voor 3d
|
|
-- waarde_html: van Naam [default]
|
|
-- waarde_html2: Naam
|
|
|
|
CREATE_VIEW(cad_v_label_deel_res_datum, 0)
|
|
(
|
|
fclt_f_datum,
|
|
ins_deel_key,
|
|
res_deel_omschrijving,
|
|
waarde1,
|
|
waarde,
|
|
waarde3,
|
|
waarde_html,
|
|
waarde_html2
|
|
)
|
|
AS
|
|
WITH
|
|
datums
|
|
AS
|
|
( SELECT TRUNC (SYSDATE) + LEVEL - 1 datum
|
|
FROM DUAL
|
|
CONNECT BY LEVEL <= 42)
|
|
SELECT datums.datum
|
|
fclt_f_datum,
|
|
isd.res_ins_deel_key
|
|
ins_deel_key,
|
|
res_deel_omschrijving,
|
|
CHR (10)
|
|
|| LISTAGG (
|
|
DECODE (
|
|
naam,
|
|
NULL, '',
|
|
'[s40]'
|
|
|| naam
|
|
|| ' ('
|
|
|| TO_CHAR (res_rsv_deel_van, 'HH24:MI')
|
|
|| '-'
|
|
|| DECODE (TRUNC (res_rsv_deel_tot),
|
|
TRUNC (res_rsv_deel_van), TO_CHAR (res_rsv_deel_tot, 'HH24:MI'),
|
|
TO_CHAR (res_rsv_deel_tot, 'DD-MM-YYYY HH24:MI'))
|
|
|| ')'),
|
|
CHR (10))
|
|
WITHIN GROUP (ORDER BY res_rsv_deel_van)
|
|
waarde1,
|
|
CHR (10)
|
|
|| LISTAGG (
|
|
DECODE (naam,
|
|
NULL, '',
|
|
'[s40]' || TO_CHAR (res_rsv_deel_van, 'HH24:MI') || ' ' || naam),
|
|
CHR (10))
|
|
WITHIN GROUP (ORDER BY res_rsv_deel_van)
|
|
waarde2,
|
|
CHR (10)
|
|
|| LISTAGG (DECODE (naam, NULL, '', '[s40]' || naam), CHR (10))
|
|
WITHIN GROUP (ORDER BY res_rsv_deel_van)
|
|
waarde3,
|
|
LISTAGG (
|
|
DECODE (
|
|
naam,
|
|
NULL, '',
|
|
'<span class="body">'
|
|
|| TO_CHAR (res_rsv_deel_van, 'HH24:MI')
|
|
|| ' '
|
|
|| naam
|
|
|| '</span>'),
|
|
'<br>')
|
|
WITHIN GROUP (ORDER BY res_rsv_deel_van)
|
|
waarde_html,
|
|
LISTAGG (DECODE (naam, NULL, '', '<span class="body">' || naam || '</span>'), '<br>')
|
|
WITHIN GROUP (ORDER BY res_rsv_deel_van)
|
|
waarde_html2
|
|
FROM res_v_aanwezigdeel isd,
|
|
datums,
|
|
(SELECT datum,
|
|
res_ins_deel_key,
|
|
DECODE (p.prs_perslid_visibility,
|
|
1, pf.prs_perslid_naam_friendly,
|
|
a.prs_afdeling_omschrijving)
|
|
naam,
|
|
res_rsv_deel_van,
|
|
res_rsv_deel_tot
|
|
FROM res_v_aanwezigdeel r,
|
|
res_v_aanwezigrsv_deel rrd,
|
|
res_rsv_ruimte rrr,
|
|
prs_v_perslid_fullnames pf,
|
|
prs_perslid p,
|
|
prs_afdeling a,
|
|
datums
|
|
WHERE r.res_deel_key = rrd.res_deel_key
|
|
AND rrd.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
|
AND rrr.res_rsv_ruimte_host_key = pf.prs_perslid_key
|
|
AND pf.prs_perslid_key = p.prs_perslid_key
|
|
AND p.prs_afdeling_key = a.prs_afdeling_key
|
|
AND datum + 1 >= res_rsv_deel_van
|
|
AND datum < res_rsv_deel_tot ) res -- Bezet
|
|
WHERE isd.res_ins_deel_key = res.res_ins_deel_key(+) AND datums.datum = res.datum(+)
|
|
GROUP BY datums.datum, isd.res_ins_deel_key, res_deel_omschrijving;
|
|
|
|
|
|
--
|
|
-- Thema's gebaseerd op objectstatus van objecten binnen ruimte/werkplek (typisch sensoren)
|
|
--
|
|
CREATE_VIEW(cad_v_thema_ruimtesensor,0)
|
|
(
|
|
alg_ruimte_key,
|
|
waarde
|
|
)
|
|
AS
|
|
SELECT r.alg_ruimte_key alg_ruimte_key, initcap(d.ins_deel_state) status
|
|
FROM alg_ruimte r, ins_deel d, ins_srtdeel sd
|
|
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_srtdeel_key = sd.ins_srtdeel_key
|
|
AND sd.ins_srtgroep_key = fac.getSetting('ins_occupationsensors_srtgroep_key')
|
|
AND d.ins_deel_state IS NOT NULL;
|
|
|
|
-- Kleurenthema dat reserveringen en actuele bezetting weergeeft
|
|
-- Geeft van de overige ruimte de ruimtesoort terug
|
|
-- DEZE VIEW WORDT STANDAARD GEBRUIKT ALS DEFAULT THEMA VOOR HET INFOBORD
|
|
CREATE_VIEW(cad_v_thema_srtruimtesensor, 0)
|
|
(
|
|
alg_ruimte_key,
|
|
waarde
|
|
)
|
|
AS
|
|
-- zalen met een sensor
|
|
SELECT alg_ruimte_key, DECODE (MAX (status), 0, 'Uit', 2, 'Aan', 'NoShow')
|
|
FROM ( SELECT r.alg_ruimte_key,
|
|
DECODE (
|
|
INITCAP (d.ins_deel_state),
|
|
'0', -- als de sensor uit is kijken we naar de reservering
|
|
DECODE (r2a.res_reservering_key,
|
|
NULL, 0, -- als er geen reservering gescheduled staat is de status uit
|
|
DECODE (eerste10min, 1, 2, 1)), -- in de eerste 10 minuten v/d reservering melden we nog geen noshow(1) aan(2)
|
|
2)
|
|
status
|
|
FROM alg_ruimte r,
|
|
ins_deel d,
|
|
ins_srtdeel sd,
|
|
(SELECT rr2a.res_reservering_key,
|
|
rr2a.alg_ruimte_key,
|
|
CASE WHEN (SYSDATE - res_rsv_ruimte_van > 10 / 1440)
|
|
THEN 0
|
|
ELSE 1
|
|
END eerste10min
|
|
FROM res_v_rsv_ruimte_2_alg_ruimte rr2a
|
|
WHERE res_rsv_ruimte_dirtlevel = 0
|
|
AND rr2a.res_alg_ruimte_verwijder IS NULL
|
|
AND rr2a.res_rsv_ruimte_van BETWEEN TRUNC(SYSDATE) AND SYSDATE -- Voorkennis: geen meerdaagse ruimtereserveringen
|
|
AND rr2a.res_rsv_ruimte_tot BETWEEN SYSDATE AND TRUNC(SYSDATE + 1)) 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_srtdeel_key = sd.ins_srtdeel_key
|
|
AND sd.ins_srtgroep_key = fac.getSetting('ins_occupationsensors_srtgroep_key')
|
|
AND d.ins_deel_state IS NOT NULL
|
|
AND r.alg_ruimte_key = r2a.alg_ruimte_key(+))
|
|
GROUP BY 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')) -- 0 uit / 1 noshow / 2 aan
|
|
FROM alg_v_aanwezigruimte r,
|
|
alg_srtruimte sr,
|
|
(SELECT rr2a.res_reservering_key, rr2a.alg_ruimte_key
|
|
FROM res_v_rsv_ruimte_2_alg_ruimte rr2a
|
|
WHERE res_rsv_ruimte_dirtlevel = 0
|
|
AND rr2a.res_alg_ruimte_verwijder IS NULL
|
|
AND rr2a.res_rsv_ruimte_van BETWEEN TRUNC(SYSDATE) AND SYSDATE
|
|
AND rr2a.res_rsv_ruimte_tot BETWEEN SYSDATE AND TRUNC(SYSDATE + 1)) 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, ins_srtdeel sd
|
|
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_srtdeel_key = sd.ins_srtdeel_key
|
|
AND sd.ins_srtgroep_key = fac.getSetting('ins_occupationsensors_srtgroep_key')
|
|
AND d.ins_deel_state IS NOT NULL);
|
|
|
|
CREATE_VIEW(cad_v_thema_wpsensor,0)
|
|
(
|
|
prs_werkplek_key,
|
|
waarde
|
|
)
|
|
AS
|
|
SELECT wp.prs_werkplek_key prs_werkplek_key, initcap(d.ins_deel_state) status
|
|
FROM prs_werkplek wp, ins_deel d, ins_srtdeel sd
|
|
WHERE d.ins_deel_verwijder IS NULL
|
|
AND wp.prs_werkplek_virtueel = 0
|
|
AND d.ins_alg_ruimte_type = 'W'
|
|
AND d.ins_alg_ruimte_key = wp.prs_werkplek_key
|
|
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
|
|
AND sd.ins_srtgroep_key = fac.getSetting('ins_occupationsensors_srtgroep_key')
|
|
AND d.ins_deel_state IS NOT NULL;
|
|
|
|
-- View voor reserveerbare (werkplek)OBJECTEN, het default thema met key 13
|
|
-- Deze core-view wordt direct als kleur-objecten-thema gebruikt, maar kan ook als basis voor een alternatief via worden gebruikt
|
|
-- Kijkt nu hard maximaal 42 dagen tov van nu vooruit, wat hopelijk even genoeg is voor alle situaties
|
|
-- De verschillende waardevarianten zijn presentatie alternatieven, evt meerdere regels onder elkaar
|
|
-- waarde1: Voor hele dagen: Vrij(0) of Bezet (3)
|
|
-- waarde: Voor halve dagen: Vrij(0), Ochtendbezet(1), MiddagBezet(2), Helemaalbezet(3)
|
|
-- waarde3: Voor tellen: Het aantal reservering op de dag, met 0 is dus Vrij
|
|
|
|
CREATE_VIEW(cad_v_thema_deel_res_datum,0)
|
|
(
|
|
fclt_f_datum,
|
|
ins_deel_key,
|
|
min_van,
|
|
max_tot,
|
|
waarde1,
|
|
waarde,
|
|
waarde3
|
|
)
|
|
AS
|
|
WITH
|
|
datums
|
|
AS
|
|
( SELECT TRUNC (SYSDATE) + LEVEL - 1 datum
|
|
FROM DUAL
|
|
CONNECT BY LEVEL <= 42)
|
|
SELECT datum
|
|
fclt_f_datum,
|
|
ins_deel_key,
|
|
MIN (res_rsv_deel_van)
|
|
min_van,
|
|
MAX (res_rsv_deel_tot)
|
|
max_tot,
|
|
CASE WHEN MAX (res_rsv_deel_tot) IS NULL THEN 0 ELSE 3 -- hele dag
|
|
END
|
|
waarde1,
|
|
CASE
|
|
WHEN MAX (res_rsv_deel_tot) IS NULL THEN 0
|
|
WHEN TO_CHAR (MAX (res_rsv_deel_tot), 'HH24') <= 13 THEN 1 -- ochtend
|
|
WHEN TO_CHAR (MIN (res_rsv_deel_van), 'HH24') >= 12 THEN 2 -- middag
|
|
ELSE 3 -- hele dag
|
|
END
|
|
waarde,
|
|
COUNT (res_rsv_deel_tot) -- aantal reservering deze dag
|
|
waarde3
|
|
FROM (SELECT datums.datum,
|
|
res_ins_deel_key ins_deel_key,
|
|
res_rsv_deel_van,
|
|
res_rsv_deel_tot
|
|
FROM res_v_aanwezigdeel r,
|
|
ins_deel d,
|
|
datums,
|
|
(SELECT datum,
|
|
res_deel_key,
|
|
res_rsv_deel_van,
|
|
res_rsv_deel_tot
|
|
FROM datums, res_v_aanwezigrsv_deel rrd
|
|
WHERE res_rsv_deel_van > TRUNC(SYSDATE) - 1 -- negeer alle irrelevante historie sowieso
|
|
AND datum + 1 >= res_rsv_deel_van
|
|
AND datum < res_rsv_deel_tot) blokkerend -- vandaag en nog niet afgelopen
|
|
WHERE r.res_deel_key = blokkerend.res_deel_key(+)
|
|
AND datums.datum = blokkerend.datum(+)
|
|
AND (r.res_deel_vervaldatum IS NULL or r.res_deel_vervaldatum > datums.datum)
|
|
AND d.ins_deel_key = r.res_ins_deel_key)
|
|
GROUP BY datum, ins_deel_key
|
|
ORDER BY datum, ins_deel_key;
|
|
|
|
|
|
-- Paar views om de populariteit van reserveerbare objecten te kunnen illustreren
|
|
-- Basisview, met aantal per datum
|
|
CREATE_VIEW(cad_v_thema_deel_gereserveerd,0)
|
|
AS
|
|
SELECT TRUNC (rrd.res_rsv_deel_van) datum,
|
|
rd.res_ins_deel_key ins_deel_key,
|
|
rd.res_deel_omschrijving,
|
|
COUNT (*) aantal
|
|
FROM res_rsv_deel rrd, res_deel rd
|
|
WHERE rrd.res_deel_key = rd.res_deel_key
|
|
GROUP BY TRUNC (rrd.res_rsv_deel_van), rd.res_ins_deel_key, rd.res_deel_omschrijving;
|
|
|
|
-- Totaal gereserveerde dagen of delen daarvan in de afgelopen 1, 4 resp 8 wkn
|
|
CREATE_VIEW(cad_v_thema_deel_populair_1wkn,0)
|
|
AS
|
|
SELECT ins_deel_key, res_deel_omschrijving, COUNT (*) waarde
|
|
FROM cad_v_thema_deel_gereserveerd
|
|
WHERE datum BETWEEN SYSDATE - 8 AND SYSDATE
|
|
GROUP BY ins_deel_key, res_deel_omschrijving;
|
|
|
|
CREATE_VIEW(cad_v_thema_deel_populair_4wkn,0)
|
|
AS
|
|
SELECT ins_deel_key, res_deel_omschrijving, COUNT (*) waarde
|
|
FROM cad_v_thema_deel_gereserveerd
|
|
WHERE datum BETWEEN SYSDATE - 29 AND SYSDATE
|
|
GROUP BY ins_deel_key, res_deel_omschrijving;
|
|
|
|
CREATE_VIEW(cad_v_thema_deel_populair_8wkn,0)
|
|
AS
|
|
SELECT ins_deel_key, res_deel_omschrijving, COUNT (*) waarde
|
|
FROM cad_v_thema_deel_gereserveerd
|
|
WHERE datum BETWEEN SYSDATE - 57 AND SYSDATE
|
|
GROUP BY ins_deel_key, res_deel_omschrijving;
|
|
|
|
-- Toekomstig populair
|
|
CREATE_VIEW(cad_v_thema_deel_populair_futu,0)
|
|
AS
|
|
SELECT ins_deel_key, res_deel_omschrijving, COUNT (*) waarde
|
|
FROM cad_v_thema_deel_gereserveerd
|
|
WHERE datum > SYSDATE
|
|
GROUP BY ins_deel_key, res_deel_omschrijving;
|
|
|
|
|
|
REGISTERRUN('$Id$')
|
|
|
|
#endif // CAD
|