Как выбрать строки таблицы с пропущенными записями при каждой загрузке - PullRequest
0 голосов
/ 15 мая 2019

Пожалуйста, кто-нибудь может помочь с запросом MYSQL Select, в котором я обновляю таблицу с двумя разными интервалами (01/01/2019 и 02/01/2019) в данном примере, и я должен быть в состоянии отследить отсутствующие обновления изпредыдущая загрузка (т. е. 01.01.2009)

S.No    Emp Name    Update Date
1   Test 1  01/01/19
2   Test 2  01/01/19
3   Test 3  01/01/19
4   Test 1  02/01/19
5   Test 2  02/01/19

В приведенном выше примере я ожидаю, что результатом запроса будет

3, Test 3, 01/01/2019 

для выполнения синтаксиса запроса MYSQL?

Ответы [ 2 ]

0 голосов
/ 15 мая 2019

Если вы хотите, чтобы строки обновлялись в один день, но не в следующий:

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, чтобы ограничить внешний запрос одним или несколькими интересными днями.

0 голосов
/ 15 мая 2019

Вы можете найти строки с отсутствующими обновлениями с помощью NOT EXISTS:

select t.*
from tablename
where 
  t.updatedate = '2019-01-01'
  and not exists (
    select 1 from tablename
    where empname = t.empname and date = '2019-01-02'
  )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...