나는 C#에서 그것을 없지만 SQL이 정확한 문제를 해결했을까요, 아마도 이것은 당신에게 C#
select Resource_ID, Appointment_date, Min(NewStartTime) Start_Time, MAX(End_Time) End_Time
into #CleanedBlockTimes
from
(
select *,
NewStartTime = Dateadd(mi, v.number, t.Start_Time),
NewStartTimeGroup =
dateadd(mi,
1- DENSE_RANK() over (partition by Resource_ID, Appointment_date order by Dateadd(mi, v.number, t.Start_Time)),
Dateadd(mi, v.number, t.Start_Time))
from #BlockTimes t
inner join master..spt_values v
on v.type='P' and v.number <= DATEDIFF(mi, Start_Time, End_Time)
) X
group by Resource_ID, Appointment_date, NewStartTimeGroup
order by Resource_ID, Appointment_date, Start_Time
데이터는 어떻게 저장됩니까? 비 유적으로 그리드를 뒤집어서 목록을 반복하면서 목록에서 특정 일에 일정이 있는지 확인합니다. –
@Joey Gennari - 원하는 데이터를 저장할 수 있습니다. 제 경우에는 두 개의 날짜 목록 인 시작 날짜와 종료 날짜가 있습니다. 나는 그것을 뒤집어 쓰는 것이 도움이 될지 모르겠다. 후자의 다이어그램에서 각 시퀀스가 다른 날짜와 같지 않다는 것을 볼 수 있듯이 나는 거기에 날짜를 겹쳐 놓는다. – Nir