|
Быстрое получение последнего документа по дате в запросе
| ☑ |
0
ИС-2
naïve
19.02.15
✎
10:49
|
Функция Максимум() возвращает некорректные данные т.к работает по внутренним идентификатором, а не по дате.
Получение в начале последней даты и соединение потом по ней с основной таблице работает медленно.
Еще есть какие-то способы получить последний документ по какому-то полю (например, контрагент) во временной таблице?
|
|
1
Зеленый пень
19.02.15
✎
10:51
|
(0) "...последней даты и соединение потом по ней с основной таблице работает медленно. " - быстро оно работает.
|
|
2
Maxus43
19.02.15
✎
10:53
|
ничо не понял.
Выбрать Первые 1
Ссылка
Из Документ
Где Документ.Контаргент = &Контр
УПОРЯДОЧИТЬ ПО
ССылка Дата УБЫВ
|
|
3
DrZombi
гуру
19.02.15
✎
11:00
|
(2) +100500 :)
|
|
4
DrZombi
гуру
19.02.15
✎
11:00
|
+(0) Пиши через Временные таблицы
|
|
5
ИС-2
naïve
19.02.15
✎
11:11
|
(1) нет. В начале получаешь вложенным запрос крайние даты, а потом их соединяешь с основной таблицей. Это замедляет скорость + усложнение запроса
(2) и как сделать по группировкам, чтобы поместить в временную таблицу? Например,
ВЫБРАТЬ
ВзаиморасчетыСКонтрагентами.Сделка,
МАКСИМУМ(ВзаиморасчетыСКонтрагентами.Регистратор) КАК Регистратор
ИЗ
РегистрНакопления.ВзаиморасчетыСКонтрагентами КАК ВзаиморасчетыСКонтрагентами
СГРУППИРОВАТЬ ПО
ВзаиморасчетыСКонтрагентами.Сделка
|
|
6
Ёпрст
19.02.15
✎
11:13
|
(5) максимум по дате, пото мсоединение с этой табличкой
|
|
7
Зеленый пень
19.02.15
✎
13:13
|
(5) Как правило, бывают доп.условия.
И в таких случаях выгоднее собрать физ.таблицу после наложения всех отборов в ВТ, и дальше все соединения делать уже только с ней.
|
|