SQL. Выбрать пользователей не отправляющих отчеты последние 2 дня в текущем месяце
Прошу помощи с составлением sql-запроса. Сегодня 3 ноября и мне нужно вывести ID менеджера который не присылал отчеты последние 2 дня подряд в текущем месяце (1 и 2 ноября этот отчет пуст, в предыдущий месяц смотреть не нужно).
Задача максимально упрощена, в реальном проекте 4 таблицы с 2 join'ами
SELECT user_id, user_first_name, user_last_name
FROM USERS
WHERE user_id NOT IN (
SELECT
user_id FROM REPORTS
WHERE user_id IN (
SELECT
user_id FROM REPORTS
WHERE date >= '2020-11-01'
)
)
Не работает.
Ответы (1 шт):
Автор решения: Akina
→ Ссылка
SELECT users.*
FROM users
WHERE NOT EXISTS ( SELECT NULL
FROM reports
WHERE users.user_id = reports.user_id
AND reports.`date` > CURRENT_DATE - INTERVAL 2 DAY )
PS. Использован синтаксис MySQL. Для другой СУБД - откорректировать выражение вычисления пограничной даты.
