FSN#13778 Thema's gelijktrekken

svn path=/Database/trunk/; revision=9790
This commit is contained in:
Jos Groot Lipman
2008-07-29 11:16:00 +00:00
parent 5dd321af6a
commit 0e06e8a365
2 changed files with 240 additions and 51 deletions

View File

@@ -2,6 +2,11 @@
/* $History: CAD_VIE1.SRC $
*
* ***************** Version 31 *****************
* User: Jgl Date: 29-07-08 Time: 13:17
* Updated in $/Facilitor/SRC/SQL/CAD
* FSN#13778 Thema's gelijktrekken
*
* ***************** Version 30 *****************
* User: Jgl Date: 12-04-07 Time: 16:17
* Updated in $/Facilitor/SRC/SQL/CAD
@@ -211,6 +216,132 @@ SELECT prs_w.prs_alg_ruimte_key, '[Vrij]'
AND prs_w.prs_werkplek_virtueel = 0
AND prs_wb.prs_werkplek_bezetting < 100;
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_a.prs_afdeling_naam
|| ']: '
|| 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_AFDELING prs_a
WHERE prs_w.prs_werkplek_key = prs_pw.prs_werkplek_key
AND prs_pw.prs_perslid_key IS NULL
AND prs_pw.prs_afdeling_key = prs_a.prs_afdeling_key
UNION
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
)
)
|| '%'
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_label_srtruimteopp, FAC_NORMAAL_PRIVILEGE)
(alg_ruimte_key, waarde)

View File

@@ -1,8 +1,8 @@
#ifdef PRJ
/* PRJ_VIE.SRC
*
* $Revision: 57 $
* $Modtime: 22-06-06 9:20 $
* $Revision: 58 $
* $Modtime: 17-07-08 14:47 $
*/
#include "comsql.h"
@@ -166,13 +166,18 @@ AS
-- GRAFISCHE LABELS
-- GRAFISCHE LABELS
CREATE_VIEW (prj_v_cad_label_bewoner,0) (prj_ruimte_key, waarde, label_soort, label_key, highlight)
CREATE_VIEW (prj_v_cad_label_bewoner,0) (prj_ruimte_key, waarde, highlight)
AS
SELECT DISTINCT /*Voor als in meerdere buffers*/
prj_ruimte_key, waarde, label_soort, label_key, DECODE (prj_selectie_key, NULL, 0, 1) highlight
FROM (SELECT prj_r.prj_scenario_key, prs_w.prj_ruimte_key, '* [' || prs_a.prs_afdeling_naam || ']' waarde,
'PRJ_PERSLIDWERKPLEK' label_soort, prs_pw.prj_perslidwerkplek_key label_key
FROM prj_ruimte prj_r, prj_werkplek prs_w, prj_perslidwerkplek prs_pw, prs_afdeling prs_a
SELECT DISTINCT prj_ruimte_key, waarde,
DECODE (prj_selectie_key, NULL, 0, 1) highlight
FROM (SELECT prj_r.prj_scenario_key, prs_w.prj_ruimte_key,
'* [' || prs_a.prs_afdeling_naam || ']' waarde,
'PRJ_WERKPLEK' label_soort,
prs_pw.prj_werkplek_key label_key
FROM PRJ_RUIMTE prj_r,
PRJ_WERKPLEK prs_w,
PRJ_PERSLIDWERKPLEK prs_pw,
PRS_AFDELING prs_a
WHERE prs_w.prj_werkplek_key = prs_pw.prj_werkplek_key
AND prs_pw.prs_perslid_key IS NULL
AND prs_w.prj_werkplek_verwijder IS NULL
@@ -182,42 +187,58 @@ AS
UNION
SELECT prj_r.prj_scenario_key, prs_w.prj_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 || ')'),
'PRJ_PERSLIDWERKPLEK', prs_pw.prj_perslidwerkplek_key
FROM prj_ruimte prj_r, prj_werkplek prs_w, prj_perslidwerkplek prs_pw, prs_perslid prs_p
|| DECODE (prs_p.prs_perslid_voorletters,
NULL, '',
', ' || prs_p.prs_perslid_voorletters
)
|| DECODE (prs_p.prs_perslid_voornaam,
NULL, '',
' (' || prs_p.prs_perslid_voornaam
|| ')'
),
'PRJ_WERKPLEK', prs_pw.prj_werkplek_key
FROM PRJ_RUIMTE prj_r,
PRJ_WERKPLEK prs_w,
PRJ_PERSLIDWERKPLEK 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_w.prj_werkplek_verwijder IS NULL
AND prs_pw.prj_perslidwerkplek_verwijder IS NULL
AND prs_pw.prs_perslid_key = prs_p.prs_perslid_key
AND prs_w.prj_ruimte_key = prj_r.prj_ruimte_key) vdata,
prj_selectie ps
WHERE ps.prj_scenario_key(+) = vdata.prj_scenario_key AND ps.prj_selectie_tabelnaam(+) = label_soort
AND ps.prj_selectie_tabelkey(+) = label_key;
PRJ_SELECTIE ps
WHERE ps.prj_scenario_key(+) = vdata.prj_scenario_key
AND ps.prj_selectie_tabelnaam(+) = label_soort
AND ps.prj_selectie_tabelkey(+) = label_key;
// Note: the subselect in the FROM is *necessary* to force these record to be retrieved by outer join
// else deleted prj_perslidwerkplek records are retrieved by inner join, and do not show up if
// the _verwijder IS NULL is then applied.
CREATE_VIEW (prj_v_cad_label_bewonerwp, 0) (prj_ruimte_key, waarde, label_soort, label_key, highlight)
CREATE_VIEW (prj_v_cad_label_bewonerwp, 0) (prj_ruimte_key, waarde, highlight)
AS
SELECT DISTINCT /*Voor als in meerdere buffers*/
prj_ruimte_key, waarde, label_soort, label_key, DECODE (prj_selectie_key, NULL, 0, 1)
SELECT DISTINCT prj_ruimte_key, waarde,
DECODE (prj_selectie_key, NULL, 0, 1)
FROM (SELECT prj_r.prj_scenario_key, prs_w.prj_ruimte_key,
CHR (1)
|| prs_w.prj_werkplek_volgnr
|| ' * ['
|| prs_a.prs_afdeling_naam
|| ']: '
|| NUMBER_TO_CHAR (NVL (prs_pw.prj_perslidwerkplek_bezetting, 0))
|| TO_CHAR
(NVL (prs_pw.prj_perslidwerkplek_bezetting,
0
)
)
|| '%' waarde,
'PRJ_PERSLIDWERKPLEK' label_soort, prs_pw.prj_perslidwerkplek_key label_key
FROM prj_ruimte prj_r,
prj_werkplek prs_w,
'PRJ_WERKPLEK' label_soort,
prs_pw.prj_werkplek_key label_key
FROM PRJ_RUIMTE prj_r,
PRJ_WERKPLEK prs_w,
(SELECT *
FROM prj_perslidwerkplek
FROM PRJ_PERSLIDWERKPLEK
WHERE prj_perslidwerkplek_verwijder IS NULL) prs_pw,
prs_afdeling prs_a
PRS_AFDELING prs_a
WHERE prs_w.prj_werkplek_key = prs_pw.prj_werkplek_key
AND prs_pw.prs_perslid_key IS NULL
AND prs_pw.prs_afdeling_key = prs_a.prs_afdeling_key
@@ -228,18 +249,29 @@ AS
|| prs_w.prj_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 || ')')
|| DECODE (prs_p.prs_perslid_voorletters,
NULL, '',
', ' || prs_p.prs_perslid_voorletters
)
|| DECODE (prs_p.prs_perslid_voornaam,
NULL, '',
' (' || prs_p.prs_perslid_voornaam
|| ')'
)
|| ': '
|| NUMBER_TO_CHAR (NVL (prs_pw.prj_perslidwerkplek_bezetting, 0))
|| TO_CHAR
(NVL (prs_pw.prj_perslidwerkplek_bezetting,
0
)
)
|| '%',
'PRJ_PERSLIDWERKPLEK', prs_pw.prj_perslidwerkplek_key
FROM prj_ruimte prj_r,
prj_werkplek prs_w,
'PRJ_WERKPLEK', prs_pw.prj_werkplek_key
FROM PRJ_RUIMTE prj_r,
PRJ_WERKPLEK prs_w,
(SELECT *
FROM prj_perslidwerkplek
FROM PRJ_PERSLIDWERKPLEK
WHERE prj_perslidwerkplek_verwijder IS NULL) prs_pw,
prs_perslid prs_p
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
@@ -249,18 +281,33 @@ AS
CHR (1)
|| prs_w.prj_werkplek_volgnr
|| ' Vrij: '
|| NUMBER_TO_CHAR (100 - NVL (SUM (prs_wb.prj_perslidwerkplek_bezetting), 0))
|| 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_ruimte_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;
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_ruimte_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;
CREATE_VIEW(prj_v_werkplek_oppervlakte, 0) (prj_werkplek_key, wpopp)
AS
@@ -286,17 +333,16 @@ AS
AND prj_werkplek_verwijder is null
ORDER BY prj_werkplek_key;
CREATE_VIEW (prj_v_cad_label_werkplekken,0) (prj_ruimte_key, waarde, label_soort, label_key, highlight)
CREATE_VIEW (prj_v_cad_label_werkplekken,0) (prj_ruimte_key, waarde, highlight)
AS
SELECT prj_ruimte_key,
CHR (1)
|| prj_werkplek_volgnr
|| ' ('
|| NUMBER_TO_CHAR (wpopp, 'FM9999.0')
|| TO_CHAR (wpopp, 'FM9999.0')
|| 'm2 '
|| NUMBER_TO_CHAR (bez)
|| TO_CHAR (bez)
|| '%)' waarde,
label_soort, label_key,
DECODE (SIGN (bez - 100),
1, 2,
DECODE (prj_selectie_key, NULL, 0, 1)
@@ -306,28 +352,40 @@ AS
SUM (NVL (prs_pw.prj_perslidwerkplek_bezetting, 0)) bez,
'PRJ_WERKPLEK' label_soort,
prs_w.prj_werkplek_key label_key, wpopp
FROM prj_ruimte prj_r,
prj_werkplek prs_w,
FROM PRJ_RUIMTE prj_r,
PRJ_WERKPLEK prs_w,
prj_v_werkplek_oppervlakte pwo,
(SELECT *
FROM prj_perslidwerkplek
FROM PRJ_PERSLIDWERKPLEK
WHERE prj_perslidwerkplek_verwijder IS NULL) prs_pw
WHERE prs_w.prj_werkplek_key = prs_pw.prj_werkplek_key(+)
AND pwo.prj_werkplek_key(+) = prs_w.prj_werkplek_key
AND prs_w.prj_ruimte_key = prj_r.prj_ruimte_key
AND prs_w.prj_werkplek_verwijder IS NULL
-- AND prs_pw.prj_perslidwerkplek_verwijder IS NULL
GROUP BY prj_scenario_key,
prs_w.prj_ruimte_key,
prs_w.prj_werkplek_volgnr,
'PRJ_WERKPLEK',
prs_w.prj_werkplek_key,
wpopp) vdata,
prj_selectie ps
PRJ_SELECTIE ps
WHERE ps.prj_scenario_key(+) = vdata.prj_scenario_key
AND ps.prj_selectie_tabelnaam(+) = label_soort AND ps.prj_selectie_tabelkey(+) =
label_key;
CREATE_VIEW(prj_v_cad_v_label_srtruimteopp, 0)
(prj_ruimte_key, waarde)
AS
SELECT r.prj_ruimte_key,
sr.alg_srtruimte_omschrijving
|| ' ('
|| r.prj_ruimte_bruto_vloeropp
|| ' m2)'
FROM PRJ_RUIMTE r, ALG_SRTRUIMTE sr
WHERE r.alg_srtruimte_key = sr.alg_srtruimte_key
AND prj_ruimte_verwijder IS NULL;
/
//De objecten in een ruimte (de soort-keys kunnen worden gebruikt om onroerende objecten uit te sluiten)
CREATE_VIEW (prj_v_cad_label_object,0) (prj_ruimte_key,
waarde,