select cbsj,yhmc,yhdz,syds,byds,byyql,lsqf,ysje,isnull(CONVERT(NUMERIC(18, 2),lsqf),0.00)+isnull(CONVERT(NUMERIC(18, 2),ysje),0.00)) AS YKJE from T_YHDAB A,T_LSCBJLB B WHERE A.DAH=B.DAH AND B.CBYF='200908'里面的字段都是字符型提示:将数据类型 varchar 转换为 numeric 时出错。
调试欢乐多
from T_YHDAB A,T_LSCBJLB B
WHERE A.DAH=B.DAH AND B.CBYF='200908'
and isnumeric(lsqf)=1 and isnumeric(ysje)=1
isnull(case when isnumeric(lsqf)=1 then CONVERT(NUMERIC(18,2),lsqf) else 0 end,0.00)+
isnull(case when isnumeric(ysje)=1 then CONVERT(NUMERIC(18, 2),ysje) else 0 end,0.00)) AS YKJE
from T_YHDAB A,T_LSCBJLB B
WHERE A.DAH=B.DAH AND B.CBYF='200908' 还是要这样?
建议先看看是不是有非数值型数据
select * from tb where isnumbric(ysje)!=1 or isnumeric(lsqf)!=1