работу и увольняться несколько раз, поэтому есть столбцы "n-ый период - начало работы" и "n-ый период - увольнение". Таких периодов 4 + текущий период.
Необходимо посчитать количество сотрудников на каждый день с разбиением по форме оформления (штат, фриланс и т.п.).
Каким образом это лучше сделать?
Пробовал создать таблицу таким образом, но получается очень громоздко (а это лишь расчёт всех сотрудников, без разделения по формам оформления):
а больше 5 периодов не может быть априори? мне кажется, что это уже не спарвочник, а таблица фактов. и ее можно свести к виду user_id, date_id, форма_оформления
Самому не нравится ограниченность по периодам. В какой-то момент (хоть и нескоро) может у какого-нибудь одного сотрудника настать и 6ой период.. Но БД мне досталась, так сказать, по наследству, и переделывать её на данный момент времени нет.
в каком виде эта табл в бд, не верю что именно в таком
Именно в таком виде она и есть в БД.. ИД, форма оформления, текущий период работы и прошлые периоды работы. Ну и куча другой информации о человеке
прям так piviot-ом?
Прям вот так. Есть идея (и я все больше о ней думаю) в бд сделать таблицу (связь основной таблицы и новой 1 к *) и в этой таблице вести периоды работы для каждого сотрудника. |ИД|Дата начала работы|Дата окончания работы|Форма оформления| Но вопрос с тем, как считать, остается :)
делайте в запросе unpivot, если до вас руко...п был, ну а далее с плоской все просто
Обсуждают сегодня