我没看出来什么毛病,
SELECT 
    SUM(Cool_Weight * ( ShiftAQuantity / ( ShiftAQuantity + ShiftBQuantity + ShiftCQuantity + ShiftDQuantity ) ) / 1000)
FROM QualityLtShift
WHERE CoolOrReturn = 'C' AND ShiftAQuantity > 0 AND Left2 = 'RD' AND CONVERT(INTEGER,RD) < 80 AND GoodsWeight >= 0
你这样试试。

解决方案 »

  1.   

    我测试过,
    如果将Left2 = 'RD' AND CONVERT(INTEGER,RD) < 80 AND去掉
    结果为:15.748999999999999
    所以应该这里的问题!
      

  2.   

    to : lyyrw(咋暖还寒)  我不能分开来求因为我要求出许多东西所以用到了case语句如果只求这一个那也无所谓了
      

  3.   

    SELECT 
        SUM(CASE WHEN ShiftAQuantity > 0 AND Left2 = 'RD' AND CONVERT(INTEGER,RTRIM(RD)) < 80 AND GoodsWeight >= 0
        THEN Cool_Weight *  ShiftAQuantity / ( ShiftAQuantity + ShiftBQuantity + ShiftCQuantity + ShiftDQuantity ) / 1000 ELSE 0 END) AS TOTAL
    FROM QualityLtShift
    WHERE CoolOrReturn = 'C'
    为什么有()不行呢?上面的结果为11.481285714285714200应该是正确的
      

  4.   

    同样在存贮过程中调用存贮过程中为什么也不能用()和其他运算符号
    例如 Exec Test (@P_a + @P_b)
    Sql Server会提示在(附近有语法错误