当前位置: 代码迷 >> Sql Server >> sql sum 后 变换 再计算
  详细解决方案

sql sum 后 变换 再计算

热度:645   发布时间:2016-04-27 10:46:04.0
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里那个值拿出来看看就知道了。
  相关解决方案