Запросить все оставшиеся результаты, которые не включены в выходные данные другого запроса - PullRequest
0 голосов
/ 17 января 2019

У меня есть заказы в журнальной таблице, и они могут иметь несколько строк на order_id с разными статусами. Я хочу вернуть список заказов, которые имеют событие выпадения, но не имеют статус завершен. Таблица выглядит так:

order_number | event | status | capture_id
-------------------------------------------
    1234     | fallout |complete | 95
    1234     | fallout |in progress| 95
    1234     | fallout |Assigned| 95
    1234     | task    |           | 
    2255     | fallout |in progress| 10
    2255     | fallout |Assigned| 10
    2255     | task |         | 

В этой таблице запрос вернет порядковый номер 2255

Я запросил список на основе capture_id, потому что capture_id может иметь несколько значений для одного и того же порядкового номера. Capture_id, соответствующий fallout, останется неизменным на протяжении всего порядка, хотя в этом случае 95 и 10.

SELECT* FROM RECORDS
WHERE event = 'fallout' and status  LIKE 'complete'
order by created desc;

^ Возвращает все завершенные строки

  SELECT * FROM  RECORDS
  WHERE capture_id NOT IN
   (SELECT capture_id FROM records
   WHERE event = 'fallout' and status  LIKE 'complete')
   order by created desc;

^ Это моя попытка запросить остаток от capture_id, который в настоящее время ничего не возвращает

1 Ответ

0 голосов
/ 17 января 2019

^ Это моя попытка запросить остаток от capture_id, который в настоящее время ничего не возвращает

Исправление кода с правильной обработкой нуля

SELECT *
FROM RECORDS
WHERE capture_id NOT IN
   (SELECT capture_id FROM records
   WHERE event = 'fallout' and status  LIKE 'complete' and capture_id IS NOT NULL)
order by created desc;

Подробнее: Странные результаты из подзапроса NOT IN

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