|
1С как сравнить последнюю и предпоследнюю запись в запросе? | ☑ | ||
---|---|---|---|---|
0
LopesLeonid
03.09.12
✎
15:43
|
Как сравнить последнюю и предпоследнюю запись в запросе?
например Имя | Число | ----|-------| aaa | 20 | aaa | 7 | aaa | 4 | aaa | 6 | ccc | 100 | ccc | 9 | ccc | 3 | ccc | 8 | результат запроса Имя | Число | ----|-------| aaa | 4 | aaa | 6 | ccc | 3 | ccc | 8 | т.е. сравниваются 2 предпоследнии записи и выводиться только те где последняя больше предпоследней |
|||
1
Maxus43
03.09.12
✎
15:44
|
в запросе? нафиг, не парься лучше... обработай в коде
|
|||
2
GLazNik
03.09.12
✎
15:45
|
а "последняя" запись как определяется?
|
|||
3
Dionis Sergeevich
03.09.12
✎
15:46
|
Предпоследний Новый СТруктура;
Предпоследний.Добавить("ааа"); ... Пока результат.Следующий() Цикл Предпоследний.ааа = результат.ааа ... КОнецЦикла Если Результат.ааа <> Предпоследний.ааа |
|||
4
Dionis Sergeevich
03.09.12
✎
15:46
|
прогоняй все записи, что остается то. И кешируй предпоследний результат. как все прогонишь - сравнивай последний с предпоследним
|
|||
5
LopesLeonid
03.09.12
✎
15:48
|
(1) в коде то понятно что можно
а хочется в запросе |
|||
6
Reset
03.09.12
✎
15:49
|
(3) Крутой метод для получения последней записи, мне понравилось. И с использованием технологий, кэшированием, все дела.
|
|||
7
Dionis Sergeevich
03.09.12
✎
15:50
|
(6) какая задача такое и решение =)
|
|||
8
Ногаминебить
03.09.12
✎
15:51
|
Отсортировать в обратном порядке и брать первую и вторую?
|
|||
9
Maxus43
03.09.12
✎
15:52
|
(8) не прокатит, "имена" разные
|
|||
10
Ненавижу 1С
гуру
03.09.12
✎
15:54
|
а чем определяется "последнее" и "предпоследнее", только не говори, что оно последним выходит в таблице
|
|||
11
6tuf
03.09.12
✎
15:59
|
(0) задача не сформулирована, ничего не понятно
|
|||
12
6tuf
03.09.12
✎
16:03
|
(0) если понимать задачу буквально то решение такое : 1 выборка - нумеруешь записи, 2 выборка - в этих записях ищешь самое большое значение индекса, 3 выборка - убираешь самое большое значение и оставляешь предпоследнее, дальше делаешь с ними что хочешь
|
|||
13
МишКа
03.09.12
✎
16:23
|
Наверно ТС имел ввиду последнее в группе.
|
|||
14
МишКа
03.09.12
✎
16:24
|
Задача решается, хотя решение будет громоздким. Ключ к решению - пронумеровать по порядку записи в первой таблице.
|
|||
15
Ненавижу 1С
гуру
03.09.12
✎
16:25
|
(14) что есть "порядок" в данном случае?
|
|||
16
МишКа
03.09.12
✎
16:27
|
ТС привел абстрактный пример. Наверняка какой-то порядок у него там есть.
|
|||
17
LopesLeonid
03.09.12
✎
16:50
|
(15) порядок есть дата
|
|||
18
Ненавижу 1С
гуру
03.09.12
✎
16:52
|
(17) да вроде как не видно
а так находишь для каждого имени максимум, потом максимум исключая этот максимум (это предпоследнее) находим значения этих строк |
|||
19
Ненавижу 1С
гуру
03.09.12
✎
16:52
|
+(18) запросом конечно
|
|||
20
KAO111
03.09.12
✎
17:06
|
если есть порядок то проблем нет
Предпоследняя запись выбрать первые 2 Имя,Число,Порядок поместить П2 из Таблица упорядочить по Порядок убыв ; Выбрать первые 1 Имя,Число,Порядок Из П2 упорядочить по Порядок |
|||
21
KAO111
03.09.12
✎
17:10
|
(20) не прав, совсем не то
|
|||
22
Анцеранана
03.09.12
✎
17:15
|
(0) Не то? (просто адаптированное под мой регистр)
ВЫБРАТЬ ИзмененияМенеджераКонтрагента.Период КАК Период, ИзмененияМенеджераКонтрагента.Менеджер КАК Менеджер, ГДЕ ИзмененияМенеджераКонтрагента.Период В (ВЫБРАТЬ ПЕРВЫЕ 2 ИзмененияМенеджераКонтрагента2.Период ИЗ РегистрСведений.ИзмененияМенеджераКонтрагента КАК ИзмененияМенеджераКонтрагента2 ГДЕ ИзмененияМенеджераКонтрагента2.КонтрагентДоговор = ИзмененияМенеджераКонтрагента.КонтрагентДоговор УПОРЯДОЧИТЬ ПО ИзмененияМенеджераКонтрагента2.Период УБЫВ) коррелированный запрос - задача получения н последних записей регистра сведений... |
|||
23
Анцеранана
03.09.12
✎
17:16
|
(22) Пропустил
ИЗ РегистрСведений.ИзмененияМенеджераКонтрагента КАК ИзмененияМенеджераКонтрагента перед ГДЕ |
|||
24
LopesLeonid
05.09.12
✎
10:40
|
я все уже руками сделал
точнее не запросом) всем спасибо |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |