@Smilleey

Как написать запрос?

Добрый день.
Есть таблица, куда сыпятся заявки. В поле keyvalue номер заявки. Заявка отрабатывается и может отработаться неуспешно, тогда проставляется время в поле exeption, и тогда она заново отправится на отработку. Если завершается успешно, то в completed ставится время.
Подскажите пожалуйста, как написать запрос, который будет выбирать заявки, в которых не было удачного выполнения?
Т.е. по скриншоту ниже у нас в статистику должно уйти что одна заявка обработана успешно. Спасибо.
5e6f7cc191ef7553748262.png
  • Вопрос задан
  • 120 просмотров
Решения вопроса 3
unfilled
@unfilled
SELECT *
FROM orders o
WHERE NOT EXISTS (
	SELECT * 
	FROM orders o2 
	WHERE o2.keyvalue = o.keyvalue AND completed IS NOT NULL
)

Если заявок много работать может очень медленно
Ответ написан
Комментировать
@Olgeir
select *
from z
where completed is null
and keyvalue not in (select keyvalue from z where completed is not null)
Ответ написан
Комментировать
tsklab
@tsklab Куратор тега SQL Server
Здесь отвечаю на вопросы.
SELECT Task.keyvalue, Task.exception, TaskComplete.completed
  FROM Task 
    INNER JOIN Task AS TaskComplete ON Task.keyvalue = TaskComplete.keyvalue
  WHERE (NOT (Task.exception IS NULL)) AND (NOT (TaskComplete.completed IS NULL))
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Stimulate
@Stimulate
могу
SELECT
    COUNT(`c`.`keyvalue`) AS `count`
FROM `claims` AS `c`
ON
    `c`.`exception` IS NOT NULL
    AND
    `c`.`completed` IS NULL
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы