![]() |
|
Модераторы: Akina |
![]()
|
|
| Freazeek |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 8.9.2009 Репутация: нет Всего: нет |
День добрый.
Есть две таблицы: [Prin] - даты приема сотрудников на работу. [Uvol] - даты увольнения сотрудников. Каждый сотрудник может быть принят на работу несколько раз. Нужен запрос, который по выбранному сотруднику формируем табличку вида: Принят на работу-Уволен-Время работы. Если сотрудник принят на работу но еще не уволен то время работы считать как разницу между датой принятия и сегодняшним днем Ну и второй запрос который посчитает суммарное время работы сотрудника на предприятии. В приложенное екселевском файле примерно что хочу увидеть на примере сотрудника с кодом 1 Если это проблематично - то подскажите. как результат запроса загнать в массив. (ну или просто подскажите - для общего развития) Заранее спасибо. Присоединённый файл ( Кол-во скачиваний: 1 )
test_stag.rar 17,33 Kb |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 30 Всего: 454 |
Если связать таблицы по сотруднику, наложить условие (дата увольнения) > (дата приёма), сгруппировать по обеим датам и отобрать те, у которых разница этих дат минимальна - получим все диапазоны работ сотрудников, которые в данный момент уволены.
Если связать таблицы по сотруднику, наложить условие max(дата увольнения) < max(дата приёма), получим список не-уволенных сотрудников. Если объединить эти запросы - получим требуемую выборку. Время работы посчитать как DeteDiff("d",...) Добавлено через 1 минуту и 49 секунд
Перебрать записи по одной, сваливая данные в массив. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Freazeek |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 8.9.2009 Репутация: нет Всего: нет |
Спасибо. А не подскажете как перебрать записи по одной?
For Each [чтото там] in [наверно recordset] next |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 30 Всего: 454 |
Подскажу. Открыть встроенную справку и посмотреть. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
![]()
|
| Правила форума "MS Access" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | MS Access | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |