Czy mogę to zrobić w funkcji SQL bez kursora?
Pracuję nad bazą danych grafiku. W prostych słowach tabela TimesheetEries zawiera cztery kolumny
ID int (identity, 1, 1)
StaffID int
ClockedIn datetime
ClockedOut datetime
Poproszono mnie o napisanie raportu, aby pokazać frekwencję personelu według zakresu dat. Użytkownik umieszcza datę, a raport przedstawia czasy wejścia i wyjścia wszystkich członków personelu wraz z czasem ich trwania na miejscu.
Jednak jest to trudne zadanie, ponieważ pracownicy czasami wychodzą z witryny na krótki okres, a raport musi zignorować te informacje (gdy opuszczają witrynę na mniej niż 2 godziny).
Załóżmy więc następujące wpisy
ID StaffID ClockedIn ClockedOut
1 4 0900 1200
2 4 1330 1730
3 5 0900 1200
4 5 1409 1730
5 4 1830 1930
Wyniki raportuPOWINIEN być
StaffID ClockedIn ClockedOut
4 0900 1930
5 0900 1200
5 1409 1730
Czy jest jakiś sposób na zrobienie tego bez kursora lub nawet kursora zagnieżdżonego wewnątrz kursora (gdzie właśnie jestem teraz!)? Nie mówimy tu o ogromnych zestawach danych, a wydajność nie jest tak naprawdę problemem (jest to raport, a nie system produkcyjny), ale naprawdę nie lubię kursorów, jeśli mogę ich uniknąć.
Dzięki
Edward