|
сортировка по юбилярам | ☑ | ||
---|---|---|---|---|
0
userqwerty
19.12.19
✎
14:35
|
ДОБРЫЙ ДЕНЬ, подскачите, пожалуйста.
есть у меня запрос, который показывает мне сколько лет сотрудникам моим ВЫБРАТЬ КадроваяИсторияСотрудниковСрезПоследних.ФизическоеЛицо КАК ФизическоеЛицо, КадроваяИсторияСотрудниковСрезПоследних.ФизическоеЛицо.Наименование КАК Сотрудник, КадроваяИсторияСотрудниковСрезПоследних.Подразделение.Наименование КАК Подразделение, КадроваяИсторияСотрудниковСрезПоследних.Должность.Наименование КАК Должность, КадроваяИсторияСотрудниковСрезПоследних.ФизическоеЛицо.ДатаРождения КАК ДатаРождения, РАЗНОСТЬДАТ(КадроваяИсторияСотрудниковСрезПоследних.ФизическоеЛицо.ДатаРождения, &ТекущаяДата, ГОД) КАК Возраст, // здесь возраст ДОБАВИТЬКДАТЕ(КадроваяИсторияСотрудниковСрезПоследних.ФизическоеЛицо.ДатаРождения, ГОД, РАЗНОСТЬДАТ(КадроваяИсторияСотрудниковСрезПоследних.ФизическоеЛицо.ДатаРождения, &ТекущаяДата, ГОД)) КАК Период, КадроваяИсторияСотрудниковСрезПоследних.Организация.Наименование КАК Организация ИЗ РегистрСведений.КадроваяИсторияСотрудников.СрезПоследних КАК КадроваяИсторияСотрудниковСрезПоследних ГДЕ НЕ КадроваяИсторияСотрудниковСрезПоследних.ВидСобытия = ЗНАЧЕНИЕ(Перечисление.ВидыКадровыхСобытий.Увольнение) И ДОБАВИТЬКДАТЕ(КадроваяИсторияСотрудниковСрезПоследних.ФизическоеЛицо.ДатаРождения, ГОД, РАЗНОСТЬДАТ(КадроваяИсторияСотрудниковСрезПоследних.ФизическоеЛицо.ДатаРождения, &ТекущаяДата, ГОД)) МЕЖДУ ДОБАВИТЬКДАТЕ(&ТекущаяДата, ДЕНЬ, -3) И ДОБАВИТЬКДАТЕ(&ТекущаяДата, ДЕНЬ, 3) как отсортировать, чтобы сперва были юбиляры , кратное пяти, 25,30,35 лет а потом все остальные. |
|||
1
Волшебник
19.12.19
✎
14:37
|
Юбиляров лучше выбирать отдельным запросом.
|
|||
2
userqwerty
19.12.19
✎
14:39
|
(1) лучше это да, кадры просят стоя на коленях сделать так.
|
|||
3
polosov
19.12.19
✎
14:39
|
ВЫБОР КОГДА ВЫРАЗИТЬ(РАЗНОСТЬДАТ(КадроваяИсторияСотрудниковСрезПоследних.ФизическоеЛицо.ДатаРождения, &ТекущаяДата, ГОД)/ 5 КАК Число(10)) = РАЗНОСТЬДАТ(КадроваяИсторияСотрудниковСрезПоследних.ФизическоеЛицо.ДатаРождения, &ТекущаяДата, ГОД)/ 5 ТОГДА 1 ИНАЧЕ 0 КОНЕЦ КАК ПолеСортировки
Как-то так |
|||
4
mistеr
19.12.19
✎
14:46
|
(0)
ВЫБОР КОГДА Таб.Возраст / 5 = (ВЫРАЗИТЬ(Таб.Возраст / 5 КАК ЧИСЛО(10, 0))) ТОГДА ИСТИНА ИНАЧЕ ЛОЖЬ КОНЕЦ КАК Юбилей |
|||
5
userqwerty
19.12.19
✎
14:47
|
(3) спасибо, работает)) потом упорядочить по ПолеСортировки возр
|
|||
6
mistеr
19.12.19
✎
14:47
|
(2) Они наверное не знают, что можно иначе.
|
|||
7
userqwerty
19.12.19
✎
15:59
|
(4) сделала другой запрос
ВЫБРАТЬ КадроваяИсторияСотрудниковСрезПоследних.Сотрудник.Код КАК ТабельныйНомер, КадроваяИсторияСотрудниковСрезПоследних.Сотрудник КАК Сотрудник, КадроваяИсторияСотрудниковСрезПоследних.Должность КАК Должность, КадроваяИсторияСотрудниковСрезПоследних.Подразделение КАК Подразделение, КадроваяИсторияСотрудниковСрезПоследних.Организация КАК Организация, КадроваяИсторияСотрудниковСрезПоследних.ФизическоеЛицо.ДатаРождения КАК ДатаРождения, ДЕНЬ(КадроваяИсторияСотрудниковСрезПоследних.ФизическоеЛицо.ДатаРождения) КАК ТотСамыйДень, &ДатаКон - ГОД(КадроваяИсторияСотрудниковСрезПоследних.ФизическоеЛицо.ДатаРождения) КАК Возраст, ВЫБОР КОГДА ТекущиеКадровыеДанныеСотрудников.ДатаПриема ЕСТЬ NULL ТОГДА КадроваяИсторияСотрудниковСрезПоследних.Период ИНАЧЕ ТекущиеКадровыеДанныеСотрудников.ДатаПриема КОНЕЦ КАК ДатаПриказа ПОМЕСТИТЬ ВТДанные ИЗ РегистрСведений.КадроваяИсторияСотрудников.СрезПоследних КАК КадроваяИсторияСотрудниковСрезПоследних ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ТекущиеКадровыеДанныеСотрудников КАК ТекущиеКадровыеДанныеСотрудников ПО КадроваяИсторияСотрудниковСрезПоследних.Сотрудник = ТекущиеКадровыеДанныеСотрудников.Сотрудник ГДЕ МЕСЯЦ(КадроваяИсторияСотрудниковСрезПоследних.ФизическоеЛицо.ДатаРождения) = &МесяцРождения И КадроваяИсторияСотрудниковСрезПоследних.ФизическоеЛицо.ДатаРождения > &ПустаяДата ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РеестрКадровыхПриказов.Сотрудник КАК Сотрудник, РеестрКадровыхПриказов.ДатаПриказа КАК ДатаПриказа, РеестрКадровыхПриказов.Должность КАК Должность, РеестрКадровыхПриказов.Подразделение КАК Подразделение ПОМЕСТИТЬ ВТДанныеПереноса ИЗ РегистрСведений.РеестрКадровыхПриказов КАК РеестрКадровыхПриказов ГДЕ МЕСЯЦ(РеестрКадровыхПриказов.ФизическоеЛицо.ДатаРождения) = &МесяцРождения И РеестрКадровыхПриказов.ФизическоеЛицо.ДатаРождения > &ПустаяДата И РеестрКадровыхПриказов.ВидСобытия = &Прием ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ КадроваяИсторияСотрудниковСрезПоследних.Сотрудник КАК Сотрудник ПОМЕСТИТЬ ВТУволенные ИЗ РегистрСведений.КадроваяИсторияСотрудников.СрезПоследних КАК КадроваяИсторияСотрудниковСрезПоследних ГДЕ КадроваяИсторияСотрудниковСрезПоследних.ВидСобытия = &Увольнение ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТДанные.ТабельныйНомер КАК ТабельныйНомер, ВТДанные.Сотрудник КАК Сотрудник, ВТДанные.Должность КАК Должность, ВТДанные.Подразделение КАК Подразделение, ВТДанные.Организация КАК Организация, ВЫБОР КОГДА ВТДанныеПереноса.ДатаПриказа ЕСТЬ NULL ТОГДА ВТДанные.ДатаПриказа ИНАЧЕ ВТДанныеПереноса.ДатаПриказа КОНЕЦ КАК ДатаПриема, ВТДанные.ДатаРождения КАК ДатаРождения, ВТДанные.ТотСамыйДень КАК ТотСамыйДень, ДЕНЬНЕДЕЛИ(ДОБАВИТЬКДАТЕ(ВТДанные.ДатаРождения, ГОД, ВТДанные.Возраст)) КАК ДеньНедели, ВТДанные.Возраст КАК Возраст, ВЫБОР КОГДА (ВЫРАЗИТЬ(РАЗНОСТЬДАТ(ВТДанные.Возраст, &ТекущаяДата, ГОД) / 5 КАК ЧИСЛО(10, 0))) = РАЗНОСТЬДАТ(ВТДанные.Возраст, &ТекущаяДата, ГОД) / 5 ТОГДА 1 ИНАЧЕ 0 КОНЕЦ КАК ПолеСортировки ИЗ ВТДанные КАК ВТДанные ЛЕВОЕ СОЕДИНЕНИЕ ВТУволенные КАК ВТУволенные ПО ВТДанные.Сотрудник = ВТУволенные.Сотрудник ЛЕВОЕ СОЕДИНЕНИЕ ВТДанныеПереноса КАК ВТДанныеПереноса ПО ВТДанные.Сотрудник = ВТДанныеПереноса.Сотрудник ГДЕ ВТУволенные.Сотрудник ЕСТЬ NULL при открытии внешнего отчета ругается {(68, 31)}: Неверные параметры "РАЗНОСТЬДАТ" КОГДА (ВЫРАЗИТЬ(РАЗНОСТЬДАТ(<<?>>ВТДанные.Возраст, &ТекущаяДата, ГОД) / 5 КАК ЧИСЛО(10, 0))) = РАЗНОСТЬДАТ(ВТДанные.Возраст, &ТекущаяДата, ГОД) / 5 Вроде все правильно сделано |
|||
8
mistеr
19.12.19
✎
16:05
|
(7) В первом запросе у тебя возраст был в годах. А в этом хз в чем, в секундах кажется. И ты еще к нему РАЗНОСТЬДАТ применяешь. С какого бодуна?
|
|||
9
Kigo_Kigo
19.12.19
✎
16:13
|
сделал не в запросе, а выгруженной уже тз вот так
СколькоЛет = Цел(Год(ТекущаяДата()) -Год(тз.ДатаРождения)); Если (СколькоЛет/5) = Цел(СколькоЛет/5) Тогда |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |