oracle中非自然月的问题 Where TRUNC(DATA_COMPLETE.WORK_DATE-interval '25' day ,'mm')=trunc(sysdate,'mm')我想按照财务月来统计,上月26日至本月25日为统计区间。刚才用上面的语句,当前日期是25之后的话就没问题,如果当前日期是25之前,统计出来的结果就不对了。现在脑子有点木,请高手指教。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 where DATA_COMPLETE.WORK_DATE>case when sysdate >to_date(to_char(sysdate, 'yyyymm') || '26', 'yyyymmdd') then to_date(to_char(sysdate, 'yyyymm') || '26', 'yyyymmdd') else add_months(to_date(to_char(sysdate, 'yyyymm') || '26', 'yyyymmdd'), 1) end;改成这样行不行 正解~测试应该是成功了。不过 好像有两个问题 第一:我们的财务月是从26日开始算的,所以应该是WORK_DATE日期大于25才对。第二,add months参数应该是-1.您在看一下,谢谢解答。 where DATA_COMPLETE.WORK_DATE>case when sysdate >to_date(to_char(sysdate, 'yyyymm') || '25', 'yyyymmdd') then to_date(to_char(sysdate, 'yyyymm') || '26', 'yyyymmdd') else add_months(to_date(to_char(sysdate, 'yyyymm') || '25', 'yyyymmdd'), -1) 2月26-3月25算3月的 3月26-4月25算4月的如果当前日期大于25日的话 应该选择workdate大于本月25日的记录当前日期不大于25日,选择workdate小于上月25日的记录。这样说对不对? where DATA_COMPLETE.WORK_DATE>case when sysdate >to_date(to_char(sysdate, 'yyyymm') || '25', 'yyyymmdd') then to_date(to_char(sysdate, 'yyyymm') || '25', 'yyyymmdd') else add_months(to_date(to_char(sysdate, 'yyyymm') || '25', 'yyyymmdd'), -1) end 笔误,当前日期不大于25日,选择workdate大于上月25日的记录。 oracle安装出现 "Oracle Database Configuration Assistant 失败'问题,详见内容 oracle 9i 请教oarcle高手!!!!! 刚用PLSQL,请教 plsql 连接远程数据库(oracle 10g)要什么步骤? 请教有那些好用的oracle数据库管理工具 从哪里可以下载到 Oracle 9i? 高手帮帮忙!!先谢谢勒 !! 动态sql问题,高分求教!!! 高分相送!如何用ASP取得存在BLOB字段中的图片,最好提供源码。 Oracle用一行显示上月和本月数据? 求一个统计报表怎么实现,可以用oracle过程实现 sql语句问题就解释
when sysdate >to_date(to_char(sysdate, 'yyyymm') || '26', 'yyyymmdd') then
to_date(to_char(sysdate, 'yyyymm') || '26', 'yyyymmdd')
else
add_months(to_date(to_char(sysdate, 'yyyymm') || '26',
'yyyymmdd'),
1)
end;
改成这样行不行
where DATA_COMPLETE.WORK_DATE>case
when sysdate >to_date(to_char(sysdate, 'yyyymm') || '25', 'yyyymmdd') then
to_date(to_char(sysdate, 'yyyymm') || '26', 'yyyymmdd')
else
add_months(to_date(to_char(sysdate, 'yyyymm') || '25',
'yyyymmdd'),
-1)
3月26-4月25算4月的
如果当前日期大于25日的话 应该选择workdate大于本月25日的记录
当前日期不大于25日,选择workdate小于上月25日的记录。
这样说对不对?
where DATA_COMPLETE.WORK_DATE>case
when sysdate >to_date(to_char(sysdate, 'yyyymm') || '25', 'yyyymmdd') then
to_date(to_char(sysdate, 'yyyymm') || '25', 'yyyymmdd')
else
add_months(to_date(to_char(sysdate, 'yyyymm') || '25',
'yyyymmdd'),
-1)
end