2

我的 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 查询来执行此操作,但结果为空。这里似乎有什么问题?

4

3 回答 3

6

这给你什么?

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

是 ofitm_price还是itm_countNULL?你有itm_id= 11 的行吗?

于 2009-12-01T20:52:16.303 回答
6

尝试:

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

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

于 2009-12-01T20:55:14.303 回答
0

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

于 2009-12-01T20:53:18.767 回答