表中有两个时间段,1 开始结算时间,2 终止结算时间, oracle 中如何实现每月半月结算一次,请赐教。
解决方案 »
- oracle数据库表内数据迁移问题(思路)
- 求哪位达人帮小弟分析下StatspackReport
- oracle数据库恢复
- 求一条sql语句
- 含有 group by 的分页问题
- oracle用plsql打开后,package里有sys.dbms_##的东东,是什么?还有plsql中packages里面一般会发些什么用途东东
- 关于一个游标记录数的问题
- 大家帮忙看看这段程序在触发器中执行得逻辑过程!!!
- 小弟是菜鸟,请问一下svrmgrl是什么,9I中有吗?
- TEST用户的DBA角色中只包括CONNECT和RESOURCE 子角色,但RESOURCE 子角色的“管理选项“为“X”,我觉得此时TEST应该不拥有RESOURCE角色的
- 11g正确的存储过程移到10g报错
- oracle MONTHS_BETWEEN 取月份之差,有小数位的时候进位
select add_months(sdate, (rownum - 1)/2) + mod(rownum - 1, 2) * 15 as "开始日期",
case when mod(rownum , 2) = 0 then last_day(add_months(sdate, (rownum - 1)/2))
else add_months(sdate, (rownum - 1)/2) + mod(rownum, 2) * 15 - 1
end as "结束日期"
from (select trunc(sysdate,'mm') as sdate from dual)
connect by rownum <= 6;开始日期 结束日期
------------ ------------
2011-11-1 2011-11-15
2011-11-16 2011-11-30
2011-12-1 2011-12-15
2011-12-16 2011-12-31
2012-1-1 2012-1-15
2012-1-16 2012-1-31
-- 上半月
select '上半月' as comm ,to_char(aa.结束时间,'yyyy-mm'),sum(aa.销售数量),sum(aa.销售单价)
from
(select 合同表.合同号,合同表.开始时间,合同表.结束时间,订单表.销售数量,订单表.销售单价 from 合同表,订单表 where 合同表.合同号=订单表.合同号) aa
where to_char(aa.开始时间 ,'dd') >=1 and to_char(aa.开始时间 ,'dd')<16 and to_char(aa.结束时间 ,'dd') >=1 and to_char(aa.结束时间 ,'dd')<16 group by to_char(aa.结束时间,'yyyy-mm')
union
select '下半月' as comm ,to_char(aa.结束时间,'yyyy-mm'),sum(aa.销售数量),sum(aa.销售单价)
from
(select 合同表.合同号,合同表.开始时间,合同表.结束时间,订单表.销售数量,订单表.销售单价 from 合同表,订单表 where 合同表.合同号=订单表.合同号) aa
where to_char(aa.开始时间 ,'dd') >=16 and to_char(aa.开始时间 ,'dd')<32 and to_char(aa.结束时间 ,'dd') >=16 and to_char(aa.结束时间 ,'dd')<32 group by to_char(aa.结束时间,'yyyy-mm')