PNBR#68415 Graag rapport gereserveerde werkplekken vs. daadwerkelijke bezetting
svn path=/Customer/trunk/; revision=52952
This commit is contained in:
215
PNBR/pnbr.sql
215
PNBR/pnbr.sql
@@ -9630,6 +9630,221 @@ 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
|
||||
(
|
||||
datum,
|
||||
alg_ruimte_key,
|
||||
ruimte_nr,
|
||||
reserveringen
|
||||
)
|
||||
AS
|
||||
SELECT datum,
|
||||
alg_ruimte_key,
|
||||
ruimte_nr,
|
||||
LISTAGG (reservering, ', ')
|
||||
WITHIN GROUP (ORDER BY datum_res, alg_ruimte_key) reserveringen
|
||||
FROM ( SELECT TRUNC (SYSDATE) - LEVEL datum
|
||||
FROM DUAL
|
||||
CONNECT BY LEVEL <=
|
||||
TRUNC (SYSDATE)
|
||||
- ADD_MONTHS (TRUNC (SYSDATE, 'Q'), -3)) tijdlijn,
|
||||
(SELECT TRUNC (res_rsv_ruimte_van) datum_res,
|
||||
rmt.alg_ruimte_key,
|
||||
rmt.ruimte_nr,
|
||||
CASE
|
||||
WHEN (TO_NUMBER (
|
||||
TO_CHAR (res_rsv_ruimte_van, 'HH24'))) <
|
||||
12
|
||||
AND (TO_NUMBER (
|
||||
TO_CHAR (res_rsv_ruimte_tot, 'HH24'))) >
|
||||
12
|
||||
THEN
|
||||
'Hele dag'
|
||||
WHEN (TO_NUMBER (
|
||||
TO_CHAR (res_rsv_ruimte_van, 'HH24'))) <
|
||||
12
|
||||
AND (TO_NUMBER (
|
||||
TO_CHAR (res_rsv_ruimte_tot, 'HH24'))) <=
|
||||
12
|
||||
THEN
|
||||
'Ochtend'
|
||||
WHEN (TO_NUMBER (TO_CHAR (res_rsv_ruimte_van, 'HH24'))) >=
|
||||
12
|
||||
THEN
|
||||
'Middag'
|
||||
ELSE
|
||||
'onbekend'
|
||||
END AS reservering
|
||||
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)
|
||||
reservering
|
||||
WHERE tijdlijn.datum = reservering.datum_res(+)
|
||||
GROUP BY datum,
|
||||
datum_res,
|
||||
alg_ruimte_key,
|
||||
ruimte_nr
|
||||
ORDER BY tijdlijn.datum ASC;
|
||||
|
||||
|
||||
CREATE OR REPLACE VIEW pnbr_v_rap_bez_sensor_dagdeel
|
||||
(
|
||||
datum,
|
||||
alg_ruimte_key,
|
||||
ruimte_nr,
|
||||
dagdeel,
|
||||
bezetting_min
|
||||
)
|
||||
AS
|
||||
SELECT tijdlijn.datum,
|
||||
bez.alg_ruimte_key,
|
||||
bez.res_ruimte_nr,
|
||||
bez.dagdeel,
|
||||
bez.bezetting_min
|
||||
FROM ( 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
|
||||
WHERE tijdlijn.datum = bez.datum(+)
|
||||
ORDER BY tijdlijn.datum DESC;
|
||||
|
||||
CREATE OR REPLACE VIEW PNBR_V_RAP_RES_VS_BEZ
|
||||
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;
|
||||
|
||||
------ payload end ------
|
||||
|
||||
SET DEFINE OFF
|
||||
|
||||
Reference in New Issue
Block a user