Я пытаюсь создать отчет для некоторых исторических данных на основе предоставленного пользователем диапазона дат.В отчете будут отображаться ежемесячные изменения для всех контрактов на основе диапазона дат, предоставленного пользователем.
Включено 2 таблицы.Первая - это таблица ContractDetails, которая содержит 1 строку для каждого контракта со всей необходимой базовой информацией.
ContractID | LicenseID | StartDate | EndDate
---------- | --------- | ---------- | ----------
304 | ID-567 | 01/01/2018 | 12/31/2018
331 | ID-133 | 01/01/2015 | 12/31/2017
1011 | ID-257 | 06/06/2018 | 12/31/2018
1359 | ID-687 | 01/01/2018 | 12/31/2020
Вторая таблица - это ContractChanges.Который в основном просто хранит транснациональную историю изменений в контракте с FK по ContractID
ID | FK_ContractID | LicenseID | ChangeDate
---- | ------------- | --------- | ----------
101 | 304 | ID-123 | 12/28/2018
102 | 331 | ID-615 | 05/25/2018
103 | 331 | ID-994 | 10/31/2018
104 | 1011 | ID-498 | 04/04/2019
105 | 1011 | ID-701 | 04/04/2019
Предполагая, что пользователь предоставил даты с 11/1/2018 по 30/06/2019.Ожидаемый результат будет таким:
ContractID | LicenseID | Month | Year
---------- | --------- | ----- | ----
304 | ID-567 | Nov | 2018
304 | ID-123 | Dec | 2018
331 | ID-994 | Nov | 2018
1011 | ID-257 | Nov | 2018
1011 | ID-701 | Apr | 2019
1359 | ID-687 | Nov | 2018
Если в предоставленном диапазоне дат не произошло никаких изменений, то отобразите исходную информацию о контракте в первом месяце (в данном случае ноябрь).Далее, если произошли изменения, покажите изменения, произошедшие в течение этого месяца.Наконец, если в течение одного месяца произошло несколько изменений, используйте последнее изменение для этого контракта.
Это кажется довольно простой проблемой, но то, что меня отталкивает, является последним требованием, когда несколько изменений происходят в одном и том жемесяц.
Любая помощь будет оценена Спасибо