Организовать запрос
☑
0
birk
09.02.12
✎
15:24
Есть таблица:
01.01.2011 Сотрудник1 Больничный
02.01.2011 Сотрудник1 Больничный
03.01.2011 Сотрудник1 Больничный
04.01.2011 Сотрудник1 Отпуск
05.01.2011 Сотрудник1 Отпуск
06.01.2011 Сотрудник1 Отпуск
Нужно получить:
Сотрудник1 | Больничный | С 01.01.2011 По 03.01.2011
Сотрудник1 | Отпуск | С 04.01.2011 По 06.01.2011
Подскажите как?
1
shuhard
09.02.12
✎
15:25
(0) соединить налево дважды с максимумом по дате и минимумом
можно подзапросами, можно временными таблицами
2
birk
09.02.12
✎
15:28
Не понял, как я получу от сабжа 03.01.2011 Сотрудник1 Больничный максимумом?
3
Maxus43
09.02.12
✎
15:32
а если даты не по порядку? или после отпуска опять больничный?
4
birk
09.02.12
✎
15:33
так и есть :|
5
shuhard
09.02.12
✎
15:36
(3) стоп, не надо грязи,
в ТЗ было два разных не пересекающихся начисления
и (1) полностью ТЗ соответствует
6
birk
09.02.12
✎
15:37
01.01.2011 Сотрудник1 Больничный
02.01.2011 Сотрудник1 Больничный
03.01.2011 Сотрудник1 Больничный
04.01.2011 Сотрудник1 Отпуск
05.01.2011 Сотрудник1 Отпуск
06.01.2011 Сотрудник1 Отпуск
07.01.2011 Сотрудник1 Больничный
Нужно получить:
Сотрудник1 | Больничный | С 01.01.2011 По 03.01.2011
Сотрудник1 | Отпуск | С 04.01.2011 По 06.01.2011
Сотрудник1 | Больничный | С 07.01.2011 По 07.01.2011
7
Maxus43
09.02.12
✎
15:38
(5) я просто заголовок следущего вопроса протелепатировал)
8
shuhard
09.02.12
✎
15:38
(7) =)
9
Maxus43
09.02.12
✎
15:39
запросом имхо не решить, в коде надо обрабатывать
10
shuhard
09.02.12
✎
15:44
(9) почему
31 временная таблица
+ производственный календарь
11
Maxus43
09.02.12
✎
15:45
ну да, если 31 таблица и календарь :) шкурка выделки не стоит
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший