|
Срез "предпоследних" | ☑ | ||
---|---|---|---|---|
0
Andrey1957
09.08.11
✎
05:20
|
Уважаемые коллеги!
Встал перед проблемой поиска во вложенном запросе предпоследних значений в Регистре сведений. Умом понимаю, что во вложенном запросе для каждой записи нужно взять период на секунду меньший, чем период в Срезе последних. Но как все это скомпоновать в рамках одного запроса? Кто-нибудь решал подобную проблему или подскажет где она решена в рамках типовых отчетов? Заранее спасибо. |
|||
1
guitar_player
09.08.11
✎
05:30
|
В СКД можно соединением с указанием параметров.
В запросе насколько я понял - нужно получить срез последних, потом найти период из этого регистра по измерениям, чтобы он был меньше периода из среза последних и был максимальным. потом по этим измерениям и найденному периоду получить запись |
|||
2
golden-pack
09.08.11
✎
05:42
|
Книга знаний: Срез последних на каждую дату в запросе
Каждый одинэсник должен уметь написать срез последних запроссом |
|||
3
Andrey1957
09.08.11
✎
06:09
|
(2) golden-pack, речь не о выборке среза ПОСЛЕДНИХ, а именно ПРЕДПОСЛЕДНИХ значений из периодического регистра сведений. Грубо говоря, в том же регистре КурсыВалют понадобилось бы выбрать последнее и ПРЕДПОСЛЕДНЕЕ значение по каждой валюте. Как это реализовать одним запросом? В (1) правильно порядок указан. ЧТО делать я понимаю, не понимаю только КАК? И пока нигде примеров не нашел.
|
|||
4
golden-pack
09.08.11
✎
06:26
|
(3) я ошибся
|
|||
5
kuromanlich
09.08.11
✎
06:28
|
(0) я в свое время плюнул и вне запроса ручками написал.
|
|||
6
guitar_player
09.08.11
✎
06:35
|
(3) сейчас накидаю что нить подобное на каком нибудь регистре
|
|||
7
guitar_player
09.08.11
✎
06:41
|
ВЫБРАТЬ
РаботникиОрганизацийСрезПоследних.Сотрудник КАК Сотрудник, МАКСИМУМ(РаботникиОрганизаций.Период) КАК Период ПОМЕСТИТЬ ПериодПредпоследнегоИзменения ИЗ РегистрСведений.РаботникиОрганизаций.СрезПоследних(, ) КАК РаботникиОрганизацийСрезПоследних ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций ПО РаботникиОрганизацийСрезПоследних.Сотрудник = РаботникиОрганизаций.Сотрудник И РаботникиОрганизацийСрезПоследних.Период > РаботникиОрганизаций.Период СГРУППИРОВАТЬ ПО РаботникиОрганизацийСрезПоследних.Сотрудник ИНДЕКСИРОВАТЬ ПО Период, Сотрудник ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ПериодПредпоследнегоИзменения.Сотрудник, ПредпоследнееЗначение.ПодразделениеОрганизации, ПредпоследнееЗначение.Должность ИЗ ПериодПредпоследнегоИзменения КАК ПериодПредпоследнегоИзменения ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций КАК ПредпоследнееЗначение ПО ПериодПредпоследнегоИзменения.Сотрудник = ПредпоследнееЗначение.Сотрудник И ПериодПредпоследнегоИзменения.Период = ПредпоследнееЗначение.Период |
|||
8
SeraFim
09.08.11
✎
06:42
|
(0) "нужно взять период на секунду меньший, чем период в Срезе последних" - это уже будет не СрезПредпоследних, а неизвестно что.
я бы сделал, как в (1) |
|||
9
guitar_player
09.08.11
✎
06:42
|
Если регистры большие в начале советую максимально урезать их (чтобы в них были только нужные значения), поместить их в какую нибудь временную и дальше с ними работать
|
|||
10
guitar_player
09.08.11
✎
06:45
|
(5) у нас есть регистры в которых по несколько милионов записей, пока это сработает юзер может чай заварить и выпить... а так да... тоже решение, только зависит от обстоятелься
|
|||
11
Andrey1957
09.08.11
✎
06:59
|
(7) guitar_player, Спасибо! Уразумел, КАК делать. Тема закрыта!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |