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