piliskys

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  25 随笔 :: 0 文章 :: 40 评论 :: 0 Trackbacks
今天,碰到一个怪问题,同一个sql语句,运行产生不同的结果,
SELECT a.TAXPAYERID TAXPAYERID$0, a.INDEPOTYEAR INDEPOTYEAR$2
SUM(a.TAXFINAL) SUMTAXFINAL$1 
FROM F_LVY_LEVYINPUTYEARHISTORYDATA a 
WHERE substr ( a.TAXPAYERID ,1 , 1 ) 'T' and a.indepotyear='2006' GROUP BY a.TAXPAYERID, a.INDEPOTYEAR having SUM(a.TAXFINAL) >=1000000 
第一次运行产生1357条记录,然后接着运行就变为1359(此为正确数),到网上找了下,没有找到原因, 最后把substr ( a.TAXPAYERID ,1 , 1 ) 'T' 改为 a.TAXPAYERID not like 'T%'没有问题,把上面sql改为
SELECT a.TAXPAYERID TAXPAYERID$0, a.INDEPOTYEAR INDEPOTYEAR$2SUM(a.TAXFINAL) SUMTAXFINAL$1 FROM F_LVY_LEVYINPUTYEARHISTORYDATA a WHERE a.indepotyear='2006' GROUP BY a.TAXPAYERID, a.INDEPOTYEAR having SUM(a.TAXFINAL) >=1000000 and substr ( a.TAXPAYERID ,1 , 1 ) 'T' 
也没有问题, 而所有记录中substr ( a.TAXPAYERID ,1 , 1 )只有三种0,1,T, a.TAXPAYERID没有为空的,不清楚为何如此??
posted on 2006-09-20 16:20 霹雳火 阅读(1577) 评论(0)  编辑  收藏 所属分类: oracle数据库

只有注册用户登录后才能发表评论。


网站导航: