SQL для сравнения последней записи с записью до нее, затем этой записи с записью до этой даты на определенную дату - PullRequest
0 голосов
/ 30 марта 2020

У меня есть несколько таблиц, в которых мы отслеживаем эффективные датированные записи, то есть каждый раз, когда что-то меняется в файле или пользователе et c, создается новая запись со всеми одинаковыми столбцами.

То, что я пытаюсь сделать, это отслеживать все изменения в определенном c поле или полях и давать мне результаты только для данных, когда они изменяются:

ex столбцы: Индекс Имя Место расположения Язык Язык Дата начала (записи) ) Дата окончания (записи)

Скажем, есть 10 записей, и на двух из этих записей офис изменился с 01 на 02, а затем с 02 на 03. Я хотел бы запросить, чтобы увидеть только запись ( s) где это изменилось Первоначально я написал сценарий, подобный следующему, но он сравнил только последнюю запись с той, что была до этого. В идеале мне бы хотелось, чтобы go вернулось назад к указанному моменту времени:

    '''
    SELECT 
    m.Number [Matter]
    , md.EffStart [Effective Start Date]
    , tk.Number [BTK Number]
    , tk.DisplayName [BTK Name]
    , md.TimeStamp

    FROM MattDate md
    JOIN Matter m ON md.matterlkup = m.mattindex
    JOIN Timekeeper tk ON md.BillTkpr = tk.TkprIndex

    WHERE md.BillTkpr <> (SELECT TOP 1 md2.BillTkpr
                         FROM MattDate md2
                         WHERE md2.EffStart <  md.EffStart
                         AND matterlkup = 121644
                         ORDER BY md2.EffStart DESC)
    --AND md.EffStart >= '1/1/2020'
    AND m.Number = '212134.00808'
    ORDER BY md.EffStart DESC
    '''
...