SQL - 在列乘以时不返回值

时间:2009-12-01 20:51:15

标签: sql multiplying

我的db表中有3列,我需要乘以列,itm_count& itm_price并输出给定​​id(itm_id)的总和。

SELECT sum(itm_price * itm_count) as total FROM ods_temporder WHERE itm_id='11'

我尝试使用上面的sql查询执行此操作,但结果为null。这似乎是什么问题?

3 个答案:

答案 0 :(得分:5)

这给你带来了什么?

SELECT itm_price, itm_count FROM ods_temporder WHERE itm_id='11'

itm_priceitm_count是否为空?你有itm_id = 11的行吗?

答案 1 :(得分:4)

尝试:

SELECT SUM(COALESCE(itm_price, 0) * COALESCE(itm_count, 0)) as total 
  FROM ods_temporder 
 WHERE itm_id='11'

COALESCE是用于处理NULL值的ANSI标准 - 如果itm_priceitm_count为空,则在这种情况下将使用零作为值。否则,itm_id列中没有值为11的行,或者您在错误的列中查找11值。

答案 2 :(得分:0)

当itm_id = 11时,itm_price和itm_count包含什么? 这是SQL Server吗?如果是这样,您可以使用ISNULL来处理itm_price或itm_count是否为空