1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
| with wbx_prod as
(
select 43.8 as prd_valeur, to_date('20/09/2010 00:05:00', 'dd/mm/yyyy hh24:mi:ss') as prd_date from dual union all
select 53 , to_date('21/09/2010 10:44:58', 'dd/mm/yyyy hh24:mi:ss') from dual union all
select 145 , to_date('23/09/2010 10:08:01', 'dd/mm/yyyy hh24:mi:ss') from dual union all
select 150 , to_date('22/09/2010 09:08:05', 'dd/mm/yyyy hh24:mi:ss') from dual
)
, gtc_conso as
(
select 86.2 as cso_valeur, to_date('20/09/2010 00:05:00', 'dd/mm/yyyy hh24:mi:ss') as cso_date from dual union all
select 92.6 , to_date('23/09/2010 00:05:01', 'dd/mm/yyyy hh24:mi:ss') from dual union all
select 221.4 , to_date('22/09/2010 00:05:00', 'dd/mm/yyyy hh24:mi:ss') from dual
)
, calendar as
(
select level + trunc(sysdate, 'iw') - 8 as dt
from dual
connect by level <= 7
)
, sr as
(
SELECT 1 as id,
'Energie produite' as energie,
coalesce(pd.prd_valeur, 0) as valeur,
cl.dt as jour
FROM calendar cl
left outer join wbx_prod pd
on trunc(pd.prd_date) = cl.dt
WHERE cl.dt BETWEEN trunc(sysdate, 'iw') - 7
AND trunc(sysdate, 'iw') - 1/24/60/60
UNION ALL
SELECT 2,
'Energie consommée',
coalesce(-1 * cs.cso_valeur, 0),
cl.dt
FROM calendar cl
left outer join gtc_conso cs
on trunc(cs.cso_date) = cl.dt
WHERE cl.dt BETWEEN trunc(sysdate, 'iw') - 7
AND trunc(sysdate, 'iw') - 1/24/60/60
)
select trunc(jour) as jour,
case grouping(id) when 1 then 3 else id end as id,
case grouping(energie) when 1 then 'Bilan énergétique' else energie end as energie,
case id when 2 then -1 else 1 end * sum(valeur) as valeur
from sr
group by trunc(jour), rollup(id, energie)
having grouping(id) = 1
or grouping(energie) = 0
order by jour asc, id asc;
JOUR ID ENERGIE VALEUR
----------- ----- ------------------- --------
20/09/2010 1 Energie produite 43.8
20/09/2010 2 Energie consommée 86.2
20/09/2010 3 Bilan énergétique - 42.4
21/09/2010 1 Energie produite 53
21/09/2010 2 Energie consommée 0
21/09/2010 3 Bilan énergétique 53
22/09/2010 1 Energie produite 150
22/09/2010 2 Energie consommée 221.4
22/09/2010 3 Bilan énergétique - 71.4
23/09/2010 1 Energie produite 145
23/09/2010 2 Energie consommée 92.6
23/09/2010 3 Bilan énergétique 52.4
24/09/2010 1 Energie produite 0
24/09/2010 2 Energie consommée 0
24/09/2010 3 Bilan énergétique 0
25/09/2010 1 Energie produite 0
25/09/2010 2 Energie consommée 0
25/09/2010 3 Bilan énergétique 0
26/09/2010 1 Energie produite 0
26/09/2010 2 Energie consommée 0
26/09/2010 3 Bilan énergétique 0 |
Partager