select sum(tmp6) from sorderdishes  其中tmp6是varchar型的。

解决方案 »

  1.   

    select sum(cast(tmp6 as float)) as tmp from sorderdishes  
      

  2.   

    我可以装换成numeric类型吗求和。
      

  3.   

    SELECT SUM(CONVERT(numeric(9, 2), tmp6)) AS tmp6 from sorderdishes
      

  4.   

    谢谢各位的帮忙。楼上的哥哥。我用你给我的运行了一下。还是报错。服务器: 消息 8114,级别 16,状态 5,行 1
    将数据类型 varchar 转换为 numeric 时出错。
      

  5.   

    不同数据库,转换方法不同。
    你使用的是什么数据库?
    天狼工作室
    http://www.j2soft.cn/
      

  6.   

    应该在求和前替换到NULL值:
    SELECT SUM(CAST(ISNULL(tmp6,'0') AS DECIMAL(6,3))) FROM sorderdishes
    由于没有安装SQL SERVER,所以不能测试,但思路大致如此。
      

  7.   

    楼主,您转换报错原因可能是
    1、您的数据库不是SQL。
    2、您转换的字段中存在,不是数字的字符。
      

  8.   

    select sum(cast(tmp6 as float)) as tmp from sorderdishes  
    需要保证没有非法字符存在