0
wizards
17.10.17
✎
13:54
|
Добрый день.
Надо объединить 2 выборки данных в запросе с разной сортировкой.
Пример для наглядности (реальный пример намного сложнее, для упрощения приводить не буду)
ВЫБРАТЬ
РеализацияТоваровУслуг.Ссылка,
РеализацияТоваровУслуг.Дивизион
ИЗ
Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
ГДЕ
РеализацияТоваровУслуг.Контрагент = &Контрагент
УПОРЯДОЧИТЬ ПО
РеализацияТоваровУслуг.Дата,
Дивизион,
РеализацияТоваровУслуг.ДатаОтгрузки
;
//////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
РеализацияТоваровУслуг.Ссылка,
РеализацияТоваровУслуг.Дивизион
ИЗ
Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
ГДЕ
РеализацияТоваровУслуг.Контрагент = &Контрагент1
УПОРЯДОЧИТЬ ПО
РеализацияТоваровУслуг.Дата,
РеализацияТоваровУслуг.ДатаОтгрузки
Данные в 1 запросе должны быть упорядочены по дате, дивизиону (число) и дате отгрузки, во 2 запросе - только по дате и дате отгрузки. В конечном итоге нужно получить объединение выборок с сортировкой по дате и дате отгрузки, но при этом чтобы сортировка 1 запроса по дивизиону "не слетела". Насколько я понимаю, это невозможно, думал о подстановке во 2 запрос (где сортировка по дивизиону не используется) случайного числа как дивизиона, но как генерировать случайное число для каждой строки выборки?
|
|
2
azernot
17.10.17
✎
14:06
|
ЯННП.
1. Сортировать надо на уровне выше (т.е. обединение должно быть во вложенном запросе).
2. Нужно определиться как данные второго запроса в объединении должны располагаться по отношению к данным первого. Они должны быть ДО или ПОСЛЕ? Например, во втором запросе вместо дивизиона можно явно указать -10000000, или наоборот 9999999999999999. Т.е. данные второго запроса будут сортированы также по дивизиону, но с заведомо маленьким или огромным значением.
|
|
4
azernot
17.10.17
✎
14:20
|
> должны по дивизиону сортироваться в произвольном порядке
Это как? Что значит в произвольном порядке? А почему бы не назвать явное указание дивизиона произвольным порядком?
Иди почему бы тогда не отсортировать собственно по реальному дивизиону и назвать это произвольным порядком?
Мне кажется вы не очень хорошо понимаете, чего хотите.
|
|