У меня есть запрос, который я выполняю ежедневно, и я хотел бы исключить из этого запроса определенные элементы, которые я уже определил как нежелательные, без добавления другой таблицы в базу данных. Ниже представлена ​​моя попытка сделать это, которая работает с одним TaskID, но не с несколькими TaskID, как я пытаюсь это сделать.

Я считаю также важным отметить, что этот список может вырасти примерно до 150 идентификаторов, но не обязательно более 200, если это имеет значение. Очевидно, что я сделал это не лучшим образом. Может ли кто-нибудь порекомендовать лучший способ добиться этого?

Прямой вопрос: как лучше всего исключить большое количество TaskID из приведенного ниже запроса без создания другой таблицы?

SELECT  
    TaskID, MAX(timeended) AS 'Last Run' 
FROM
    [moveitautomationagain].[dbo].taskruns
WHERE
    TaskID <> 222300 OR TaskID <> 103439128
GROUP BY
    TaskID
HAVING
    DATEDIFF(HOUR, MAX(timeended), SYSDATETIME()) > 24
0
mcavanaugh418 6 Ноя 2018 в 03:52

1 ответ

Лучший ответ

Для вашего запроса вам нужно AND, а не OR. Однако я бы использовал NOT IN т.е.

where TaskID not in (222300, 103439128)
2
Dale K 6 Ноя 2018 в 00:55