我没看出来什么毛病,
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
你这样试试。
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
你这样试试。
解决方案 »
- 行转列加计算值的问题
- 写一个存储过程,请大家帮帮忙~
- 贡献-数据库封装源代码(VC)
- 数据查询的问题,可能与数据库的性能有关,求助
- java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]End of stream was detected on a read
- 装SQl SERVER装不上去,在最后关头出现配置服务器出错?
- ORA-00933 错误,求大神解决
- 使用发布订阅的时候会重新生成一个唯一字段,怎么处理?
- 有数据库开发经验的大侠,帮帮忙!谢谢!!
- 如何批量执行*.SQL文件呢?
- 在SQLserver 的查询中如何获得记录的序列号...
- 存储过程和游标问题提问?
如果将Left2 = 'RD' AND CONVERT(INTEGER,RD) < 80 AND去掉
结果为:15.748999999999999
所以应该这里的问题!
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应该是正确的
例如 Exec Test (@P_a + @P_b)
Sql Server会提示在(附近有语法错误