0 / 0 / 0
Регистрация: 30.01.2016
Сообщений: 3
|
||||||||||||||||
1 | ||||||||||||||||
Запрос из нескольких таблиц с категориями SQL Access 200729.08.2016, 13:40. Показов 1693. Ответов 5
Метки нет (Все метки)
Здравствуйте уважаемые посетители форума!
Разрабатываю базу данных специфического кадрового учета в войсковой части на Access 2007. В процессе разработки возник вопрос, долгим и упорным поиском в интернете ничего не нашел, потому очень прошу помощи у Вас. Имеем две таблицы - СписокПодразделений и СписокДолжностей. СписокПодразделений состоит из двух полей -
В чем заключается задача - создать запрос с подсчетом количества должностей в каждом подразделении по категориям должностей. То есть:
Как ни старался - не получается добиться правильного запроса. Прошу помощи у профессионалов данного дела
0
|
29.08.2016, 13:40 | |
Ответы с готовыми решениями:
5
access 2007 + sql запрос + vba SQL запрос, Count из нескольких таблиц Свободное поле на форме использующее SQL запрос Access 2007 SQL запрос двух связанных таблиц access |
26806 / 14485 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
||||||
29.08.2016, 13:50 | 2 | |||||
Сообщение было отмечено alastor_f32 как решение
Решение
Примерно так
1
|
1266 / 448 / 129
Регистрация: 21.03.2013
Сообщений: 1,210
|
|
30.08.2016, 12:36 | 3 |
насколько я помню у в/ч есть штат.
там есть код подразделения, код высшего подразделения и код должности они не совпадают (уникальны) одинаковые должности в одном подразделении имею количество (это тот максимум сколько можно назначить людей на должность). Эта структура даст возможность формировать запросы по количеству должностей на любой период времени. к штату идут изменения - одни должности выводятся - другие добавляются Советую вести штат (одну таблицу) по структуре штата с добавление полей (номер штата или изменения, дата ввода, дата вывода) Это раз. Помним что военная должность отличается от гражданской наличием ВОС. Два Имея таблицу людей закрепленных по должностям из штата тоже с датой назначения и датой увольнения. Помним что наличие специального (воинского) звания отличает человека военного от гражданского. Так будет возможно составить любую выборку по должностям и категориям на любое время. И три не забываем, что отдельные штаты имеют гриф. И даже если вы не ведете таблицу штат, как я описал, а ведете наличие посад и их количество эти данные могут тоже попасть под гриф.
1
|
0 / 0 / 0
Регистрация: 30.01.2016
Сообщений: 3
|
||||||
02.09.2016, 21:56 [ТС] | 4 | |||||
boby104, спасибо за ответ. Да, штат видел с уникальными кодами высших подразделений - но в моей структуре это не актуально.
mobile, огромное спасибо - все получилось, все работает! Не знал, что в SUM можно запихать таким образом условие. Еще вариант нашел: SUM(IIf(КатегорияДолжности=0,ЧислоПоШтату,0)) Увеличил запрос с помощью данных конструкций - получил численность по штату, все отлично работает. Но вот незадача - делаю запрос с выводом 2 столбцов - количество людей в каждом подразделении по штату, затем - количество людей в каждом подразделении по факту. И вот столкнулся вот с какой проблемой. В запрос мы добавляем следующую таблицу - ЛичныйСостав. ЛичныйСостав - здесь мы храним каждого человека с указанием места его работы. Состоит из множества полей, основными из которых являются:
То бишь, на данный момент я вывожу в запросе:
Каждое подразделение выводится столько раз, сколько есть людей в таблице ЛичныйСостав. В итоге получается вот какая сумма: ЧислоПоШтату * Количество записей в таблице ЛичныйСостав. То бишь, я хочу получить получить такой вид: Подразделение № 1 - По штату 40, по списку 23. В итоге получаю: Подразделение № 1 - По штату 920 (40*23). Я конечно понимаю, что здесь ошибка моя - и прошу натолкнуть на путь истинный. Без функций подсчета я увидел, что группировка по КодуПодразделения не работает - ибо в таблице ЛичныйСостав есть множество записей с одним КодомПодразделения, но разными КодамиЧеловека, что в прицнипе логично. Подскажите пожалуйста, как в одном запросе посчитать как бы это реализовать.. Заранее всем спасибо за ответ!
0
|
0 / 0 / 0
Регистрация: 30.01.2016
Сообщений: 3
|
|
02.09.2016, 22:22 [ТС] | 6 |
Изменений никаких - считает также неправильно.
Здесь проблема, как я заметил, не в том, что я неправильно считаю людей по списку - а в группировке таблиц. Получается есть рабочий запрос подсчета людей по штату. Как только я добавляю в JOIN таблицу ЛичныйСостав - где есть несколько людей с одним КодомПодразделения - то сразу неправильно считает, не работает группировка записей как нужно.
0
|
02.09.2016, 22:22 | |
02.09.2016, 22:22 | |
Помогаю со студенческими работами здесь
6
Как в Access 2007 сложить данные из разных таблиц? Запрос. Access 2007 SQL в MS office access 2007 Access 2007 и SQL в запросе Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |