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