今天,碰到一个怪问题,同一个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$2, SUM(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没有为空的,不清楚为何如此??