SQL-запрос возвращает ноль Mysql - PullRequest
0 голосов
/ 09 мая 2018

Вот запрос sql:

SELECT SUM(a.quantity)-SUM(IF(ISNULL(b.quantity),0,b.quantity)) AS stock 
FROM wp_wpsp_inventory_items a, wp_wpsp_assigned_inventory b 
WHERE a.master_id='9' AND 
     (CASE WHEN ISNULL(b.quantity) 
           THEN '' ELSE a.master_id=b.master_id 
      END)

Есть две таблицы a и b. В таблице a хранятся все поступления, а в таблице b хранятся все оттоки. Здесь я пытаюсь вычислить запас, вычитая оттоки от притоков. Но бывают ситуации, когда в Таблице b нет записи Item, в таком случае запрос возвращает NULL. Я пытался использовать IF() и ISNULL(), но ничего не получалось. Пожалуйста, помогите

1 Ответ

0 голосов
/ 09 мая 2018

Вы должны использовать левое внешнее соединение.

SELECT SUM(a.quantity - coalesce(b.quantity, 0)) AS stock
FROM wp_wpsp_inventory_items a 
LEFT JOIN
wp_wpsp_assigned_inventory b
ON a.master_id = b.master_id
WHERE a.master_id = '9'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...