1。insert into rpt_agesettle_tmp(salerid,customerid,famount,fbizdate,salerecflag,seqid)
(select salerid,customerid,famount,fbizdate,salerecflag,seqid from rpt_agesett_zz);
2。insert into rpt_agesettle_tmp(salerid,customerid,famount,fbizdate,salerecflag,seqid)
(select salerid,customerid,sum(famount),trunc(fbizdate,''DD''),salerecflag,seqid from rpt_agesett_zz
group by salerid,customerid,trunc(fbizdate,''DD''),salerecflag,seqid);执行两句不同的sql后。从rpt_agesettle_tmp里面取到的sum(famount)结果不一致。
第1句的结果是正确的。第2句的结果是不正确的并且会变化。将第2句中的
trunc(fbizdate,''DD'')去掉后结果一致。不明白是什么原因,请高手指教。
(select salerid,customerid,famount,fbizdate,salerecflag,seqid from rpt_agesett_zz);
2。insert into rpt_agesettle_tmp(salerid,customerid,famount,fbizdate,salerecflag,seqid)
(select salerid,customerid,sum(famount),trunc(fbizdate,''DD''),salerecflag,seqid from rpt_agesett_zz
group by salerid,customerid,trunc(fbizdate,''DD''),salerecflag,seqid);执行两句不同的sql后。从rpt_agesettle_tmp里面取到的sum(famount)结果不一致。
第1句的结果是正确的。第2句的结果是不正确的并且会变化。将第2句中的
trunc(fbizdate,''DD'')去掉后结果一致。不明白是什么原因,请高手指教。
解决方案 »
- 那位高手帮忙看一下语句!非常急!!!
- oracle11g exp出整个用户数据库以后imp出错
- PLSQL 語句,求解释FOR UPDATE的意思
- 动态SQL取tablename%rowtype类型的数据问题?急求高手指导
- 想在oracle 10 里执行JOB,每月29日00:10分执行,考虑闰年平年2月.高分求(分不够再加)!!!
- 求一性能优化方案,请有这方面经验的帮帮我呀,在线等回复!!!!
- 求一个sql语句!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- 谁能帮忙解决这个问题?
- 如何中断一个ADO查询?(100分)请教了,谢谢!
- oracle增量备份
- 批量插入数据导致数据库服务挂死.
- 如何向ORACLE存储过程里传的参数是数组?
GOOGLE ORACLE DATE TRUNC
(select salerid,customerid,famount,trunc(fbizdate,''DD''),salerecflag,seqid from rpt_agesett_zz);
2。insert into rpt_agesettle_tmp(salerid,customerid,famount,fbizdate,salerecflag,seqid)
(select salerid,customerid,sum(famount),trunc(fbizdate,''DD''),salerecflag,seqid from rpt_agesett_zz
group by salerid,customerid,trunc(fbizdate,''DD''),salerecflag,seqid); 3。insert into rpt_agesettle_tmp(salerid,customerid,famount,salerecflag,seqid)
(select salerid,customerid,sum(famount),salerecflag,seqid from rpt_agesett_zz
group by salerid,customerid,salerecflag,seqid);
将第一句修改以后结果也是正确的。好象就是不汇总的时候结果是正确的或者改成3的样子直接进行汇总结果也是正确。不明白2时为什么结果不正确。郁闷。
select trunc(sysdate,'dd') from dual;--2008-10-25
select trunc(sysdate,'yyyy') from dual;--2008-1-1
select trunc(sysdate,'mm') from dual;--2008-10-1
select trunc(sysdate) from dual;--2008-10-25
另外还有trunc(for number)用法,网上google吧
不过问题应该是在trunc函数上面了,lz应该去了解下这函数的用法和意思。