Если вы хотите, чтобы строки обновлялись в один день, но не в следующий:
select t.*
from t
where not exists (select 1
from t t2
where t2.empname = t.empname and
t2.date = t.date + interval 1 day
) and
exists (select 1
from t t2
where t2.date = t.date + interval 1 day
);
В первом предложении проверяется, что на следующий день для empname
ничего не существует.Второй проверяет, что что-то существует, чтобы предотвратить возврат всего в самый последний день.
Вы можете добавить предложение where
, чтобы ограничить внешний запрос одним или несколькими интересными днями.