powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / База данных отдела кадров
25 сообщений из 59, страница 1 из 3
База данных отдела кадров
    #38061897
vitalmar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток!
Имею на борту немного знаний об access и задание курсовой работы с вышеозначенной темой форума. Проблема возникла при создании штатного расписания, а именно в количестве вакансий т.е. свободных должностей на предприятии. Поясню: есть определенное кол-во штатных сотрудников, допустим -
1. Директор - 1шт.
2. Секретарь - 1шт.
3. Бухгалтеров - 2 шт.
4. Рабочие, менеджеры и т.д. - 3шт.
5. Уборщица - 1шт.
, если данные должности не заняты, то в таблице штатного расписания в столбце вакансии стоит число равное кол-ву штатных сотрудников. Если же кому-то посчастливилось и его взяли в директора, то соответственно значение в столбце вакансии напротив должности "Директор" должно изменится на -1. Если же директора уволили, +1 к директорам возвращается.
Как данное описание реализовать в аксессе ?
Прикрепляю саму базу, аксесс у меня 2007.
...
Рейтинг: 0 / 0
База данных отдела кадров
    #38061927
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vitalmar, если данные должности не заняты, то в таблице штатного расписания в столбце вакансии стоит число равное кол-ву штатных сотрудников. Если же кому-то посчастливилось и его взяли в директора, то соответственно значение в столбце вакансии напротив должности "Директор" должно изменится на -1. Если же директора уволили, +1 к директорам возвращается.
Как данное описание реализовать в аксессе ?

столбец вакансии - не нужен,
его нужно получать запросом

типа, таким
Код: vbnet
1.
2.
3.
4.
5.
select a.должность, a.[к-во человеков по штатному расписанию]-nz(b.[к-во человеков по штату ФАКТИЧЕСКИ]) as [к-во вакансий на должность]
from [штатного расписания] a
left join
(select должность, count(*) as [к-во человеков по штату ФАКТИЧЕСКИ] from [Штат (т.е. - список людей)] where ДатаУвольнения is null) b
on a.должность=b.должность


зы
БД не смотрел (не чем)
...
Рейтинг: 0 / 0
База данных отдела кадров
    #38061928
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fix
qwerty112
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
select a.должность, a.[к-во человеков по штатному расписанию]-nz(b.[к-во человеков по штату ФАКТИЧЕСКИ]) as [к-во вакансий на должность]
from [штатного расписания] a
left join
(select должность, count(*) as [к-во человеков по штату ФАКТИЧЕСКИ] 
from [Штат (т.е. - список людей)] where ДатаУвольнения is null
group by должность) b
on a.должность=b.должность
...
Рейтинг: 0 / 0
База данных отдела кадров
    #38061931
vitalmar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
у меня сейчас запрос такой + в поле Вакансии прописано Кол-во штатных ед - test
Код: plsql
1.
2.
3.
SELECT [Штатное расписание].Должность, [Штатное расписание].[Кол-во штатных ед], [Штатное расписание].Оклад, [Штатное расписание].Надбавка, [Штатное расписание].Премия, [Штатное расписание].[Всего в месяц], [Штатное расписание].Вакансии, Count([Карточки сотрудников].ФИО) AS test
FROM [Штатное расписание] LEFT JOIN [Карточки сотрудников] ON [Штатное расписание].Должность = [Карточки сотрудников].Должность
GROUP BY [Штатное расписание].Должность, [Штатное расписание].[Кол-во штатных ед], [Штатное расписание].Оклад, [Штатное расписание].Надбавка, [Штатное расписание].Премия, [Штатное расписание].[Всего в месяц], [Штатное расписание].Вакансии;
...
Рейтинг: 0 / 0
База данных отдела кадров
    #38061936
vitalmar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
+ схема данных во вложении
...
Рейтинг: 0 / 0
База данных отдела кадров
    #38061937
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну вот и отлично,
теперь просто, в запросе, вычитаеш одно из другого - и будет значение Вакансии
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
SELECT 
[Штатное расписание].Должность, [Штатное расписание].[Кол-во штатных ед], [Штатное расписание].Оклад, [Штатное расписание].Надбавка, [Штатное расписание].Премия, [Штатное расписание].[Всего в месяц], [Штатное расписание].Вакансии, Count([Карточки сотрудников].ФИО) AS test,

[Штатное расписание].[Кол-во штатных ед] - nz(Count([Карточки сотрудников].ФИО)) as Вакансии

FROM [Штатное расписание] 
LEFT JOIN [Карточки сотрудников] 
ON [Штатное расписание].Должность = [Карточки сотрудников].Должность
GROUP BY 
[Штатное расписание].Должность, [Штатное расписание].[Кол-во штатных ед], [Штатное расписание].Оклад, [Штатное расписание].Надбавка, [Штатное расписание].Премия, [Штатное расписание].[Всего в месяц], [Штатное расписание].Вакансии;


а само поле "Вакансии" в таб.Штатное расписание - не нужно
...
Рейтинг: 0 / 0
База данных отдела кадров
    #38061953
полином
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1) нафига ФИО в двух таблицах если достаточно в одной (в таблице "персоны")
2) если человек устроился два раза будет две разные карточки сотрудника
3) "стаж" это разница между "датой приема" и "датой увольнения" или текущей датой
4) "паспорт" это атрибут персоны а не атрибут сотрудника (как и ФИО)
5) "оклад" может меняться от месяца к месяцу, не говоря уже о надбавке и о премиях
6) безотносительно ремарки в п.5, "всего в месяц" это вычисляемое значение (как и "стаж")
ну в общем как то так
...
Рейтинг: 0 / 0
База данных отдела кадров
    #38061962
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выложенная схема данных - барахло. Можно сразу выбросить.
...
Рейтинг: 0 / 0
База данных отдела кадров
    #38061968
vitalmar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
qwerty112, спасибо! Работает :) А по поводу вопроса обновления кол-ва вакансий после увольнения сотрудника?
полином, спасибо за ценные указания :)

Программист-Любитель, как сдам курсач, обязательно последую вашему совету.
...
Рейтинг: 0 / 0
База данных отдела кадров
    #38061977
полином
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vitalmarПоясню: есть определенное кол-во штатных сотрудников, допустим -
1. Директор - 1шт.
2. Секретарь - 1шт.
3. Бухгалтеров - 2 шт.
4. Рабочие, менеджеры и т.д. - 3шт.
5. Уборщица - 1шт.


1. Директор
2. Секретарь
3. Бухгалтер
4. Бухгалтер
5. Рабочий
6. Рабочий
7. Менеджер
8. Уборщица
...
Рейтинг: 0 / 0
База данных отдела кадров
    #38061978
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и вот так учат....
...
Рейтинг: 0 / 0
База данных отдела кадров
    #38061980
vitalmar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
полиномvitalmarПоясню: есть определенное кол-во штатных сотрудников, допустим -
1. Директор - 1шт.
2. Секретарь - 1шт.
3. Бухгалтеров - 2 шт.
4. Рабочие, менеджеры и т.д. - 3шт.
5. Уборщица - 1шт.


1. Директор
2. Секретарь
3. Бухгалтер
4. Бухгалтер
5. Рабочий
6. Рабочий
7. Менеджер
8. Уборщица


вот пример штатного расписания - там должности не дублируются.

sdku, на заочном только так и учат :)
...
Рейтинг: 0 / 0
База данных отдела кадров
    #38061983
работяга...
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vitalmar,
хороший пример, на 2 работника один начальник )))) и фонд оплаты труда примерно 50% на администрацию, 50% на работяг.
.\хорошо учат.\
...
Рейтинг: 0 / 0
База данных отдела кадров
    #38061984
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vitalmar,
я вот к чему:
...
Рейтинг: 0 / 0
База данных отдела кадров
    #38061991
полифем
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vitalmarвот пример штатного расписания - там должности не дублируются.

в отчете данные агрегированы через SUM или СOUNT а в таблицах они развернуты в нормальном виде
...
Рейтинг: 0 / 0
База данных отдела кадров
    #38062231
Гvость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Один сотрудник может занимать больше одной должности.
...
Рейтинг: 0 / 0
База данных отдела кадров
    #38062261
Rivkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ГvостьОдин сотрудник может занимать больше одной должности.
Одна должность может быть разбита между несколькими сотрудникам
Итого:
Легче помереть: один сотрудник может занимать меньше одной должности, целую должность или более одной (до двух? до трех?) или несколько разных должностей, но частями...
...
Рейтинг: 0 / 0
База данных отдела кадров
    #38062766
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
связь между двумя ключевыми (не допускающими совпадений) полями 1:М-не надо ничего объяснять...
...
Рейтинг: 0 / 0
База данных отдела кадров
    #38062817
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdkuсвязь между двумя ключевыми (не допускающими совпадений) полями 1:М-не надо ничего объяснять...
так это 1:1 было бы ....
а на схеме видно, что 1:М ... и как это у ТС вышло, мне тоже не понятно ...
...
Рейтинг: 0 / 0
База данных отдела кадров
    #38062855
guest_rusimport
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
qwerty112sdkuсвязь между двумя ключевыми (не допускающими совпадений) полями 1:М-не надо ничего объяснять...
так это 1:1 было бы ....
а на схеме видно, что 1:М ... и как это у ТС вышло, мне тоже не понятно ...

"фокус" тут простой - сначала создается ключевое поле в одной таблице, потом создается схема данных , потом создается второе ключевое поле... Попробуйте на досуге
...
Рейтинг: 0 / 0
База данных отдела кадров
    #38062889
vitalmar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
переделал немного схему, а по поводу увольнения сотрудника и освобождения должности(соответственно появления свободной вакансии) - думаю создать таблицу типа Архив и помещать туда уволенных сотрудников
...
Рейтинг: 0 / 0
База данных отдела кадров
    #38062914
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Плохо. Схема неправильная.

Основные сущности:

Структура компании - департаменты, управления, отделы и т.п. (Подразделение) Можно фиксированным деревом, можно произвольным.
Единый справочник физлиц (ФИО, Дата рождения)
Можно документы физлиц (паспорта) (Паспорт)
Справочник должностей (Должность)
Основная таблица Назначений физлиц на Должность в Подразделении компании (Подразделение, Физлицо, Должность, с датами С .. По)
...
Рейтинг: 0 / 0
База данных отдела кадров
    #38063027
vitalmar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Программист-Любитель, спасибо за ваше время, но так усложнять базу мне не нужно. Требования к курсовой со слов преподавателя - 3-4 таблицы, возможность принять/уволить сотрудника, штатное расписание с вакансиями ну и по возможности перемещение сотрудника с должности/отдела на другие должность/отдел + история перемещений. Отделов 5-6, сотрудников 10-12. Ах да и еще краткое описание на максимум 25 страниц бумажного варианта
...
Рейтинг: 0 / 0
База данных отдела кадров
    #38063073
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Именно под это тз я написал три-четыре таблицы. Это не усложнение - это исправление ваших ошибок. ФИО обязано быть в личных данных. Код Отдела должен быть в Карточке сотрудника - в разных отделах очень часто бывают одиноковые/аналогичные должности.

Фактически я заменил ваши отделы подразделениями компании. Дело вкуса, но таблица Назначений ДОЛЖНА содержать:
Код Физлица
Код Должности
Код Отдела (подразделения, ...)
Даты с .. по
...
Рейтинг: 0 / 0
База данных отдела кадров
    #38063397
полином
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Программист-ЛюбительДаты с .. по
тут возможны варианты, в общем случае.

обычно в приказе не указывается дата "по_"
обычно издаются два разных приказа - о назначении на должность "с_" и о снятии с должности "с_"
или в одном приказе может быть и назначение и снятие но уже с/на разных должностей.

освободить от должности Генерального директора и назначить на должность Дворника "с_"
...
Рейтинг: 0 / 0
25 сообщений из 59, страница 1 из 3
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / База данных отдела кадров
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]