Zajmuję się raportowaniem opartym na blokach czasu, w których pracują pracownicy. W niektórych przypadkach dane zawierają dwa oddzielne zapisy dotyczące tego, co tak naprawdę jest pojedynczym blokiem czasu.Scal sąsiednie wiersze w SQL?
Oto podstawowa wersja tabeli, a niektóre zapisy przykładowe:
EmployeeID
StartTime
EndTime
danych:
EmpID Start End
----------------------------
#1001 10:00 AM 12:00 PM
#1001 4:00 PM 5:30 PM
#1001 5:30 PM 8:00 PM
Na przykład, ostatnie dwa rekordy są ciągłe w czasie. Chciałbym napisać kwerendę, która łączy w sobie wszystkie sąsiadujące rekordy więc wynikowa jest taka:
EmpID Start End
----------------------------
#1001 10:00 AM 12:00 PM
#1001 4:00 PM 8:00 PM
Idealnie, to powinien również być w stanie obsłużyć więcej niż 2 sąsiadujących ze sobą płyt, ale to nie jest konieczne.
Czy masz również kolumnę, która przechowuje datę? –
@JeffRosenberg: Tak. Są to kolumny datetime w prawdziwym stole. Ta przykładowa tabela jest znacznie uproszczona w celu zadawania pytania. – poke