PNBR#68415 Graag rapport gereserveerde werkplekken vs. daadwerkelijke bezetting
svn path=/Customer/trunk/; revision=53288
This commit is contained in:
405
PNBR/pnbr.sql
405
PNBR/pnbr.sql
@@ -9630,15 +9630,18 @@ AS
|
||||
AND arr.res_rsv_ruimte_host_key = p.prs_perslid_key) res -- Bezet
|
||||
WHERE datums.datum = res.datum(+);
|
||||
|
||||
CREATE OR REPLACE VIEW PNBR_V_RAP_RES_TEAMRUIMTE
|
||||
|
||||
CREATE OR REPLACE VIEW pnbr_v_rap_res_teamruimte
|
||||
(
|
||||
datum,
|
||||
datum,
|
||||
HOST,
|
||||
alg_ruimte_key,
|
||||
ruimte_nr,
|
||||
reserveringen
|
||||
)
|
||||
AS
|
||||
SELECT datum,
|
||||
SELECT datum,
|
||||
HOST,
|
||||
alg_ruimte_key,
|
||||
ruimte_nr,
|
||||
LISTAGG (reservering, ', ')
|
||||
@@ -9648,34 +9651,36 @@ AS
|
||||
CONNECT BY LEVEL <=
|
||||
TRUNC (SYSDATE)
|
||||
- ADD_MONTHS (TRUNC (SYSDATE, 'Q'), -3)) tijdlijn,
|
||||
(SELECT TRUNC (res_rsv_ruimte_van) datum_res,
|
||||
(SELECT TRUNC (res_rsv_ruimte_van) datum_res,
|
||||
p.prs_perslid_naam_friendly HOST,
|
||||
rmt.alg_ruimte_key,
|
||||
rmt.ruimte_nr,
|
||||
CASE
|
||||
WHEN (TO_NUMBER (
|
||||
TO_CHAR (res_rsv_ruimte_van, 'HH24'))) <
|
||||
TO_CHAR (res_rsv_ruimte_van, 'hh24'))) <
|
||||
12
|
||||
AND (TO_NUMBER (
|
||||
TO_CHAR (res_rsv_ruimte_tot, 'HH24'))) >
|
||||
TO_CHAR (res_rsv_ruimte_tot, 'hh24'))) >
|
||||
12
|
||||
THEN
|
||||
'Hele dag'
|
||||
'hele dag'
|
||||
WHEN (TO_NUMBER (
|
||||
TO_CHAR (res_rsv_ruimte_van, 'HH24'))) <
|
||||
TO_CHAR (res_rsv_ruimte_van, 'hh24'))) <
|
||||
12
|
||||
AND (TO_NUMBER (
|
||||
TO_CHAR (res_rsv_ruimte_tot, 'HH24'))) <=
|
||||
TO_CHAR (res_rsv_ruimte_tot, 'hh24'))) <=
|
||||
12
|
||||
THEN
|
||||
'Ochtend'
|
||||
WHEN (TO_NUMBER (TO_CHAR (res_rsv_ruimte_van, 'HH24'))) >=
|
||||
'ochtend'
|
||||
WHEN (TO_NUMBER (TO_CHAR (res_rsv_ruimte_van, 'hh24'))) >=
|
||||
12
|
||||
THEN
|
||||
'Middag'
|
||||
'middag'
|
||||
ELSE
|
||||
'onbekend'
|
||||
END AS reservering
|
||||
FROM res_rsv_ruimte res,
|
||||
END AS reservering
|
||||
FROM res_rsv_ruimte res,
|
||||
prs_v_perslid_fullnames_all p,
|
||||
( SELECT res_rsv_ruimte_key,
|
||||
rr.res_ruimte_nr,
|
||||
MAX (ra.alg_ruimte_key) alg_ruimte_key,
|
||||
@@ -9693,158 +9698,268 @@ AS
|
||||
GROUP BY res_rsv_ruimte_key, rr.res_ruimte_nr) rmt
|
||||
WHERE res.res_rsv_ruimte_verwijder IS NULL
|
||||
AND res.res_activiteit_key = 370
|
||||
AND res.res_rsv_ruimte_key = rmt.res_rsv_ruimte_key)
|
||||
AND res.res_rsv_ruimte_key = rmt.res_rsv_ruimte_key
|
||||
AND res.res_rsv_ruimte_host_key = p.prs_perslid_key)
|
||||
reservering
|
||||
WHERE tijdlijn.datum = reservering.datum_res(+)
|
||||
GROUP BY datum,
|
||||
datum_res,
|
||||
alg_ruimte_key,
|
||||
ruimte_nr
|
||||
ruimte_nr,
|
||||
HOST
|
||||
ORDER BY tijdlijn.datum ASC;
|
||||
|
||||
CREATE OR REPLACE VIEW PNBR_V_BEZ_SENSOR_DAGDEEL
|
||||
AS
|
||||
SELECT TRUNC (stat_his.ins_deel_statedate) datum,
|
||||
r.alg_ruimte_key,
|
||||
r.alg_ruimte_omschrijving,
|
||||
CASE -- na 12 uur bezet tellen we mee voor de middag , voor 12 uur tellen we mee voor de ochtend
|
||||
WHEN TO_NUMBER (TO_CHAR (stat_his.ins_deel_statedate, 'HH24')) <
|
||||
12
|
||||
THEN
|
||||
'Ochtend'
|
||||
WHEN TO_NUMBER (TO_CHAR (stat_his.ins_deel_statedate, 'HH24')) >=
|
||||
12
|
||||
THEN
|
||||
'Middag'
|
||||
ELSE
|
||||
'Onbekend'
|
||||
END AS dagdeel,
|
||||
SUM (stat_his.duur_status) bez_minuten,
|
||||
COUNT (DISTINCT stat_his.ins_deel_key) aant_sensoren,
|
||||
ROUND (
|
||||
SUM (stat_his.duur_status)
|
||||
/ COUNT (DISTINCT stat_his.ins_deel_key),
|
||||
0) gem_bez_sensor
|
||||
FROM ins_deel d,
|
||||
alg_ruimte r,
|
||||
(SELECT ranking,
|
||||
ins_deel_key,
|
||||
ins_deel_state,
|
||||
ins_deel_statedate,
|
||||
( ins_deel_statedate
|
||||
- LAG (ins_deel_statedate)
|
||||
OVER (PARTITION BY ins_deel_key ORDER BY ranking))
|
||||
* -1440 AS duur_status --- duur van de status in minuten
|
||||
FROM (SELECT ins_deel_key,
|
||||
ins_deel_state,
|
||||
ins_deel_statedate,
|
||||
RANK ()
|
||||
OVER (
|
||||
PARTITION BY ins_deel_key
|
||||
ORDER BY ins_deel_key, ins_deel_statedate DESC) AS ranking
|
||||
FROM ins_deel_state_history) rank_state) stat_his,
|
||||
alg_ruimte rmt
|
||||
WHERE d.ins_deel_key = stat_his.ins_deel_key
|
||||
AND d.ins_alg_ruimte_key = r.alg_ruimte_key
|
||||
AND d.ins_srtdeel_key = 3521 --- alleen sensoren van hi-technologies
|
||||
AND stat_his.ins_deel_state = 1 -- voor de management info houden we het simpel: wat bezet is bewaren we
|
||||
AND r.alg_ruimte_key = rmt.alg_ruimte_key
|
||||
AND TRUNC (stat_his.ins_deel_statedate) =
|
||||
TO_DATE ('5-7-2021', 'dd-mm-yyyy')
|
||||
GROUP BY TRUNC (stat_his.ins_deel_statedate),
|
||||
r.alg_ruimte_key,
|
||||
r.alg_ruimte_omschrijving,
|
||||
CASE -- na 12 uur bezet tellen we mee voor de middag , voor 12 uur tellen we mee voor de ochtend
|
||||
WHEN TO_NUMBER (TO_CHAR (stat_his.ins_deel_statedate, 'HH24')) <
|
||||
12
|
||||
THEN
|
||||
'Ochtend'
|
||||
WHEN TO_NUMBER (TO_CHAR (stat_his.ins_deel_statedate, 'HH24')) >=
|
||||
12
|
||||
THEN
|
||||
'Middag'
|
||||
ELSE
|
||||
'Onbekend'
|
||||
END;
|
||||
|
||||
CREATE OR REPLACE VIEW pnbr_v_rap_bez_sensor_dagdeel
|
||||
CREATE OR REPLACE VIEW PNBR_V_RAP_BEZ_SENSOR_DAGDEEL
|
||||
(
|
||||
datum,
|
||||
alg_ruimte_key,
|
||||
ruimte_nr,
|
||||
dagdeel,
|
||||
bezetting_min
|
||||
DATUM,
|
||||
ALG_RUIMTE_KEY,
|
||||
RUIMTE_OMSCHRIJVING,
|
||||
DAGDEEL,
|
||||
BEZ_MINUTEN,
|
||||
AANT_SENSOREN,
|
||||
GEM_BEZ_SENSOR
|
||||
)
|
||||
AS
|
||||
SELECT tijdlijn.datum,
|
||||
bez.alg_ruimte_key,
|
||||
bez.res_ruimte_nr,
|
||||
bez.alg_ruimte_omschrijving,
|
||||
bez.dagdeel,
|
||||
bez.bezetting_min
|
||||
FROM ( SELECT TRUNC (SYSDATE) - LEVEL datum
|
||||
bez.bez_minuten,
|
||||
bez.aant_sensoren,
|
||||
bez.gem_bez_sensor
|
||||
FROM pnbr_v_bez_sensor_dagdeel bez,
|
||||
( SELECT TRUNC (SYSDATE) - LEVEL datum
|
||||
FROM DUAL
|
||||
CONNECT BY LEVEL <=
|
||||
TRUNC (SYSDATE)
|
||||
- ADD_MONTHS (TRUNC (SYSDATE, 'Q'), -3)) tijdlijn,
|
||||
( SELECT trunc(stat_his.ins_deel_statedate ) datum,
|
||||
r.alg_ruimte_key,
|
||||
rmt.res_ruimte_nr,
|
||||
CASE -- na 12 uur bezet tellen we mee voor de middag , voor 12 uur tellen we mee voor de ochtend
|
||||
WHEN TO_NUMBER (
|
||||
TO_CHAR (stat_his.ins_deel_statedate, 'HH24')) <
|
||||
12
|
||||
THEN
|
||||
'Ochtend'
|
||||
WHEN TO_NUMBER (
|
||||
TO_CHAR (stat_his.ins_deel_statedate, 'HH24')) >=
|
||||
12
|
||||
THEN
|
||||
'Middag'
|
||||
ELSE
|
||||
'Onbekend'
|
||||
END AS dagdeel,
|
||||
SUM (stat_his.duur_status) bezetting_min
|
||||
FROM ins_deel d,
|
||||
alg_ruimte r,
|
||||
(SELECT ranking,
|
||||
ins_deel_key,
|
||||
ins_deel_state,
|
||||
ins_deel_statedate,
|
||||
( ins_deel_statedate
|
||||
- LAG (ins_deel_statedate)
|
||||
OVER (PARTITION BY ins_deel_key
|
||||
ORDER BY ranking))
|
||||
* -1440 AS duur_status --- duur van de status in minuten
|
||||
FROM (SELECT ins_deel_key,
|
||||
ins_deel_state,
|
||||
ins_deel_statedate,
|
||||
RANK ()
|
||||
OVER (
|
||||
PARTITION BY ins_deel_key
|
||||
ORDER BY
|
||||
ins_deel_key,
|
||||
ins_deel_statedate DESC) AS ranking
|
||||
FROM ins_deel_state_history) rank_state)
|
||||
stat_his,
|
||||
( SELECT rmt.alg_ruimte_key, res_ruimte_nr FROM res_rsv_ruimte res,
|
||||
( SELECT res_rsv_ruimte_key,
|
||||
rr.res_ruimte_nr,
|
||||
MAX (ra.alg_ruimte_key) alg_ruimte_key,
|
||||
MAX (rr.res_ruimte_nr) ruimte_nr
|
||||
FROM res_rsv_ruimte r,
|
||||
res_ruimte_opstelling ro,
|
||||
res_ruimte rr,
|
||||
res_alg_ruimte ra
|
||||
WHERE r.res_rsv_ruimte_verwijder IS NULL
|
||||
AND r.res_ruimte_opstel_key =
|
||||
ro.res_ruimte_opstel_key
|
||||
AND ro.res_ruimte_key = rr.res_ruimte_key
|
||||
AND rr.res_ruimte_key = ra.res_ruimte_key
|
||||
AND r.res_rsv_ruimte_dirtlevel = 0
|
||||
GROUP BY res_rsv_ruimte_key, rr.res_ruimte_nr) rmt
|
||||
WHERE res.res_rsv_ruimte_verwijder IS NULL
|
||||
AND res.res_activiteit_key = 370
|
||||
AND res.res_rsv_ruimte_key = rmt.res_rsv_ruimte_key) rmt
|
||||
WHERE d.ins_deel_key = stat_his.ins_deel_key
|
||||
AND d.ins_alg_ruimte_key = r.alg_ruimte_key
|
||||
AND d.ins_srtdeel_key = 3521 --- alleen sensoren van hi-technologies
|
||||
AND stat_his.ins_deel_state = 1 -- voor de management info houden we het simpel: wat bezet is bewaren we
|
||||
AND r.alg_ruimte_key = rmt.alg_ruimte_key
|
||||
GROUP BY stat_his.ins_deel_statedate,
|
||||
r.alg_ruimte_key,
|
||||
rmt.res_ruimte_nr,
|
||||
CASE -- na 12 uur bezet tellen we mee voor de middag , voor 12 uur tellen we mee voor de ochtend
|
||||
WHEN TO_NUMBER (
|
||||
TO_CHAR (stat_his.ins_deel_statedate,
|
||||
'HH24')) <
|
||||
12
|
||||
THEN
|
||||
'Ochtend'
|
||||
WHEN TO_NUMBER (
|
||||
TO_CHAR (stat_his.ins_deel_statedate,
|
||||
'HH24')) >=
|
||||
12
|
||||
THEN
|
||||
'Middag'
|
||||
ELSE
|
||||
'Onbekend'
|
||||
END) bez
|
||||
- ADD_MONTHS (TRUNC (SYSDATE, 'Q'), -3)) tijdlijn
|
||||
WHERE tijdlijn.datum = bez.datum(+)
|
||||
ORDER BY tijdlijn.datum DESC;
|
||||
ORDER BY tijdlijn.datum DESC, bez.alg_ruimte_key, bez.dagdeel desc;
|
||||
|
||||
CREATE OR REPLACE VIEW PNBR_V_RAP_RES_VS_BEZ
|
||||
(
|
||||
datum,
|
||||
alg_ruimte_key,
|
||||
HOST,
|
||||
ruimte_nr,
|
||||
reserveringen,
|
||||
ruimte_omschrijving,
|
||||
bez_minuten_ochtend,
|
||||
aant_sensoren_ochtend,
|
||||
gem_bez_sensor_ochtend,
|
||||
bez_minuten_middag,
|
||||
aant_sensoren_middag,
|
||||
gem_bez_sensor_middag
|
||||
)
|
||||
AS
|
||||
SELECT *
|
||||
FROM (SELECT *
|
||||
FROM ( SELECT TRUNC (SYSDATE) - LEVEL datum
|
||||
FROM DUAL
|
||||
CONNECT BY LEVEL <=
|
||||
TRUNC (SYSDATE)
|
||||
- ADD_MONTHS (TRUNC (SYSDATE, 'Q'), -3))
|
||||
JOIN pnbr_v_rap_res_teamruimte USING (datum))
|
||||
FULL JOIN
|
||||
(SELECT *
|
||||
FROM ( SELECT TRUNC (SYSDATE) - LEVEL datum
|
||||
FROM DUAL
|
||||
CONNECT BY LEVEL <=
|
||||
TRUNC (SYSDATE)
|
||||
- ADD_MONTHS (TRUNC (SYSDATE, 'Q'), -3))
|
||||
JOIN
|
||||
( SELECT datum,
|
||||
alg_ruimte_key,
|
||||
ruimte_nr,
|
||||
SUM (
|
||||
CASE
|
||||
WHEN dagdeel = 'Middag' THEN bezetting_min
|
||||
ELSE NULL
|
||||
END) middag,
|
||||
SUM (
|
||||
CASE
|
||||
WHEN dagdeel = 'Ochtend' THEN bezetting_min
|
||||
ELSE NULL
|
||||
END) ochtend
|
||||
FROM pnbr_v_rap_bez_sensor_dagdeel
|
||||
GROUP BY datum, alg_ruimte_key, ruimte_nr)
|
||||
USING (datum))
|
||||
USING (datum, alg_ruimte_key, ruimte_nr)
|
||||
ORDER BY datum;
|
||||
|
||||
SELECT DISTINCT datum,
|
||||
alg_ruimte_key,
|
||||
HOST,
|
||||
ruimte_nr,
|
||||
reserveringen,
|
||||
ruimte_omschrijving,
|
||||
bez_minuten_ochtend,
|
||||
aant_sensoren_ochtend,
|
||||
gem_bez_sensor_ochtend,
|
||||
bez_minuten_middag,
|
||||
aant_sensoren_middag,
|
||||
gem_bez_sensor_middag
|
||||
FROM (SELECT *
|
||||
FROM ( SELECT TRUNC (SYSDATE) - LEVEL datum
|
||||
FROM DUAL
|
||||
CONNECT BY LEVEL <=
|
||||
TRUNC (SYSDATE)
|
||||
- ADD_MONTHS (TRUNC (SYSDATE, 'Q'), -3))
|
||||
JOIN pnbr_v_rap_res_teamruimte USING (datum))
|
||||
FULL JOIN
|
||||
(SELECT *
|
||||
FROM ( SELECT TRUNC (SYSDATE) - LEVEL datum
|
||||
FROM DUAL
|
||||
CONNECT BY LEVEL <=
|
||||
TRUNC (SYSDATE)
|
||||
- ADD_MONTHS (TRUNC (SYSDATE, 'Q'), -3))
|
||||
JOIN
|
||||
( SELECT datum,
|
||||
alg_ruimte_key,
|
||||
ruimte_omschrijving,
|
||||
SUM (
|
||||
CASE
|
||||
WHEN dagdeel = 'Ochtend' THEN bez_minuten
|
||||
ELSE NULL
|
||||
END) bez_minuten_ochtend,
|
||||
SUM (
|
||||
CASE
|
||||
WHEN dagdeel = 'Ochtend'
|
||||
THEN
|
||||
aant_sensoren
|
||||
ELSE
|
||||
NULL
|
||||
END) aant_sensoren_ochtend,
|
||||
SUM (
|
||||
CASE
|
||||
WHEN dagdeel = 'Ochtend'
|
||||
THEN
|
||||
gem_bez_sensor
|
||||
ELSE
|
||||
NULL
|
||||
END) gem_bez_sensor_ochtend,
|
||||
SUM (
|
||||
CASE
|
||||
WHEN dagdeel = 'Middag' THEN bez_minuten
|
||||
ELSE NULL
|
||||
END) bez_minuten_middag,
|
||||
SUM (
|
||||
CASE
|
||||
WHEN dagdeel = 'Middag' THEN aant_sensoren
|
||||
ELSE NULL
|
||||
END) aant_sensoren_middag,
|
||||
SUM (
|
||||
CASE
|
||||
WHEN dagdeel = 'Middag'
|
||||
THEN
|
||||
gem_bez_sensor
|
||||
ELSE
|
||||
NULL
|
||||
END) gem_bez_sensor_middag
|
||||
FROM pnbr_v_rap_bez_sensor_dagdeel
|
||||
GROUP BY datum, alg_ruimte_key, ruimte_omschrijving
|
||||
ORDER BY datum DESC)
|
||||
USING (datum))
|
||||
USING (datum, alg_ruimte_key)
|
||||
ORDER BY datum;
|
||||
|
||||
CREATE OR REPLACE VIEW PNBR_V_RAP_BEZ_VERDIEPING
|
||||
AS
|
||||
SELECT bezetting.datum,
|
||||
TO_CHAR (bezetting.datum, 'DAY') dag,
|
||||
bezetting.alg_verdieping_volgnr,
|
||||
aant_verd.aant_sensoren,
|
||||
aant_verd.max_bez_minuten_dagdeel,
|
||||
SUM (bezetting.bez_minuten_ochtend) tot_bez_ochtend,
|
||||
ROUND (
|
||||
( SUM (bezetting.bez_minuten_ochtend)
|
||||
/ aant_verd.max_bez_minuten_dagdeel)
|
||||
* 100) perc_bez_ochtend,
|
||||
SUM (bezetting.bez_minuten_middag) tot_bez_middag,
|
||||
ROUND (
|
||||
( SUM (bezetting.bez_minuten_middag)
|
||||
/ aant_verd.max_bez_minuten_dagdeel)
|
||||
* 100) perc_bez_middag
|
||||
FROM ( SELECT b.datum,
|
||||
v.alg_verdieping_volgnr,
|
||||
v.alg_verdieping_key,
|
||||
b.alg_ruimte_key,
|
||||
SUM (
|
||||
CASE
|
||||
WHEN b.dagdeel = 'Ochtend' THEN b.bez_minuten
|
||||
ELSE NULL
|
||||
END) bez_minuten_ochtend,
|
||||
SUM (
|
||||
CASE
|
||||
WHEN b.dagdeel = 'Middag' THEN b.bez_minuten
|
||||
ELSE NULL
|
||||
END) bez_minuten_middag
|
||||
FROM pnbr_v_rap_bez_sensor_dagdeel b,
|
||||
(SELECT r.alg_ruimte_key,
|
||||
v.alg_verdieping_key,
|
||||
v.alg_verdieping_volgnr
|
||||
FROM alg_ruimte r, alg_verdieping v
|
||||
WHERE v.alg_verdieping_key = r.alg_verdieping_key) v
|
||||
WHERE b.alg_ruimte_key = v.alg_ruimte_key(+)
|
||||
GROUP BY b.datum,
|
||||
v.alg_verdieping_key,
|
||||
v.alg_verdieping_volgnr,
|
||||
b.alg_ruimte_key,
|
||||
b.ruimte_omschrijving
|
||||
ORDER BY datum DESC, v.alg_verdieping_volgnr) bezetting,
|
||||
( SELECT g.alg_gebouw_omschrijving,
|
||||
v.alg_verdieping_key,
|
||||
COUNT (d.ins_deel_key) aant_sensoren,
|
||||
240 * COUNT (d.ins_deel_key) max_bez_minuten_dagdeel
|
||||
FROM alg_gebouw g,
|
||||
alg_verdieping v,
|
||||
alg_ruimte r,
|
||||
ins_deel d
|
||||
WHERE g.alg_gebouw_key = v.alg_gebouw_key
|
||||
AND v.alg_verdieping_key = r.alg_verdieping_key
|
||||
AND r.alg_ruimte_key = d.ins_alg_ruimte_key
|
||||
AND d.ins_alg_ruimte_type = 'R'
|
||||
AND d.ins_srtdeel_key = 3521 --- alleen sensoren van hi-technologies
|
||||
AND d.ins_deel_verwijder IS NULL
|
||||
GROUP BY g.alg_gebouw_omschrijving, v.alg_verdieping_key
|
||||
ORDER BY g.alg_gebouw_omschrijving) aant_verd
|
||||
WHERE bezetting.alg_verdieping_key = aant_verd.alg_verdieping_key(+)
|
||||
GROUP BY bezetting.datum,
|
||||
bezetting.alg_verdieping_volgnr,
|
||||
aant_verd.aant_sensoren,
|
||||
aant_verd.max_bez_minuten_dagdeel
|
||||
ORDER BY bezetting.datum, bezetting.alg_verdieping_volgnr;
|
||||
|
||||
------ payload end ------
|
||||
|
||||
SET DEFINE OFF
|
||||
|
||||
Reference in New Issue
Block a user