Есть таблица. в ней поле даты. в неё производятся записи каждый день. Подскажите как сделать запрос на проверку каждый ли день была запись? допустим есть ли данные за 4 дня?
Пример:
Есть записи для дат:
2017-06-06 ...
2017-06-07 ...
2017-06-09 ...
Как мне определить что 8 числа записи нет?
Приведу пример на MySQL.
Посоветую вам сделать соединение таблицы саму с собой.
Например, вы хотите посмотреть данные за прошедшую неделю и увидеть, сколько дней (и в какие дни) не были записи. Один из вариантов - left join:
select t1.date - interval 1 day
from test t1 left join test t2 on t1.date = t2.date + interval 1 day
where t2.date is null
Пример на sqlfiddle. Запрос выведет даты, если отсутствовало по 1 дню за раз.
В идеале вам для таких случаев иметь таблицу, где будут все дни и соединять с ней.
С помощью такого запроса увидите даты, между которыми были пропуски, но без вывода этих пустых дат:
select t.date,
(select max(t1.date) from test t1 where t1.date < t.date) as last_date,
t.date - (select max(t1.date) from test t1 where t1.date < t.date) as period
from test t
having period > 1
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости