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

@@ -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,