小弟正实现一个年报表.需要按时间字段统计每个月份的数据.请问plsql语句应该怎么写?
比如,
select * from myTable t
where t.datetime = ?????????谢谢
比如,
select * from myTable t
where t.datetime = ?????????谢谢
解决方案 »
- ORACE 11G导ORACLE 10G的数据出错
- 求一条两个字段比较的sql语句
- oracle 服务器建表
- oracle to_number 错误
- 急,问个弱弱的问题
- ORA-12154: TNS:could not resolve the connect identifier specified
- 我发现ORACLE 服务器系统系统时间与当前时间差两个小时,如果要改过来?要做那些必要的措施请帮忙解决
- 简单的送分的问题
- PLsql报错找不到游标~
- 为何在centos安装oracle的时候,需要用oracle用户登录,但安装的时候又要提示用root用户执行orainstRoot.sh
- 存储过程如何使用临时表?
- oracle里如何将一个表达式的结果赋给另一个变量!
group by to_char(datetime,'yyyymm')
where to_char(datetime,'yyyymm') between 200501 and 200512
group by to_char(datetime,'yyyymm')
field: id datetime name num
我的解决方案是:根据日期(月份)查到的结果。填充到一个数组里面。数组暂且这么表示 array12,name_len)num 。不知道有没有方法在SQL语句实现?
select
substr(datetime,1,4),
sum(decode(substr(datetime,6,2),'01',num,0)),
sum(decode(substr(datetime,6,2),'02',num,0)),
sum(decode(substr(datetime,6,2),'03',num,0)),
sum(decode(substr(datetime,6,2),'04',num,0)),
sum(decode(substr(datetime,6,2),'05',num,0)),
sum(decode(substr(datetime,6,2),'06',num,0)),
sum(decode(substr(datetime,6,2),'07',num,0)),
sum(decode(substr(datetime,6,2),'08',num,0)),
sum(decode(substr(datetime,6,2),'09',num,0)),
sum(decode(substr(datetime,6,2),'10',num,0)),
sum(decode(substr(datetime,6,2),'11',num,0)),
sum(decode(substr(datetime,6,2),'12',num,0)),
from yourTable
group by substr(datetime,1,4)
2,200502,name2,1
3,200504,name2,4
4,200505,name2,1
5,200509,name2,7
6,200511,name2,6
7,200512,name2,1
填充为:
1,200501,name1,12
2,200502,name1,0
3,200503,name1,0
4,200504,name1,0
..
12,200512,name1,0 13,200501,name2,0
14,200502,name2,1
15,200503,name2,4
16,200504,name2,0
..SQL可否做到?