日期                        产量
2013/09/01 18:33:53          34
2013/09/01 16:33:53          34
2013/09/02 05:33:53          34
2013/09/03 16:33:53          34
2013/09/04 12:33:53          34
2013/09/05 10:33:53          34
2013/09/06 05:33:53          34
2013/09/07 01:33:53          34
2013/09/04 02:33:53          34
2013/09/07 03:33:53          34
2013/09/08 04:33:53          34
2013/09/03 09:33:53          34要求  按天进行汇总 产量 
2013/09/01      654
2013/09/02       34
2013/09/04       2332问题难点在于量上 ,实际情况是工厂生产 计算产量
非按自然天0点至23点计算
而是 前一日的18点30分 至本日的 18点30分 为一天 计算
如 2013/09/01的产量汇总 应该为 2013/08/31 18:30 至 2013/09/31 18:30 累加如何写这样的SQL 

解决方案 »

  1.   

    将时间往前移动几个小时然后统计不就的了么最多就是几个 TO_CHAR TO_DATE
      

  2.   

    select to_char(日期-18.5/24,'yyyy/mm/dd') ,sum(产量) from 表
    group by to_char(日期-18.5/24,'yyyy/mm/dd')
      

  3.   

    select qdate, sum(amount) from 
    (
    select usertime, amount, case when to_char(usertime, 'hh24:mi')<='14:30' then to_char(usertime, 'yyyy/mm/dd') else to_char(usertime+1, 'yyyy/mm/dd') end qdate
      from debug_info 
    )
      group by qdate;供参考!
    先用case when算出应该被统计入的日期列,然后再聚合~
      

  4.   


    select sum(产量) from tb1  t where t.日期 between  to_date(2013-9-1-18-30,'yyyy-mm-dd-hh24-mI')  and  to_date(2013-9-2-18-30,'yyyy-mm-dd-hh24-mI')