今天,碰到一個怪問題,同一個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沒有為空的,不清楚為何如此??




