Posso fazer isso na função SQL sem um cursor?
Eu estou trabalhando em um banco de dados de quadro de horários. Em termos simples, a tabela TimesheetEntries tem quatro colunas
ID int (identity, 1, 1)
StaffID int
ClockedIn datetime
ClockedOut datetime
Fui convidado a escrever um relatório para mostrar a frequência da equipe por período. O usuário coloca uma data, e o relatório mostra os tempos de entrada e saída de todos os membros da equipe, juntamente com sua duração no local.
No entanto, e é aí que fica complicado, os membros da equipe às vezes deixam o site por curtos períodos, e o relatório é obrigado a ignorá-los (quando eles deixam o site por menos de duas horas).
Então, vamos supor as seguintes entradas
ID StaffID ClockedIn ClockedOut
1 4 0900 1200
2 4 1330 1730
3 5 0900 1200
4 5 1409 1730
5 4 1830 1930
A saída do relatórioDEVEMOS estar
StaffID ClockedIn ClockedOut
4 0900 1930
5 0900 1200
5 1409 1730
Existe alguma maneira de fazer isso sem um cursor ou até mesmo um cursor aninhado dentro de um cursor (que é onde eu estou agora!)? Não estamos falando de grandes conjuntos de dados aqui e o desempenho não é realmente um problema (é um relatório, não um sistema de produção), mas eu realmente não gosto de cursores se puder evitá-los.
obrigado
Edward