Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MS Access > Запрос из двух таблиц


Автор: Freazeek 26.5.2010, 12:14
День добрый.

Есть две таблицы:
[Prin] - даты приема сотрудников на работу.
[Uvol] - даты увольнения сотрудников.

Каждый сотрудник может быть принят на работу несколько раз.

Нужен запрос, который по выбранному сотруднику формируем табличку вида: Принят на работу-Уволен-Время работы.
Если сотрудник принят на работу но еще не уволен то время работы считать как разницу между датой принятия и сегодняшним днем

Ну и второй запрос который посчитает суммарное время работы сотрудника на предприятии.

В приложенное екселевском файле примерно что хочу увидеть на примере сотрудника с кодом 1

Если это проблематично - то подскажите. как результат запроса загнать в массив. (ну или просто подскажите - для общего развития)

Заранее спасибо.

Автор: Akina 26.5.2010, 12:22
Если связать таблицы по сотруднику, наложить условие (дата увольнения) > (дата приёма), сгруппировать по обеим датам и отобрать те, у которых разница этих дат минимальна - получим все диапазоны работ сотрудников, которые в данный момент уволены.
Если связать таблицы по сотруднику, наложить условие max(дата увольнения) < max(дата приёма), получим список не-уволенных сотрудников.
Если объединить эти запросы - получим требуемую выборку. Время работы посчитать как DeteDiff("d",...)

Добавлено через 1 минуту и 49 секунд
Цитата(Freazeek @  26.5.2010,  13:14 Найти цитируемый пост)
как результат запроса загнать в массив. (ну или просто подскажите - для общего развития)

Перебрать записи по одной, сваливая данные в массив.

Автор: Freazeek 26.5.2010, 12:48
Спасибо. А не подскажете как перебрать записи по одной?

For Each [чтото там] in [наверно recordset]

next

Автор: Akina 26.5.2010, 12:53
Цитата(Freazeek @  26.5.2010,  13:48 Найти цитируемый пост)
А не подскажете как перебрать записи по одной?

Подскажу. Открыть встроенную справку и посмотреть.


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)