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 クエリを使用してこれを実行しようとしましたが、結果は null でした。ここで何が問題になっているようですか?

4

3 に答える 3

6

試す:

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がnullの場合、この場合は値としてゼロが使用されます。それ以外の場合は、列の値が11の行がないかitm_id、間違った列で11の値を探しています。

于 2009-12-01T20:55:14.303 に答える
6

これはあなたに何を与えますか?

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

itm_priceまたはitm_countNULLのいずれかですか? itm_id= 11の行はありますか?

于 2009-12-01T20:52:16.303 に答える
0

itm_id= 11 の場合、itm_price と itm_count には何が含まれますか? これは SQL Server ですか? その場合、ISNULL を使用して、itm_price または itm_count が null であるかどうかを処理できます。

于 2009-12-01T20:53:18.767 に答える