数据库
CREATE TABLE [KClSZ_temp] (
[PK_ID] [varchar] (36) COLLATE Chinese_PRC_CI_AS NULL ,
[单据日期] [varchar] (12) COLLATE Chinese_PRC_CI_AS NULL ,
[单据类型] [varchar] (4) COLLATE Chinese_PRC_CI_AS NULL ,
[业务类型] [varchar] (8) COLLATE Chinese_PRC_CI_AS NULL ,
[单据号] [varchar] (30) COLLATE Chinese_PRC_CI_AS NULL ,
[业务号] [varchar] (30) COLLATE Chinese_PRC_CI_AS NULL ,
[收发类别] [varchar] (12) COLLATE Chinese_PRC_CI_AS NULL ,
[部门] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[业务员] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[供货单位] [varchar] (98) COLLATE Chinese_PRC_CI_AS NULL ,
[订单号] [varchar] (30) COLLATE Chinese_PRC_CI_AS NULL ,
[到货单号] [varchar] (30) COLLATE Chinese_PRC_CI_AS NULL ,
[发货单号] [int] NULL ,
[备注] [varchar] (60) COLLATE Chinese_PRC_CI_AS NULL ,
[客户] [varchar] (98) COLLATE Chinese_PRC_CI_AS NULL ,
[制单人] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[记账人] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[仓库名称] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[存货编号] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[存货名称] [varchar] (60) COLLATE Chinese_PRC_CI_AS NULL ,
[规格型号] [varchar] (60) COLLATE Chinese_PRC_CI_AS NULL ,
[入库数量] [float] NULL ,
[入库单价] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[入库金额] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[出库数量] [float] NULL ,
[出库单价] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[出库金额] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[经手人] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[入库件数] [float] NULL ,
[出库件数] [float] NULL 
) ON [PRIMARY]
GO用存储过程统计汇总 入库金额,出库金额等列谢谢.

解决方案 »

  1.   

    varchar轉換下,就可以直接算了啊
    --convert(float,[入库金额])
      

  2.   

    --如此??select sum(cast(入库金额 as float)),sum(cast(出库金额 as float))
    from KClSZ_temp
      

  3.   

    入库件数 为啥要用 float?
      

  4.   

    类型转换有两个函数可以实现:
    cast(入库金额 as float)
    convert(float,[入库金额])
      

  5.   

    to:playwarcraft;LouisXIV;zhenmeiyisi昨天调了很长时间都出同样的错误:服务器: 消息 8114,级别 16,状态 5,行 1
    将数据类型 varchar 转换为 float 时出错。请帮忙测一下。
    入库数量 入库单价 入库金额 出库数量 出库单价 出库金额
    100 16.37 1,636.83 0
    1 104.59 104.59 0
    0 10 3.74 37.44
    480 4.35 2,088.00 0
    120 1.8 216.22 0
    0 300 13.57 4,071.60
    0 240 11.35 2,723.76
    0 100 4.15 414.78
    0 10 3.62 36.15
      

  6.   

    select 
        sum(cast(relpace(入库金额,',','') as float)) as 入库金额,
        sum(cast(relpace(出库金额,',','') as float)) as 出库金额
    from 
        KClSZ_temp
      

  7.   

    感觉设计字段的数据类型是有点怪异的了sxycgxj(云中客),LouisXIV(夜游神) 两位大哥的就可以计算了
      

  8.   

    真搞不明白是怎么回事!
    用select  (cast ((case ISNUMERIC([入库金额]) when 1 then [入库金额] else '0' end) as float)) as 入库金额  from kclsz_temp 
    查询也出现
    服务器: 消息 8114,级别 16,状态 5,行 3
    将数据类型 varchar 转换为 float 时出错。
      

  9.   

    ...加千分符了用子陌老大的吧,先用replace替换掉“,”
      

  10.   

    to:
       libin_ftsafe(子陌红尘:当libin告别ftsafe)
    "select 
        sum(cast(relpace(入库金额,',','') as float)) as 入库金额,
        sum(cast(relpace(出库金额,',','') as float)) as 出库金额
    from 
        KClSZ_temp"
    服务器: 消息 195,级别 15,状态 10,行 6
    'relpace' 不是可以识别的 函数名。
      

  11.   

    to:
    libin_ftsafe(子陌红尘:当libin告别ftsafe)
    LouisXIV(夜游神)
    playwarcraft(三角褲叉叉的頂點)
    ......等等
    非常感谢!
    OK了。
    现在给分!
      

  12.   

    'relpace' 不是可以识别的 函数名。
    ----
    replace...