У меня есть несколько таблиц, в которых мы отслеживаем эффективные датированные записи, то есть каждый раз, когда что-то меняется в файле или пользователе 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
'''