在一个表中有个N条记录 而且每条记录的小数点保留位数不同  我现在要求所有记录的合计 而且保留两位小数 如果用SUM(N1,N2)<>SUM(N1) +SUM(N2)现在就想要一SQL语句实现SUM(N1,N2)=SUM(N1) +SUM(N2)即能实现SUM(N1) +SUM(N2)就可以   我用SUM(FORMAT(NI),"0.00")可在SQL 中不能用   请帮忙

解决方案 »

  1.   

    sum()函数只能用于数值类型,否则会出错。format()返回的是字符类型,所以会出错。
    解决办法是将foramt()的返回类型转换为数值类型,再用sum函数。
    如下:
    SUM(Cdbl(FORMAT(NI,"0.00")))或SUM(Csng(FORMAT(NI,"0.00")))
      

  2.   

    你说的好像不行哦  
    你看看这个怎么求
    SELECT SUM(Cdbl(FORMAT(sjsl, [0.00]))) AS Expr3 FROM RKD
    “RKD”表明 “sjsl” 字段数字型
      

  3.   

    to: ZWARJH(ZWARJH)
    讲点职业道德好不好,别在这乱骂人SELECT SUM(isnull(sjsl,0.00))/1.00 FROM RKD
      

  4.   

    你这SQL我有点不明白除1.00什么意思
      

  5.   


    按这句话试试:
    select sum(cdbl(format(sjsl,'" & "0.00" & "'))) AS Expr3 from RKD
      

  6.   

    SELECT cast(SUM(isnull(sjsl,0)) as decimal(18,2) FROM RKD
      

  7.   

    SELECT cast(SUM(isnull(sjsl,0)) as decimal(18,2)) FROM RKD