日期:2014-05-17  浏览次数:20720 次

sql sum 后 转换 再计算
select (case when((SUM(sn.OrderNum-sn.ItemNoNum)-1)<0)then '0.0000' else Convert(float,SUM(sn.OrderNum-sn.ItemNoNum))/Convert(float,(SUM(sn.OrderNum-sn.ItemNoNum))) end)


都是0.没有小数点

我要的结果是

计算后得出结果result*100+'%'

现在我在'0.0000'后加%就报错.

------解决方案--------------------
SQL code
SELECT
    LTRIM(( CASE WHEN ( ( SUM(sn.OrderNum - sn.ItemNoNum) - 1 ) < 0 )
                 THEN '0.0000'
                 ELSE CONVERT(FLOAT, SUM(sn.OrderNum - sn.ItemNoNum)) * 1.0
                      / CONVERT(FLOAT, ( SUM(sn.OrderNum - sn.ItemNoNum) ))
            END )) + '%'

------解决方案--------------------
SQL code
SELECT  LTRIM((CASE WHEN ((SUM(sn.OrderNum-sn.ItemNoNum)-1) < 0) THEN 0.00
              ELSE SUM(sn.OrderNum-sn.ItemNoNum)*100.0/CONVERT(FLOAT , (SUM(sn.OrderNum-sn.ItemNoNum)))
         END ))+'%'

------解决方案--------------------
探讨

SQL code
SELECT
LTRIM(( CASE WHEN ( ( SUM(sn.OrderNum - sn.ItemNoNum) - 1 ) < 0 )
THEN '0.0000'
ELSE CONVERT(FLOAT, SUM(sn.OrderNum - sn.ItemNoNum)) * 1.0
……

------解决方案--------------------
遇到过一次这样的问题 记得好像是sum的问题,你可以把sum里那个值拿出来看看就知道了。