SQL - не возвращает значение при умножении столбцов - PullRequest
0 голосов
/ 01 декабря 2009

У меня есть 3 столбца в моей таблице базы данных, мне нужно умножить столбец, itm_count & itm_price и вывести сумму для данного идентификатора (itm_id).

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

Я попытался сделать это, используя приведенный выше SQL-запрос, но результат был нулевым. В чем здесь проблема?

Ответы [ 3 ]

5 голосов
/ 01 декабря 2009

Что это тебе дает?

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

Это либо itm_price, либо itm_count NULL? У вас есть строки для itm_id = 11?

4 голосов
/ 01 декабря 2009

Попробуйте:

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

COALESCE - это стандарт ANSI для работы со значениями NULL - если itm_price или itm_count равно нулю, в этом случае в качестве значения будет использоваться ноль. В противном случае, либо у вас нет строки со значением 11 для столбца itm_id, либо вы ищете значение 11 в неправильном столбце.

0 голосов
/ 01 декабря 2009

Что содержат itm_price и itm_count, когда itm_id = 11? Это SQL Server? Если это так, вы можете использовать ISNULL для обработки, является ли itm_price или itm_count нулевым

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...