Я пытаюсь определить диапазоны дат, когда организация входит в наш список "мониторов".
Мои данные выглядят так:
OrgCode OrgName ReviewDate MonitorList
8000 Organization A 3/6/2014 1
8000 Organization A 6/4/2014 1
8000 Organization A 9/4/2014 1
8000 Organization A 12/4/2014 0
8000 Organization A 3/5/2015 1
8000 Organization A 6/4/2015 1
8000 Organization A 9/16/2015 1
8000 Organization A 12/16/2015 1
8000 Organization A 3/9/2016 1
8000 Organization A 6/2/2016 1
8000 Organization A 9/8/2016 1
8000 Organization A 12/8/2016 1
8000 Organization A 3/9/2017 0
8000 Organization A 6/14/2018 0
Вывод запроса, который я ищувыглядит следующим образом:
OrgCode OrgName MonitorStartDate MonitorEndDate
8000 Organization A 3/6/2014 12/4/2014
8000 Organization A 3/5/2015 3/9/2017
Эта организация, Организация A, появилась в нашем списке мониторов дважды: с 6 марта 2014 года по 4 сентября 2014 года и с 5 марта 2015 года по 3 марта/2017.
Я пытался сделать это несколькими способами, в том числе,
- Разновидности
LEAD()
и LAG()
;и GROUP BY OrgCode, OrgName, MonitorList
и определения MonitorStartDate как MIN(ReviewDate)
и MonitorEndDate как MAX(ReviewDate)
.
Второй метод не учитывает тот факт, что эти организации могут быть /из списка мониторов несколько раз.Я все еще думаю, что некоторые комбинации LEAD()
или LAG()
могут работать;но не сами по себе.
Любое руководство, которое вы, ребята, можете дать, было бы замечательно, и спасибо за помощь!