我的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。这似乎是什么问题?
答案 0 :(得分:5)
这给你带来了什么?
SELECT itm_price, itm_count FROM ods_temporder WHERE itm_id='11'
itm_price
或itm_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_price
或itm_count
为空,则在这种情况下将使用零作为值。否则,itm_id
列中没有值为11的行,或者您在错误的列中查找11值。
答案 2 :(得分:0)
当itm_id = 11时,itm_price和itm_count包含什么? 这是SQL Server吗?如果是这样,您可以使用ISNULL来处理itm_price或itm_count是否为空