有一张表,怎么样按照时间分 周、旬、月、半月、季度、半年、年统计数据。
特别是按 旬、半月、季度之类的请高手给解释一下。还有,可不可以在oracle里建个job 按时到月的话把上一个月的数据自动插入到 月统计表。
或者分别按周、季度的把统计的数据插入到周、季度表中去。一定给分、万分感谢!!!
特别是按 旬、半月、季度之类的请高手给解释一下。还有,可不可以在oracle里建个job 按时到月的话把上一个月的数据自动插入到 月统计表。
或者分别按周、季度的把统计的数据插入到周、季度表中去。一定给分、万分感谢!!!
解决方案 »
- 麻烦各位帮小弟看看这个语句怎么写?谢谢各位
- 数据库容灾实现方式的验证,求大神解答
- 关于select的问题
- 请教大家
- red001.log、red002.log、red003.log 三个文件是干什么用的??
- 为什么安装了advance server后我的Oracle服务不能启动???
- 想问一个转换函数怎么写!急
- 这几天Oracle 92I经常出现ORA-00600的错误
- 我现在想从数据库中查出前10条记录,MS-SQL中的Top在Oracle中用不成,请问Oracle是用什么来实现的?<在线等待>给分...
- oracle报表是怎样运行的?
- 分区必须要放在不同的磁盘上才体现 出他的优势吗
- 数据库库创建遇到的异常
旬:select to_char(col_date,'yyyy mm ')||trunc(to_char(coldate-1,'dd')/10) from tbname group by to_char(col_date,'yyyy mm ')||trunc(to_char(coldate-1,'dd')/10);
月:select to_char(col_date,'yyyy mm'),sum(colname) from tbname group by to_char(col_date,'yyyy mm');
半月:select to_char(col_date,'yyyy mm ')||decode(sign(to_char(coldate,'dd')-15),1,1,0),sum(colname) from tbname group by to_char(col_date,'yyyy mm ')||decode(sign(to_char(coldate,'dd')-15),1,1,0);
季度:select to_char(col_date,'yyyy q'),sum(colname) from tbname group by to_char(col_date,'yyyy q');
半年:select to_char(col_date,'yyyy ')||trunc((to_char(coldate,'mm')-1)/6) from tbname group by to_char(col_date,'yyyy ')||trunc((to_char(coldate,'mm')-1)/6);
年:select to_char(col_date,'yyyy' from tbname group by to_char(col_date,'yyyy');
或者分别按周、季度的把统计的数据插入到周、季度表中去。
--------------------------------------------------------------------------------
可以,没什么问题。
'your_procedure;',//要执行的过程
trunc(sysdate)+1/24,//下次执行时间
'trunc(sysdate)+1/24+1'//每次间隔时间
);
删除job:dbms_job.remove(jobno);
修改要执行的操作:job:dbms_job.what(jobno,what);
修改下次执行时间:dbms_job.next_date(job,next_date);
修改间隔时间:dbms_job.interval(job,interval);
停止job:dbms.broken(job,broken,nextdate);
启动job:dbms_job.run(jobno);
例子:
VARIABLE jobno number;
begin
DBMS_JOB.SUBMIT(:jobno,
'insert into tb_month select trunc(col_date,''mm''),sum(colname) from tbname group by trunc(col_date,''mm'');',
SYSDATE, 'SYSDATE + 1/720');
commit;
end;
/
for example:create or replace procedure p_demo as
begin
insert into tb_1
select to_char(col_date,'yyyy ')||trunc((to_char(coldate,'mm')-1)/6) from tbname group by to_char(col_date,'yyyy ')||trunc((to_char(coldate,'mm')-1)/6);
commit;
end p_demo;
/
VARIABLE jobno number;
begin
DBMS_JOB.SUBMIT(:jobno,
'p_demo;',
SYSDATE, 'SYSDATE + 1');
commit;
end;
/
2005 01 2 40
2005 01 3 19
2005 02 0 102 --- 二月分怎么会出现4 个统计数据呢?
2005 02 1 7
2005 02 2 106
2005 02 3 21
2005 03 0 48 -0、3分别代表的旬吗?如果所代表的1 没有数据,能否让它显示0呢?
2005 03 2 32
try:
select to_char(col_date,'yyyy mm ')||decode(trunc((to_char(coldate,'dd')-1)/10),0,'shangxun',1,'zhongxun','xiaxun') from tbname to_char(col_date,'yyyy mm ')||decode(trunc((to_char(coldate,'dd')-1)/10),0,'shangxun',1,'zhongxun','xiaxun') ;
2005 03 上旬 32
2005 03 下旬 51