|
Как в получить периоды действия должности без штатного | ☑ | ||
---|---|---|---|---|
0
inetguru
26.11.11
✎
22:42
|
Народ помогите решить такую задачку для ЗУП.
Нужно вычислить период действия должности без использования штатного расписания. Должность начинает действовать, когда начинает занимать хоть 1 сотрудник и перестает, когда ни один сотрудник ее не занимает. Должность Дата Начала Дата Окончания |
|||
1
inetguru
26.11.11
✎
22:45
|
Начал писать запрос, но пока получилось только вот это:
ВЫБРАТЬ РАЗЛИЧНЫЕ РаботникиОрганизаций.ПодразделениеОрганизации КАК ПодразделениеОрганизации, РаботникиОрганизаций.Должность КАК Должность, МИНИМУМ(РаботникиОрганизаций.Период) КАК Период, РаботникиОрганизаций.Организация КАК Организация ИЗ РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций СГРУППИРОВАТЬ ПО РаботникиОрганизаций.ПодразделениеОрганизации, РаботникиОрганизаций.Должность, РаботникиОрганизаций.Организация ОБЪЕДИНИТЬ ВЫБРАТЬ РАЗЛИЧНЫЕ Работники.ПодразделениеОрганизацииЗавершения, Работники.ДолжностьЗавершения, МИНИМУМ(Работники.ПериодЗавершения), Работники.Организация ИЗ РегистрСведений.РаботникиОрганизаций КАК Работники ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций КАК ПериодыПерекрытия ПО (ПериодыПерекрытия.Период <= Работники.ПериодЗавершения) И (ПериодыПерекрытия.Период > Работники.Период) И (ПериодыПерекрытия.Сотрудник = Работники.Сотрудник) ГДЕ Работники.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0) И ПериодыПерекрытия.Период ЕСТЬ NULL СГРУППИРОВАТЬ ПО Работники.ПодразделениеОрганизацииЗавершения, Работники.ДолжностьЗавершения, Работники.Организация |
|||
2
inetguru
26.11.11
✎
22:46
|
Решить нужно через запрос
|
|||
3
inetguru
27.11.11
✎
19:21
|
Народ подскажите хоть направление.
|
|||
4
kumena
27.11.11
✎
22:47
|
(3) раз своих талантов не хватает направление одно - финансовая заинтересованность других. Если интересно - пишите на почту или здесь.
тут далеко не каждый правильно должность выбрать из регистра может, а вы предлагаете такое что за деньги не каждый возьмется. |
|||
5
andrewks
27.11.11
✎
22:51
|
это прикладная задача, или для тренировки ума?
|
|||
6
inetguru
27.11.11
✎
23:14
|
Я сам бухгалтер, занимаюсь около полугода программированием в 1с 8 и сам себе ставлю задачи, которые помогли бы облегчить жизнь в работе. Эта часть запроса мне нужна, чтобы доделать мой отчет на инфостарте Анализ Штатного расписания (за период) СКД http://infostart.ru/public/98265/. Соответственно задача прикладная для тренировки ума :)
|
|||
7
inetguru
27.11.11
✎
23:17
|
Отчету нужны должности сотрудников, которые не заведены в штатном расписании с периодами их действия
|
|||
8
inetguru
27.11.11
✎
23:29
|
Вот еще 1 наработка... не знаю куда дальше:
[CODE]ВЫБРАТЬ ПриемНаРаботу.Организация, ЕСТЬNULL(ПриемНаРаботу.ПодразделениеОрганизации, ПеремещенияИУвольнения.ПодразделениеОрганизации) КАК ПодразделениеОрганизации, ЕСТЬNULL(ПриемНаРаботу.Должность, ПеремещенияИУвольнения.Должность) КАК Должность, ПриемНаРаботу.Период, СУММА(ПриемНаРаботу.ЗанимаемыхСтавок) КАК ЗанимаемыхСтавок, ВЫБОР КОГДА ПеремещенияИУвольнения.ПричинаИзмененияСостояния = ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение) ТОГДА ДОБАВИТЬКДАТЕ(ПеремещенияИУвольнения.Период, ДЕНЬ, -1) ИНАЧЕ ПеремещенияИУвольнения.Период КОНЕЦ КАК Период1, СУММА(ПеремещенияИУвольнения.ЗанимаемыхСтавок) КАК ЗанимаемыхСтавок1, ПеремещенияИУвольнения.ПодразделениеОрганизации КАК ПодразделениеОрганизации1 ИЗ (ВЫБРАТЬ РаботникиОрганизаций.Организация КАК Организация, РаботникиОрганизаций.ПодразделениеОрганизации КАК ПодразделениеОрганизации, РаботникиОрганизаций.Должность КАК Должность, МАКСИМУМ(РаботникиОрганизаций.Период) КАК Период, СУММА(РаботникиОрганизаций.ЗанимаемыхСтавок) КАК ЗанимаемыхСтавок, РаботникиОрганизаций.ПричинаИзмененияСостояния КАК ПричинаИзмененияСостояния, РаботникиОрганизаций.Регистратор КАК Регистратор ИЗ РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций ГДЕ РаботникиОрганизаций.ПричинаИзмененияСостояния <> ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.ПриемНаРаботу) СГРУППИРОВАТЬ ПО РаботникиОрганизаций.Организация, РаботникиОрганизаций.ПодразделениеОрганизации, РаботникиОрганизаций.Должность, РаботникиОрганизаций.ПричинаИзмененияСостояния, РаботникиОрганизаций.Регистратор ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ РаботникиОрганизаций.Организация, РаботникиОрганизаций.ПодразделениеОрганизацииЗавершения, РаботникиОрганизаций.ДолжностьЗавершения, МАКСИМУМ(РаботникиОрганизаций.Период), СУММА(РаботникиОрганизаций.ЗанимаемыхСтавокЗавершения), РаботникиОрганизаций.ПричинаИзмененияСостоянияЗавершения, РаботникиОрганизаций.Регистратор ИЗ РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций ГДЕ РаботникиОрганизаций.ПричинаИзмененияСостоянияЗавершения <> ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.ПриемНаРаботу) СГРУППИРОВАТЬ ПО РаботникиОрганизаций.Организация, РаботникиОрганизаций.ПодразделениеОрганизацииЗавершения, РаботникиОрганизаций.ДолжностьЗавершения, РаботникиОрганизаций.ПричинаИзмененияСостоянияЗавершения, РаботникиОрганизаций.Регистратор) КАК ПеремещенияИУвольнения ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ РаботникиОрганизаций.Организация КАК Организация, РаботникиОрганизаций.ПодразделениеОрганизации КАК ПодразделениеОрганизации, РаботникиОрганизаций.Должность КАК Должность, МАКСИМУМ(РаботникиОрганизаций.Период) КАК Период, СУММА(РаботникиОрганизаций.ЗанимаемыхСтавок) КАК ЗанимаемыхСтавок, РаботникиОрганизаций.ПричинаИзмененияСостояния КАК ПричинаИзмененияСостояния, РаботникиОрганизаций.Регистратор КАК Регистратор ИЗ РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций ГДЕ РаботникиОрганизаций.ПричинаИзмененияСостояния = ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.ПриемНаРаботу) СГРУППИРОВАТЬ ПО РаботникиОрганизаций.Организация, РаботникиОрганизаций.ПодразделениеОрганизации, РаботникиОрганизаций.Должность, РаботникиОрганизаций.ПричинаИзмененияСостояния, РаботникиОрганизаций.Регистратор ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ РаботникиОрганизаций.Организация, РаботникиОрганизаций.ПодразделениеОрганизацииЗавершения, РаботникиОрганизаций.ДолжностьЗавершения, МАКСИМУМ(РаботникиОрганизаций.Период), СУММА(РаботникиОрганизаций.ЗанимаемыхСтавокЗавершения), РаботникиОрганизаций.ПричинаИзмененияСостоянияЗавершения, РаботникиОрганизаций.Регистратор ИЗ РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций ГДЕ РаботникиОрганизаций.ПричинаИзмененияСостоянияЗавершения = ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.ПриемНаРаботу) СГРУППИРОВАТЬ ПО РаботникиОрганизаций.Организация, РаботникиОрганизаций.ПодразделениеОрганизацииЗавершения, РаботникиОрганизаций.ДолжностьЗавершения, РаботникиОрганизаций.ПричинаИзмененияСостоянияЗавершения, РаботникиОрганизаций.Регистратор) КАК ПриемНаРаботу ПО (ПриемНаРаботу.Организация = ПеремещенияИУвольнения.Организация) И (ПриемНаРаботу.ПодразделениеОрганизации = ПеремещенияИУвольнения.ПодразделениеОрганизации) И (ПриемНаРаботу.Должность = ПеремещенияИУвольнения.Должность) СГРУППИРОВАТЬ ПО ПриемНаРаботу.Организация, ПриемНаРаботу.Период, ПеремещенияИУвольнения.ПодразделениеОрганизации, ВЫБОР КОГДА ПеремещенияИУвольнения.ПричинаИзмененияСостояния = ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение) ТОГДА ДОБАВИТЬКДАТЕ(ПеремещенияИУвольнения.Период, ДЕНЬ, -1) ИНАЧЕ ПеремещенияИУвольнения.Период КОНЕЦ, ЕСТЬNULL(ПриемНаРаботу.Должность, ПеремещенияИУвольнения.Должность), ЕСТЬNULL(ПриемНаРаботу.ПодразделениеОрганизации, ПеремещенияИУвольнения.ПодразделениеОрганизации) УПОРЯДОЧИТЬ ПО ПодразделениеОрганизации, Должность ИТОГИ ПО ПодразделениеОрганизации, Должность [/CODE] |
|||
9
inetguru
28.11.11
✎
00:25
|
Вот почти верный запрос...но кое что не попадает. Перемещения с этой должности.Как их добавить сюда:
ВЫБРАТЬ ЕСТЬNULL(ПриемНаРаботу.ПодразделениеОрганизации, ПеремещенияИУвольнения.ПодразделениеОрганизации) КАК ПодразделениеОрганизации, ЕСТЬNULL(ПриемНаРаботу.Должность, ПеремещенияИУвольнения.Должность) КАК Должность, ПриемНаРаботу.Период, СУММА(ПриемНаРаботу.ЗанимаемыхСтавок) КАК ЗанимаемыхСтавок, ВЫБОР КОГДА ПеремещенияИУвольнения.ПричинаИзмененияСостояния = ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение) ТОГДА ДОБАВИТЬКДАТЕ(ПеремещенияИУвольнения.Период, ДЕНЬ, -1) ИНАЧЕ ПеремещенияИУвольнения.Период КОНЕЦ КАК Период1, СУММА(ПеремещенияИУвольнения.ЗанимаемыхСтавок) КАК ЗанимаемыхСтавок1, ПеремещенияИУвольнения.ПодразделениеОрганизации КАК ПодразделениеОрганизации1, ПриемНаРаботу.Сотрудник ИЗ (ВЫБРАТЬ РаботникиОрганизаций.Организация КАК Организация, РаботникиОрганизаций.ПодразделениеОрганизации КАК ПодразделениеОрганизации, РаботникиОрганизаций.Должность КАК Должность, РаботникиОрганизаций.Период КАК Период, СУММА(РаботникиОрганизаций.ЗанимаемыхСтавок) КАК ЗанимаемыхСтавок, РаботникиОрганизаций.ПричинаИзмененияСостояния КАК ПричинаИзмененияСостояния, РаботникиОрганизаций.Регистратор КАК Регистратор, РаботникиОрганизаций.Сотрудник КАК Сотрудник ИЗ РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций ГДЕ РаботникиОрганизаций.ПричинаИзмененияСостояния <> ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.ПриемНаРаботу) СГРУППИРОВАТЬ ПО РаботникиОрганизаций.Организация, РаботникиОрганизаций.ПодразделениеОрганизации, РаботникиОрганизаций.Должность, РаботникиОрганизаций.ПричинаИзмененияСостояния, РаботникиОрганизаций.Регистратор, РаботникиОрганизаций.Сотрудник, РаботникиОрганизаций.Период ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ РаботникиОрганизаций.Организация, РаботникиОрганизаций.ПодразделениеОрганизацииЗавершения, РаботникиОрганизаций.ДолжностьЗавершения, РаботникиОрганизаций.Период, СУММА(РаботникиОрганизаций.ЗанимаемыхСтавокЗавершения), РаботникиОрганизаций.ПричинаИзмененияСостоянияЗавершения, РаботникиОрганизаций.Регистратор, РаботникиОрганизаций.Сотрудник ИЗ РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций ГДЕ РаботникиОрганизаций.ПричинаИзмененияСостоянияЗавершения <> ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.ПриемНаРаботу) СГРУППИРОВАТЬ ПО РаботникиОрганизаций.Организация, РаботникиОрганизаций.ПодразделениеОрганизацииЗавершения, РаботникиОрганизаций.ДолжностьЗавершения, РаботникиОрганизаций.ПричинаИзмененияСостоянияЗавершения, РаботникиОрганизаций.Регистратор, РаботникиОрганизаций.Сотрудник, РаботникиОрганизаций.Период) КАК ПеремещенияИУвольнения ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ РаботникиОрганизаций.Организация КАК Организация, РаботникиОрганизаций.ПодразделениеОрганизации КАК ПодразделениеОрганизации, РаботникиОрганизаций.Должность КАК Должность, РаботникиОрганизаций.Период КАК Период, СУММА(РаботникиОрганизаций.ЗанимаемыхСтавок) КАК ЗанимаемыхСтавок, РаботникиОрганизаций.ПричинаИзмененияСостояния КАК ПричинаИзмененияСостояния, РаботникиОрганизаций.Регистратор КАК Регистратор, РаботникиОрганизаций.Сотрудник КАК Сотрудник ИЗ РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций ГДЕ РаботникиОрганизаций.ПричинаИзмененияСостояния = ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.ПриемНаРаботу) СГРУППИРОВАТЬ ПО РаботникиОрганизаций.Организация, РаботникиОрганизаций.ПодразделениеОрганизации, РаботникиОрганизаций.Должность, РаботникиОрганизаций.ПричинаИзмененияСостояния, РаботникиОрганизаций.Регистратор, РаботникиОрганизаций.Сотрудник, РаботникиОрганизаций.Период ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ РаботникиОрганизаций.Организация, РаботникиОрганизаций.ПодразделениеОрганизацииЗавершения, РаботникиОрганизаций.ДолжностьЗавершения, РаботникиОрганизаций.Период, СУММА(РаботникиОрганизаций.ЗанимаемыхСтавокЗавершения), РаботникиОрганизаций.ПричинаИзмененияСостоянияЗавершения, РаботникиОрганизаций.Регистратор, РаботникиОрганизаций.Сотрудник ИЗ РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций ГДЕ РаботникиОрганизаций.ПричинаИзмененияСостоянияЗавершения = ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.ПриемНаРаботу) СГРУППИРОВАТЬ ПО РаботникиОрганизаций.Организация, РаботникиОрганизаций.ПодразделениеОрганизацииЗавершения, РаботникиОрганизаций.ДолжностьЗавершения, РаботникиОрганизаций.ПричинаИзмененияСостоянияЗавершения, РаботникиОрганизаций.Регистратор, РаботникиОрганизаций.Сотрудник, РаботникиОрганизаций.Период) КАК ПриемНаРаботу ПО (ПриемНаРаботу.Организация = ПеремещенияИУвольнения.Организация) И (ПриемНаРаботу.ПодразделениеОрганизации = ПеремещенияИУвольнения.ПодразделениеОрганизации) И ПеремещенияИУвольнения.Сотрудник = ПриемНаРаботу.Сотрудник ГДЕ ПеремещенияИУвольнения.Период > ПриемНаРаботу.Период И ВЫБОР КОГДА ПриемНаРаботу.Должность = ПеремещенияИУвольнения.Должность ТОГДА ПеремещенияИУвольнения.ЗанимаемыхСтавок = 0 КОНЕЦ СГРУППИРОВАТЬ ПО ПриемНаРаботу.Организация, ПриемНаРаботу.Период, ПеремещенияИУвольнения.ПодразделениеОрганизации, ПриемНаРаботу.Сотрудник, ЕСТЬNULL(ПриемНаРаботу.ПодразделениеОрганизации, ПеремещенияИУвольнения.ПодразделениеОрганизации), ЕСТЬNULL(ПриемНаРаботу.Должность, ПеремещенияИУвольнения.Должность), ВЫБОР КОГДА ПеремещенияИУвольнения.ПричинаИзмененияСостояния = ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение) ТОГДА ДОБАВИТЬКДАТЕ(ПеремещенияИУвольнения.Период, ДЕНЬ, -1) ИНАЧЕ ПеремещенияИУвольнения.Период КОНЕЦ УПОРЯДОЧИТЬ ПО ПодразделениеОрганизации, Должность ИТОГИ ПО ПодразделениеОрганизации, Должность |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |