Hallo zusammen,
ich stehe vor folgendem SQL-Problem:
Ich habe eine Tabelle, in der alle Urlaubs- und Kranktage von Mitarbeitern stehen. Für jeden Urlaubs- oder Kranktag gibt es einen Datensatz, z.B. so:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| T_ID | T_MitarbeiterNr | T_Datum | T_TagArt -------------------------------------------------- 1 11 01.03.2008 UR 2 11 02.03.2008 UR 3 11 03.03.2008 UR 4 11 04.03.2008 UR 5 14 02.03.2008 UR 6 14 03.03.2008 UR 7 14 04.03.2008 UR 8 11 05.03.2008 KR 9 11 06.03.2008 KR 10 11 07.03.2008 KR 11 11 12.05.2008 KR 12 11 13.05.2008 KR 13 11 14.05.2008 KR 14 11 15.05.2008 KR |
Die Reihenfolge der IDs muss dabei nicht unbedingt mit der Reihenfolge des Datums übereinstimmen, d.h. Datum von ID 2 könnte größer sein als Datum von ID 3.
Jetzt sollen per SQL alle zusammenhängenden Tage als ein einziger Datensatz ausgegeben werden, egal wie viele Datensätze zusammenhängen.
Mit "zusammenhängen" meine ich aufeinanderfolgende Tage mit gleicher Tag-Art.
D.h. die Ausgabe soll sein:
Quelltext
1: 2: 3: 4: 5: 6:
| T_MitarbeiterNr | Datum_von | Datum_bis | T_TagArt -------------------------------------------------- 11 01.03.2008 04.03.2008 UR 14 02.03.2008 04.03.2008 UR 11 05.03.2008 07.03.2008 KR 11 12.05.2008 15.05.2008 KR |
Ich habe im Netz folgenden ähnlichen Fall gefunden, allerdings weiß derjenige schon vorher, wie viele zusammenhängende Datensätze er suchen möchte, passt also nicht ganz zu meinem Problem:
www.cybton.com/view_...+suchen,26877,1.html
Habe auch schon einiges mit Subselects und Counts probiert, aber ohne Erfolg...
Hat jemand eine Idee? Das Ganze soll im Microsoft SQL Server 2000 laufen.
Gruß,
Dietmar