一个时间段内求和的SQL,在线求解

南山行者 2015-06-23 11:23:26
我想在想把过去一个时间段(比如10天)内的数据一个合计,
id total time
1 100 2015/01/01
2 101 2015/01/05
3 83 2015/01/05
4 106 2015/01/08
5 99 2015/01/19
6 190 2015/01/21
7 60 2015/01/22
如果我这样写
select
sum(total)
from tt
where time>= trunc(to_date('2015/01/10 00:00' ,'yyyy/MM/dd HH24:mi:ss') - 10)
and time< trunc(to_date('2015/01/10 00:00' ,'yyyy/MM/dd HH24:mi:ss'))
group by time
这样写的话,数据就是
100
184
83
但我需要的是不管有没有这一天,都要算上,
100
0
0
0
184
0
0
106
0
0
但是这个SQL语句怎么写呢
...全文
820 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangchangming 2015-06-23
  • 打赏
  • 举报
回复
select b.time, sum(total) from tt right join (select to_date('2015/01/10 00:00', 'yyyy/mm/dd hh24:mi:ss') - rownum + 1 time from dual connect by level <= 10) b on b.time = tt.time and tt.time >= trunc(to_date('2015/01/10 00:00', 'yyyy/MM/dd HH24:mi:ss') - 10) and tt.time < trunc(to_date('2015/01/10 00:00', 'yyyy/MM/dd HH24:mi:ss')) group by b.time order by 1;

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧