select sum(isnull(cast(Rtrim(je) as float),0)) from [table] GROUP BY spbm

解决方案 »

  1.   

    谢谢,可是还是不行啊
    将数据类型 varchar 转换为 float 时出错。
      

  2.   

    如果去掉sum汇总函数又是对的,证明转换的时候应该没问题啊,可是一汇总就出错了。晕
      

  3.   

    select sum(isnull(cast(je as float),0)) from [table] GROUP BY spbm去掉rtrim试试
      

  4.   

    create table tb(je varchar(10),spbm varchar(10))
    insert into tb select '223.844 ','aa'
    insert into tb select '23.44 ','aa'
    insert into tb select '23.44 ','bb'
    insert into tb select '223.44 ','bb'
    insert into tb select '23.44 ','cc'select sum(isnull(cast(Rtrim(je) as float),0)) from [tb] GROUP BY spbmdrop table tb--试了一下好像没什么问题啊
      

  5.   

    應該是數據庫中有不能轉為float類型的數據。執行這個語句,
    Select * From [table] Where ISNUMERIC (je)=0
    看看有沒有紀錄??
      

  6.   

    我换成int
    select spbm, sum(isnull(cast(rtrim(je) as int),0)) from table  GROUP BY spbm order by spbm提示还是
    将 varchar 值 '25.60' 转换为数据类型为 int 的列时发生语法错误。
      

  7.   

    应该是其他的问题吧
    因为如果je列中有数据转换错误的话,
    只会提示:服务器: 消息 8114,级别 16,状态 5,行 1
    将数据类型 varchar 转换为 float 时出错。而不是将 varchar 值 '25.60' 转换为数据类型为 float的列时发生语法错误。楼主执行的是不是不止是这么简单的一条语句阿?