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