В SQL 2000 У меня есть таблица, которая содержит следующее:Найти последовательные рабочие даты для каждого сотрудника
ID Date WorkingTime EmployeeID
В августе эта таблица будет содержать 200 сотрудников с датами 8/1 - 8/31. Мне нужно выяснить, какова дата MIN для первых 5 последовательных дней рабочего времени для каждого сотрудника, начиная со дня, прошедшего и возвращающегося назад.
Для примера: Если сотрудник 123 выглядел следующим образом и 8/10/2013 был принят в:
ID Date WorkingTime EmployeeID
1 8/1 1 123
2 8/2 0 123
3 8/3 0 123
4 8/4 1 123
5 8/5 1 123
6 8/6 1 123
7 8/7 1 123
8 8/8 1 123
9 8/9 0 123
10 8/10 1 123
результат был бы 8/4. Это нужно сделать все сразу для всех сотрудников в таблице, поэтому у всех будет разные минимальные даты, начиная с 8/10, так как это была дата, которая была передана в запрос. Эта таблица очень велика в реальной жизни, и она охватывает множество дат и сотрудников, а не только в Аугусте. Я думал об использовании курсора, чтобы пройти все это, но я думаю, что это будет очень медленно. Я также думал о том, чтобы добавить все рабочие времена в временную таблицу и сделать датифик на них, чтобы найти последовательные 5 с датой в 1, но я не был уверен, как это выполнить. Есть ли лучший способ, о котором я не думаю?
Действительно с помощью SQL Server 2000? :( –
Ищете сумму WorkTime = 5 может быть частью решения. –
@Goat CO, расскажите мне об этом. – mameesh