|
Получить срез последних 2 записей.
|
Я
|
|
Kamich 25.05.20 - 20:21 | Подскажите плиз...
Задача такая, необходимо ЗАПРОСОМ получить последние 2 записи по регистру сведений с одним измерений.
Должно получиться что-то вроде этого:
Товар | Класс предпоследний | Класс последний |
RomanYS 1 - 25.05.20 - 20:28 | ( 0) А класс предпоследний и последний могут совпадать? |
Kamich 2 - 25.05.20 - 20:30 | |
Kamich 3 - 25.05.20 - 20:31 | ( 2) Хотя по логике, может и не совпадать. Но кто его знает кто будет "завтра трогать код". |
RomanYS 4 - 25.05.20 - 20:38 | может не оптимально, но работает
ВЫБРАТЬ
СрезПоследних.ФизЛицо,
СрезПоследних.Фамилия,
СрезПредПоследних.Фамилия КАК ФамилияПред
ИЗ
РегистрСведений.ФИОФизЛиц.СрезПоследних КАК СрезПоследних
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ФИОФизЛиц.СрезПоследних(
,
НЕ (ФизЛицо, Период) В
(ВЫБРАТЬ
СрезПоследних.ФизЛицо,
СрезПоследних.Период
ИЗ
РегистрСведений.ФИОФизЛиц.СрезПоследних КАК СрезПоследних)) КАК СрезПредПоследних
ПО СрезПоследних.ФизЛицо = СрезПредПоследних.ФизЛицо |
Kamich 5 - 25.05.20 - 20:41 | ( 4) Вариант интересный, но каково будет если имеется более 10 000 товаров... |
RomanYS 6 - 25.05.20 - 20:53 | ( 5) попробуй. Не факт, что коррелированный запрос или двойное соединение с живой таблицей по максимум(период) будет оптимальнее |
Kamich 7 - 25.05.20 - 21:09 | ( 6) Попробовал, но выдаёт одинаковую информацию( т.е. выдаёт в двух случаях последние данные) |
Kamich 8 - 25.05.20 - 21:13 | ( 4) Выполнил запрос, но не сработало... |
Kamich 9 - 25.05.20 - 21:22 | Есть варианты?
|
Ненавижу 1С 10 - 25.05.20 - 21:31 | Вот тут написано как модифицировать регистр чтобы легко получать любые срезы
|
Ботаник Гарден Меран 11 - 25.05.20 - 21:48 | На партнерке давно было года три назад. Использую.
// срез последних двух
ВЫБРАТЬ *
ИЗ РегистрСведений.КурсыВалют Курсы
ГДЕ Курсы.Период < &Дата
и Курсы.Период в (
ВЫБРАТЬ ПЕРВЫЕ 2 К.Период
ИЗ РегистрСведений.КурсыВалют К
ГДЕ К.Период < &Дата и К.Валюта = Курсы.Валюта
УПОРЯДОЧИТЬ ПО К.Период УБЫВ
) |
RomanYS 12 - 25.05.20 - 21:50 | ( 7) Значит последнее значение совпадает с предпоследним |
RomanYS 13 - 25.05.20 - 21:51 | +( 12) или запрос адаптировал неправильно. "НЕ" не потерял? |
RomanYS 14 - 25.05.20 - 21:52 | ( 11) Вот он - коррелированный запрос |
Kamich 15 - 25.05.20 - 22:00 | ( 12) Значения разные...
( 13) "НЕ" не потерял... |
RomanYS 16 - 25.05.20 - 22:01 | ( 15) запрос покажи и результат желательно |
Kamich 17 - 25.05.20 - 22:08 | ( 16)
ВЫБРАТЬ
ПоследниеПоказатели.Товар КАК Товар,
ПоследниеПоказатели.Период КАК ПоследнийПериод,
ПоследниеПоказатели.КлассТовара КАК ПоследнийКлассТовара,
ПредПоследниеПоказатели.Период КАК ПредПоследнийПериод,
ПредПоследниеПоказатели.КлассТовара КАК ПредПоследнийКлассТовара
ИЗ
РегистрСведений.ПериодическиеПараметрыТовара.СрезПоследних КАК ПоследниеПоказатели
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПериодическиеПараметрыТовара.СрезПоследних(
,
НЕ (Период, Товар) В
(ВЫБРАТЬ
ПериодическиеПараметрыТовара.Товар,
ПериодическиеПараметрыТовара.Период
ИЗ
РегистрСведений.ПериодическиеПараметрыТовара.СрезПоследних КАК ПериодическиеПараметрыТовара)) КАК ПредПоследниеПоказатели
ПО ПоследниеПоказатели.Товар = ПредПоследниеПоказатели.Товар |
Kamich 18 - 25.05.20 - 22:11 | |
RomanYS 19 - 25.05.20 - 22:12 | ( 17) (Период, Товар) идут в другом порядке в условии |
Kamich 20 - 25.05.20 - 22:13 | |
Kamich 21 - 25.05.20 - 22:13 | |
RomanYS 22 - 25.05.20 - 22:14 | ( 21) по скорости то норм? |
Kamich 23 - 25.05.20 - 22:15 | ( 22) 16 000 строк за 0,8 секунд. |
RomanYS 24 - 25.05.20 - 22:17 | ( 23) норм, а ( 11) не пробовал? |
Kamich 25 - 25.05.20 - 22:17 | ( 19) С чем связанно этот порядок? Раз е тут не соблюдается условие "И" ? |
RomanYS 26 - 25.05.20 - 22:18 | ( 25) Проверяется совпадение пары (набора). Порядок конечно важен |
Kamich 27 - 25.05.20 - 22:19 | |
Kamich 28 - 25.05.20 - 22:20 | ( 24) Попробовал отбирает действительно 2 последних от даты запроса. |
Kamich 29 - 25.05.20 - 22:21 | но скажем так мне желательно получить это одной строкой а двум записям. Дабы исключить дальнейшую дообработку.
|
RomanYS 30 - 25.05.20 - 22:22 | ( 28) это понятно:) Вопрос про время выполнения, интересно насколько коррелированные запросы могут применяться на реальных задачах Рекламное место пустует |
Kamich 31 - 25.05.20 - 22:23 | ( 30) Разница тем и этим в 1,6 секунд. Первый вариант быстрее. |
RomanYS 32 - 25.05.20 - 22:28 | ( 31) Спасибо. Медленнее заметно. Но если нужно будет, например 5 последних, то вариант уже будет вероятно оптимальным. |
Kamich 33 - 25.05.20 - 22:32 | ( 32) Согласен.
и ещё если. Если в первый запрос, добавить дата запроса, то всё, не работает корректно. |
RomanYS 34 - 25.05.20 - 22:35 | (33) >> Если в первый запрос, добавить дата запроса
Должно работать, параметр нужно в 3х местах прописать |
Kamich 35 - 26.05.20 - 07:24 | (34) Соррян, указал в двух местах(
"Засыпал")
Огромное спасибо! |