SQL Исключить вывод где есть значения больше определенной даты
Дана таблица
Необходимо найти все name, где в таблице отсутствуют записи date большее 2021-03-01 00:00
Вывести должен только nane = '12', тк для 10 и 11 присутствуют записи больше 2021-03-01 00:00
Ответы (2 шт):
Автор решения: Slava Rozhnev
→ Ссылка
Используем конструкцию WHERE NOT EXISTS
select name
from tbl
where not exists (
select name from tbl tmp
where tmp.date > '2021-03-01 00:00' and tmp.name = tbl.name
);
select tbl.name
from tbl
left join tbl tmp on tmp.date > '2021-03-01 00:00' and tmp.name = tbl.name
where tmp.name is null;
Автор решения: Герман Борисов
→ Ссылка
select name
from table1
group by name
having max(date) <= '2021-03-01 00:00'
Для каждого имени находим максимальную дату, и выкидываем те, у кого она больше заданной
