|
Срез последних двух | ☑ | ||
---|---|---|---|---|
0
newbling
23.08.18
✎
16:44
|
Добрый день. Задача получить из периодического регистра сведений из, в которой будут актуальные на определенную дату значения и значение до них.
Например, в рс: Филиал1, Физлицо1 на 01.01.2018 Филиал1, Физлицо2 на 02.01.2018 Филиал1, Физлицо3 на 03.01.2018 Филиал2, Физлицо4 на 01.01.2018 При параметре среза на 02.01.2018 нам вернёт: Филиал1, Физлицо3, Физлицо2 Филиал2, Физлицо4, null |
|||
1
newbling
23.08.18
✎
16:44
|
Из=тз.
Автозамена |
|||
2
dmt
23.08.18
✎
16:46
|
|
|||
3
dmt
23.08.18
✎
16:47
|
тоже задание при приеме на работу?
|
|||
4
newbling
23.08.18
✎
16:54
|
||||
5
Ботаник Гарден Меран
23.08.18
✎
16:54
|
Всегда забываю, но помню где найти.
Понадобилось пару раз за все годы. |
|||
6
dmt
23.08.18
✎
17:04
|
Вот значит о чем вчера говорили
И Цены1.Период В (ВЫБРАТЬ ПЕРВЫЕ 1 ТЗЦены.Период ИЗ Цены КАК ТЗЦены ГДЕ ТЗЦены.Номенклатура = Цены.Номенклатура УПОРЯДОЧИТЬ ПО ТЗЦены.Период УБЫВ) |
|||
7
unregistered
23.08.18
✎
17:28
|
(6) Для одной номенклатуры катит. Для всех номенклатур уже не получится.
|
|||
8
unregistered
23.08.18
✎
17:32
|
Можно что-то типа этого использовать. Это запрос должен получать последнее подразделение, где работал сотрудник с датой назначения и предпоследнее с датой назначения.
Но я не уверен, что правильно понял суть задания в (0). ВЫБРАТЬ КадроваяИсторияСотрудников.Сотрудник КАК Сотрудник, МАКСИМУМ(КадроваяИсторияСотрудников.Период) КАК Период ПОМЕСТИТЬ ВТ_СрезПоследних ИЗ РегистрСведений.КадроваяИсторияСотрудников КАК КадроваяИсторияСотрудников ГДЕ КадроваяИсторияСотрудников.Период <= &Период СГРУППИРОВАТЬ ПО КадроваяИсторияСотрудников.Сотрудник ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ КадроваяИсторияСотрудников.Сотрудник КАК Сотрудник, МАКСИМУМ(КадроваяИсторияСотрудников.Период) КАК Период ПОМЕСТИТЬ ВТ_СрезПредпоследних ИЗ ВТ_СрезПоследних КАК ВТ_СрезПоследних ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.КадроваяИсторияСотрудников КАК КадроваяИсторияСотрудников ПО ВТ_СрезПоследних.Сотрудник = КадроваяИсторияСотрудников.Сотрудник И ВТ_СрезПоследних.Период > КадроваяИсторияСотрудников.Период СГРУППИРОВАТЬ ПО КадроваяИсторияСотрудников.Сотрудник ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ КадроваяИсторияСотрудников.Сотрудник КАК Сотрудник, ВЫБОР КОГДА НЕ ВТ_СрезПоследних.Сотрудник ЕСТЬ NULL ТОГДА КадроваяИсторияСотрудников.Подразделение ИНАЧЕ NULL КОНЕЦ КАК ПоследнееПодразделение, ВЫБОР КОГДА НЕ ВТ_СрезПоследних.Сотрудник ЕСТЬ NULL ТОГДА КадроваяИсторияСотрудников.Период ИНАЧЕ NULL КОНЕЦ КАК ПериодПоследнегоПодразделения, ВЫБОР КОГДА НЕ ВТ_СрезПредпоследних.Сотрудник ЕСТЬ NULL ТОГДА КадроваяИсторияСотрудников.Подразделение ИНАЧЕ NULL КОНЕЦ КАК ПредпослденееПодразделение, ВЫБОР КОГДА НЕ ВТ_СрезПредпоследних.Сотрудник ЕСТЬ NULL ТОГДА КадроваяИсторияСотрудников.Период ИНАЧЕ NULL КОНЕЦ КАК ПериодПредпоследнегоПодразделения ИЗ РегистрСведений.КадроваяИсторияСотрудников КАК КадроваяИсторияСотрудников ЛЕВОЕ СОЕДИНЕНИЕ ВТ_СрезПоследних КАК ВТ_СрезПоследних ПО (КадроваяИсторияСотрудников.Сотрудник = ВТ_СрезПоследних.Сотрудник) И (КадроваяИсторияСотрудников.Период = ВТ_СрезПоследних.Период) ЛЕВОЕ СОЕДИНЕНИЕ ВТ_СрезПредпоследних КАК ВТ_СрезПредпоследних ПО (КадроваяИсторияСотрудников.Сотрудник = ВТ_СрезПредпоследних.Сотрудник) И (КадроваяИсторияСотрудников.Период = ВТ_СрезПредпоследних.Период) ГДЕ НЕ(ВТ_СрезПоследних.Сотрудник ЕСТЬ NULL И ВТ_СрезПредпоследних.Сотрудник ЕСТЬ NULL) |
|||
9
dmt
23.08.18
✎
17:34
|
(7) вот полный код из ссылки в (4), плюсы - в простоте и универсальности
ВЫБРАТЬ ЦеныНоменклатуры.Период КАК Период, ЦеныНоменклатуры.Регистратор, ЦеныНоменклатуры.НомерСтроки, ЦеныНоменклатуры.Активность, ЦеныНоменклатуры.Номенклатура КАК Номенклатура, ЦеныНоменклатуры.ТипЦен КАК ТипЦен, ЦеныНоменклатуры.Качество КАК Качество, ЦеныНоменклатуры.Цена, ЦеныНоменклатуры.Валюта, ЦеныНоменклатуры.ЕдиницаИзмерения, ЦеныНоменклатуры.ЦенаВключаетНДС ИЗ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры ГДЕ ЦеныНоменклатуры.Период В (ВЫБРАТЬ ПЕРВЫЕ 2 РегистрВложенный.Период ИЗ РегистрСведений.ЦеныНоменклатуры КАК РегистрВложенный ГДЕ РегистрВложенный.Номенклатура = ЦеныНоменклатуры.Номенклатура И РегистрВложенный.ТипЦен = ЦеныНоменклатуры.ТипЦен И РегистрВложенный.Качество = ЦеныНоменклатуры.Качество УПОРЯДОЧИТЬ ПО РегистрВложенный.Период УБЫВ) УПОРЯДОЧИТЬ ПО Номенклатура, ТипЦен, Качество, Период |
|||
10
dmt
23.08.18
✎
17:35
|
Такого не знал, так что (0) - спасибо!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |