|
Объединить все документы, взяв только ранний из каждого типа. Как? | ☑ | ||
---|---|---|---|---|
0
bolobol
13.02.18
✎
08:00
|
Доброе утро!
Как объединить все документы, взяв только ранний из каждого типа? Как видно из примера ниже - ПЕРВЫЕ 1 и ГДЕ присутствует в каждом запросе, а УПОРЯДОЧИТЬ - только в конце общего. Из чего следует полагать, что именно так объединить по одному самому раннему документу каждого типа не получится, упорядочивание пойдёт на итог объединения таблиц. Что-то возможно или только временные таблицы, подзапросы? Пример: ВЫБРАТЬ ПЕРВЫЕ 1 АккредитивПереданный.Ссылка, АккредитивПереданный.Дата, АккредитивПереданный.МоментВремени ИЗ Документ.АккредитивПереданный КАК АккредитивПереданный ГДЕ ИСТИНА ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ПЕРВЫЕ 1 АктуализацияБюджетов.Ссылка, АктуализацияБюджетов.Дата, АктуализацияБюджетов.МоментВремени ИЗ Документ.АктуализацияБюджетов КАК АктуализацияБюджетов ГДЕ ИСТИНА УПОРЯДОЧИТЬ ПО Дата, МоментВремени |
|||
1
1Сергей
13.02.18
✎
08:07
|
Вижу пока два варианта решения:
1. Подзапросы 2. Временные таблицы |
|||
2
catena
13.02.18
✎
08:08
|
А конструкция ГДЕ ИСТИНА какую смысловую нагрузку несет?
|
|||
3
bolobol
13.02.18
✎
08:18
|
(2) Показывает, что ГДЕ - во всех отдельных запросах.
|
|||
4
bolobol
13.02.18
✎
08:23
|
Ах, да, совсем забыл: Что выполняется ранее УПОРЯДОЧИТЬ или ВЫБРАТЬ ПЕРВЫЕ 1 в одном запросе без ТВ и подзапросов?
|
|||
5
echo77
13.02.18
✎
08:23
|
(1) Подзапросы - да, вместе с конструкцией Выбрать Первые упорядочивание будет работать, а почему второй вариант Временные таблицы - чем они помогут?
|
|||
6
echo77
13.02.18
✎
08:24
|
(4) Упорядочивание выполняется первым
|
|||
7
bolobol
13.02.18
✎
08:25
|
(5) Хм... не подумал об этом)
|
|||
8
Малыш Джон
13.02.18
✎
08:36
|
(5) во временных таблицах УПОРЯДОЧИТЬ с конструкцией ВЫБРАТЬ ПЕРВЫЕ также работает
|
|||
9
1Сергей
13.02.18
✎
08:38
|
(5)
|
|||
10
bolobol
13.02.18
✎
08:44
|
Про ВТ, судя по всему, получается, что сначала скопипастится весь список документов в ВТ, отберётся один, затем ВТ будет удалена. Т.е. - вопрос лишь в том, на кой её было создавать, отчего подзапрос выглядит перспективнее.
|
|||
11
Гипервизор
13.02.18
✎
08:47
|
(9) И давно сортировка в ВТ реализована?
|
|||
12
Amfiaray
13.02.18
✎
08:47
|
Может так?
ТекстЗапроса = ""; Для Каждого Документ Из Метаданные.Документы Цикл ТекстЗапроса = ТекстЗапроса+" |ВЫБРАТЬ ПЕРВЫЕ 1 |"+Документ.Имя+".Ссылка |ПОМЕСТИТЬ ВТ_"+Документ.Имя+" |ИЗ | Документ."+Документ.Имя+" КАК "+Документ.Имя+" | |УПОРЯДОЧИТЬ ПО | "+Документ.Имя+".Дата |; | |////////////////////////////////////////////////////////////////////////////////"; КонецЦикла; Первый = Истина; Для Каждого Документ Из Метаданные.Документы Цикл Если Первый Тогда ТекстЗапроса = ТекстЗапроса+" |ВЫБРАТЬ | ВТ_"+Документ.Имя+".Ссылка КАК Документ |ИЗ | ВТ_"+Документ.Имя+" КАК ВТ_"+Документ.Имя+" |"; Первый = Ложь; Иначе ТекстЗапроса = ТекстЗапроса+" |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | ВТ_"+Документ.Имя+".Ссылка |ИЗ | ВТ_"+Документ.Имя+" КАК ВТ_"+Документ.Имя+" |"; КонецЕсли; КонецЦикла; |
|||
13
bolobol
13.02.18
✎
08:50
|
(11) Скорее - конструктор запросов её стал поддерживать сравнительно не сразу, а чтоб не было сортировки вовсе...
|
|||
14
bolobol
13.02.18
✎
08:55
|
(12) Может. При всей ненависти к подзапросам, почему-то кажется, что в данной задаче им самое прямое назначение. Если правильно понимаю - первый индекс возьмётся... Вот только - работает ли индекс, когда упорядочивание по ДАТА, МОМЕНТВРЕМЕНИ ?
|
|||
15
1Сергей
13.02.18
✎
08:57
|
(11) вроде, с самого начала
|
|||
16
catena
13.02.18
✎
09:59
|
(11)Вы путаете с итогами
|
|||
17
Гипервизор
13.02.18
✎
10:04
|
(15)(16) Ага, мой косяк.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |