oraclesqlselect-in循环

oraclesqlselect-in循环,sql,oracle,variables,loops,for-loop,Sql,Oracle,Variables,Loops,For Loop,英豪 我有一大堆电表的数据。它的值在一整年中每小时都被取一次。 现在我想每个月都添加和显示它们。所以我得到了一张从1月到12月的表格和它的总能量信息。日期类型为“DD.MM.YYYY HH24” 我可以循环浏览数据并在额外的表格中显示每个月吗 在伪代码中,它应该如下所示: For x in 1..12 loop SELECT energie, time FROM tbl_energie WHERE time LIKE '%.0' + x + '.12%' --(01.x.201

英豪

我有一大堆电表的数据。它的值在一整年中每小时都被取一次。 现在我想每个月都添加和显示它们。所以我得到了一张从1月到12月的表格和它的总能量信息。日期类型为“DD.MM.YYYY HH24”

我可以循环浏览数据并在额外的表格中显示每个月吗

在伪代码中,它应该如下所示:

For x in 1..12 loop
  SELECT energie, time FROM tbl_energie
  WHERE time  LIKE '%.0' + x + '.12%'     --(01.x.2012)
end loop;

谢谢您的帮助-Phips有点笨重,在高性能代码中也不太好用,但是下面的例子怎么样:

select sum(energie), time
from (
  select energie, to_char(time, 'MM.YYYY') as time
  from tbl_energie
)
group by time
order by time

由于时间存储为字符串,因此有两种选择:要么进行字符串操作,要么转换为日期/时间

让我们以字符串操作的方式执行此操作:

select substr(time, 4, 7), sum(energie)
from tbl_energie
group by substring(time, 4, 7)
order by 1

我建议您在相信结果之前,也要确认每小时都有仪表读数。

您为什么不在
时间
列中使用
日期
类型?