У меня есть 4 столбца (фильтр двух столбцов), один столбец даты и один флаг столбца. Для комбинации столбца 1 и столбца 2 и флага открытия я хочу найти дату открытия, дату закрытия и количество дней, в которые он был открыт.
Вот мой пример и то, что я хочу найти с SQL с синим / серым цветом
Это выглядит как проблема пробелов и островков, но острова уже определены как opendt (и, возможно, col1 и col2).
opendt
col1
col2
Итак, вы можете просто использовать row_number():
row_number()
select row_number() over (partition by col1, col2, opendt order by effectivedt)
Вы можете использовать функцию DATEDIFF(), как показано ниже, если у вас уже есть две даты, доступные как OpenDate и CloseDate в вашем случае.
DATEDIFF()
OpenDate
CloseDate
Select DATEDIFF(DAY, OpenDate, CloseDate) as NumberOfOpenDays from YourTable