SELECT Number
FROM Shop
WHERE Number in (6284,5129,5142,5249,5336,5394,5530,5608,5792,5889,5960,6137,6161,5112,5137,6426,5189,5571,5678,6027,6134,6190,6283,6303)
AND
NOT EXISTS
(SELECT ShopID
FROM Questionaries
WHERE Date BETWEEN '2020-09-01' and '2020-09-28'
AND Questionaries.ShopID = Shop.Number
)
Теперь получился нужный результат, спасибо
Решение не корректное. Нужно стараться избегать конструкций типа NOT EXIST. Посмотрите план выполнения, скорее всего там у Вас один из вариантов LEFT OUTER JOIN. Поэтому лучше сразу явно это в Вашем запросе описать. Только явам нужны не все строки, а только те которые не имеют данных с правой стороны. Смотрите пример LEFT OUTER JOIN с IS NULL. Вам нужно выбрать записи с левой таблицы которые не совпали с правой.
В учебниках и на курсах приводят примеры с абстрактной БД в которой время ответа не учитываеться - 0. А на практике у Вас запрос будет правильный, но вот время ответа Вас не устроит.