有一张表,怎么样按照时间分 周、旬、月、半月、季度、半年、年统计数据。
特别是按 旬、半月、季度之类的请高手给解释一下。还有,可不可以在oracle里建个job 按时到月的话把上一个月的数据自动插入到 月统计表。
或者分别按周、季度的把统计的数据插入到周、季度表中去。一定给分、万分感谢!!!
特别是按 旬、半月、季度之类的请高手给解释一下。还有,可不可以在oracle里建个job 按时到月的话把上一个月的数据自动插入到 月统计表。
或者分别按周、季度的把统计的数据插入到周、季度表中去。一定给分、万分感谢!!!
解决方案 »
- 在forms builder中能否看到APP_STANDARD的源代码?
- 高分求教数据库字符集问题,不够再续加,紧急紧急
- 请问高手:to_number to_char 用法?
- 两个问题.一是如何释放undo表空间?二是truncate一张表报错需要nowait
- oracle 建立表空间问题!在线等!
- 如何实现Oracle数据库表的字段加一?
- 在线等,急。。。。。存储过程中的循环语法
- 请帮忙,太感谢了!怎么搜索7天以内的数据?应该怎么写sql?
- 新 Enterprise Manager Console 问题,100分
- enterprise manager中怎样连上数据库
- 分区必须要放在不同的磁盘上才体现 出他的优势吗
- 数据库库创建遇到的异常
旬: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