495 lines
18 KiB
Plaintext
495 lines
18 KiB
Plaintext
#ifdef CAD // 22-05-1998 KTH
|
|
/* CAD_VIE1.SRC
|
|
*
|
|
* $Revision: 35 $
|
|
* $Modtime: 1-07-10 11:47 $
|
|
*/
|
|
|
|
#include "comsql.h"
|
|
|
|
CREATE_VIEW(cad_v_cad_aanwezigtekening, FAC_NORMAAL_PRIVILEGE) 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);
|
|
|
|
CREATE_VIEW(cad_v_cad_tekening_gegevens, FAC_NORMAAL_PRIVILEGE)
|
|
(cad_tekening_key,
|
|
alg_locatie_key,
|
|
alg_locatie_code,
|
|
alg_gebouw_key,
|
|
alg_gebouw_code,
|
|
alg_verdieping_key,
|
|
alg_verdieping_omschrijving,
|
|
ins_discipline_key,
|
|
ins_discipline_omschrijving) AS
|
|
SELECT C_T.cad_tekening_key,
|
|
C_T.alg_locatie_key,
|
|
ALG_L.alg_locatie_code,
|
|
ALG_G.alg_gebouw_key,
|
|
ALG_G.alg_gebouw_code,
|
|
C_T.alg_verdieping_key,
|
|
ALG_V.alg_verdieping_omschrijving,
|
|
C_T.ins_discipline_key,
|
|
INS_D.ins_discipline_omschrijving
|
|
FROM alg_locatie ALG_L,
|
|
alg_verdieping ALG_V,
|
|
alg_gebouw ALG_G,
|
|
ins_discipline INS_D,
|
|
cad_v_cad_aanwezigtekening C_T
|
|
WHERE C_T.alg_locatie_key = ALG_L.alg_locatie_key
|
|
AND C_T.alg_verdieping_key = ALG_V.alg_verdieping_key (+)
|
|
AND ALG_V.alg_gebouw_key = ALG_G.alg_gebouw_key (+)
|
|
AND C_T.ins_discipline_key = INS_D.ins_discipline_key (+);
|
|
|
|
CREATE_VIEW(cad_v_plattegrond, FAC_NORMAAL_PRIVILEGE) AS
|
|
SELECT * FROM cad_tekening
|
|
WHERE cad_tekening_verwijder IS NULL
|
|
AND UPPER(cad_tekening_type) = 'P';
|
|
|
|
CREATE_VIEW(cad_v_contour, FAC_NORMAAL_PRIVILEGE) AS
|
|
SELECT * FROM cad_tekening
|
|
WHERE cad_tekening_verwijder IS NULL
|
|
AND UPPER(cad_tekening_type) = 'C';
|
|
|
|
CREATE_VIEW(cad_v_discipline, FAC_NORMAAL_PRIVILEGE) AS
|
|
SELECT * FROM cad_tekening
|
|
WHERE cad_tekening_verwijder IS NULL
|
|
AND UPPER(cad_tekening_type) = 'D';
|
|
|
|
|
|
/* 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;
|
|
|
|
|
|
|
|
/* View met ALLE tekeningen, ongeacht de autorisatie; minimale kolommen, gebruikt in CAD_PAC.SRC */
|
|
CREATE_VIEW(cad_v_cad_tekening, FAC_NORMAAL_PRIVILEGE) AS
|
|
SELECT ins_discipline_key,
|
|
alg_locatie_key,
|
|
alg_verdieping_key,
|
|
cad_tekening_type,
|
|
cad_tekening_filenaam
|
|
FROM cad_tekening C_T
|
|
WHERE cad_tekening_verwijder IS NULL;
|
|
|
|
/* 29-06-1998 KTH LOG#1905
|
|
* View CAD_V_INS_DEEL wordt door de AutoCAD Map-user FCLTCAD geraadpleegd.
|
|
* Bij die user heet de SYNONYM ernaar toe anders (zie CAD_ROL).
|
|
*/
|
|
CREATE_VIEW(cad_v_ins_deel, FAC_NORMAAL_PRIVILEGE)
|
|
(ins_deel_key,
|
|
ins_deel_cadlabel,
|
|
ins_srtdeel_omschrijving,
|
|
ins_deel_oppervlak,
|
|
ins_deel_omtrek
|
|
) AS
|
|
SELECT D.ins_deel_key,
|
|
D.ins_deel_omschrijving,
|
|
SD.ins_srtdeel_omschrijving,
|
|
NVL(TO_CHAR(D.ins_deel_oppervlak),'-')||' m2',
|
|
NVL(TO_CHAR(D.ins_deel_omtrek),'-')||' m'
|
|
FROM all_v_aanwezigdeel D, ins_srtdeel SD
|
|
WHERE SD.ins_srtdeel_key=D.ins_srtdeel_key;
|
|
|
|
CREATE_VIEW(cad_v_lpn_ins_deel_2, FAC_NORMAAL_PRIVILEGE) AS
|
|
SELECT
|
|
D.ins_deel_key,
|
|
ins_srtkenmerk_omschrijving,
|
|
KD.ins_kenmerkdeel_waarde ||' '|| SK.ins_srtkenmerk_dimensie INS_KENMERKDEEL_WAARDE2
|
|
FROM
|
|
ins_srtkenmerk SK,
|
|
ins_kenmerk K,
|
|
ins_kenmerkdeel KD,
|
|
ins_deel D
|
|
WHERE SK.ins_srtkenmerk_key=K.ins_srtkenmerk_key
|
|
AND K.ins_kenmerk_key=KD.ins_kenmerk_key
|
|
AND KD.ins_deel_key=D.ins_deel_key
|
|
AND KD.ins_kenmerkdeel_verwijder IS NULL;
|
|
|
|
CREATE_VIEW(cad_v_lpn_ins_deel_1, FAC_NORMAAL_PRIVILEGE) AS
|
|
SELECT
|
|
D.ins_deel_key,
|
|
SD.ins_srtdeel_omschrijving,
|
|
D.ins_deel_omschrijving
|
|
FROM
|
|
ins_srtdeel SD,
|
|
ins_deel D
|
|
WHERE D.ins_srtdeel_key = SD.ins_srtdeel_key;
|
|
|
|
|
|
CREATE_VIEW(cad_v_prs_werkplek, FAC_NORMAAL_PRIVILEGE)
|
|
(prs_werkplek_key,
|
|
prs_werkplek_cadlabel,
|
|
prs_werkplek_volgnr,
|
|
prs_werkplek_omschrijving,
|
|
prs_werkplek_opp
|
|
) AS
|
|
SELECT W.prs_werkplek_key,
|
|
W.prs_werkplek_volgnr,
|
|
W.prs_werkplek_volgnr,
|
|
W.prs_werkplek_omschrijving,
|
|
W.prs_werkplek_opp /* Alleen een waarde indien prs_werkplek_vastopp 1 is, anders te traag? */
|
|
FROM prs_v_aanwezigwerkplek W;
|
|
|
|
CREATE_VIEW(cad_v_lpn_prs_werkplek_1, FAC_NORMAAL_PRIVILEGE) AS
|
|
SELECT W.prs_werkplek_key,
|
|
W.prs_werkplek_volgnr,
|
|
W.prs_werkplek_omschrijving
|
|
FROM prs_v_aanwezigwerkplek W;
|
|
|
|
|
|
/* 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
|
|
|| DECODE (prs_p.prs_perslid_voorletters, NULL, '', ', ' || prs_p.prs_perslid_voorletters)
|
|
|| DECODE (prs_p.prs_perslid_voornaam, NULL, '', ' (' || prs_p.prs_perslid_voornaam || ')')
|
|
FROM prs_v_aanwezigwerkplek prs_w, prs_v_aanwezigperslidwerkplek prs_pw, prs_perslid 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, '[Vrij]'
|
|
FROM prs_v_aanwezigwerkplek 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
|
|
|| DECODE (prs_p.prs_perslid_voorletters, NULL, '', ', ' || prs_p.prs_perslid_voorletters)
|
|
|| DECODE (prs_p.prs_perslid_voornaam, NULL, '', ' (' || prs_p.prs_perslid_voornaam || ')')
|
|
|| ': '
|
|
|| TO_CHAR (NVL (prs_pw.prs_perslidwerkplek_bezetting, 0))
|
|
|| '%' waarde
|
|
FROM prs_werkplek prs_w,
|
|
(SELECT *
|
|
FROM prs_perslidwerkplek
|
|
WHERE prs_perslidwerkplek_verwijder IS NULL) prs_pw,
|
|
prs_perslid 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
|
|
|| ' Vrij: '
|
|
|| TO_CHAR (100 - NVL (SUM (prs_wb.prs_perslidwerkplek_bezetting), 0))
|
|
|| '%'
|
|
FROM prs_werkplek prs_w,
|
|
(SELECT *
|
|
FROM prs_perslidwerkplek
|
|
WHERE prs_perslidwerkplek_verwijder IS NULL) prs_wb
|
|
WHERE prs_w.prs_werkplek_key = prs_wb.prs_werkplek_key(+) AND prs_werkplek_verwijder IS NULL
|
|
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
|
|
WHERE wp.prs_werkplek_verwijder IS NULL
|
|
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, 'FM9999.0')
|
|
|| 'm2 '
|
|
|| 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,
|
|
(SELECT *
|
|
FROM PRS_PERSLIDWERKPLEK
|
|
WHERE prs_perslidwerkplek_verwijder IS NULL) prs_pw
|
|
WHERE prs_w.prs_werkplek_key = prs_pw.prs_werkplek_key(+)
|
|
AND pwo.prs_werkplek_key(+) = prs_w.prs_werkplek_key
|
|
AND prs_w.prs_werkplek_verwijder IS NULL
|
|
GROUP BY prs_w.prs_alg_ruimte_key,
|
|
prs_w.prs_werkplek_volgnr,
|
|
'prs_werkplek',
|
|
prs_w.prs_werkplek_key,
|
|
wpopp) vdata;
|
|
|
|
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_werkplek_verwijder IS NULL AND 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, FAC_NORMAAL_PRIVILEGE)
|
|
(alg_ruimte_key, waarde)
|
|
AS
|
|
SELECT r.alg_ruimte_key,
|
|
sr.alg_srtruimte_omschrijving || ' (' || 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, 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,
|
|
alg_refkenmerk rk,
|
|
alg_kenmerk k,
|
|
alg_v_aanwezigruimte rr
|
|
WHERE rk.fac_usrtab_key = ud.fac_usrtab_key
|
|
AND k.alg_refkenmerk_key = rk.alg_refkenmerk_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,FAC_NORMAAL_PRIVILEGE)
|
|
(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,
|
|
prs_p.prs_perslid_naam
|
|
|| DECODE (prs_p.prs_perslid_voorletters,
|
|
NULL, '',
|
|
', ' || prs_p.prs_perslid_voorletters
|
|
)
|
|
|| DECODE (prs_p.prs_perslid_voornaam,
|
|
NULL, '',
|
|
' (' || prs_p.prs_perslid_voornaam || ')'
|
|
)
|
|
|| '-'
|
|
|| CASE
|
|
WHEN aantalwp > 1
|
|
THEN norm_verband || '/'
|
|
ELSE ''
|
|
END
|
|
|| prs_p.prs_perslid_dienstverband
|
|
|| ' FTE'
|
|
FROM prs_perslid prs_p, prs_v_norm_verband pnv
|
|
WHERE pnv.prs_perslid_key = prs_p.prs_perslid_key;
|
|
|
|
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
|
|
|| DECODE (prs_p.prs_perslid_voorletters,
|
|
NULL, '',
|
|
', ' || prs_p.prs_perslid_voorletters)
|
|
|| DECODE (prs_p.prs_perslid_voornaam,
|
|
NULL, '',
|
|
' (' || prs_p.prs_perslid_voornaam || ')')
|
|
|| ': '
|
|
|| 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_PERSLID 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;
|
|
|
|
#endif // CAD
|