![]() |
![]() |
![]() |
|
Сортировка результата запроса в соответствии с определенным массивом | ☑ | ||
---|---|---|---|---|
0
PiotrLoginov
25.04.13
✎
13:34
|
Здравствуйте всем. Может кто поделиться хитростью, как отсортировать результат запроса в соответствии с порядком элементов в некотором массиве, собственно использовавшемся для отбора в запросе. Вот код:
ЗапросШаблона.Текст = "ВЫБРАТЬ | Номенклатура.Ссылка КАК Номенклатура |ИЗ | Справочник.Номенклатура КАК Номенклатура |ГДЕ | Номенклатура.Ссылка В(&КШаблону) | И (Номенклатура.Родитель В (&МассивОтбора) | ИЛИ Номенклатура.Ссылка В (&Группы))" КШаблону и МассивОтбора - это массивы со ссылками на элементы и группы номенклатуры. Надо чтобы в итоге строки в результате запроса следовали в том же порядке, как в МассивОтбора. Заранее огромное спасибо за подсказку. |
|||
1
PiotrLoginov
25.04.13
✎
13:35
|
*поделится
|
|||
2
RomaH
naïve
25.04.13
✎
13:38
|
массив в ТЗ
ТЗ во временную таблицу |
|||
3
PiotrLoginov
25.04.13
✎
14:12
|
попробовал (Группы - массив, по которому надо сортировать):
ЗапросШаблона.Текст = "ВЫБРАТЬ | Номенклатура.Ссылка |ПОМЕСТИТЬ ВТ_Отбор |ИЗ | Справочник.Номенклатура КАК Номенклатура |ГДЕ | (Номенклатура.Родитель В (&Группы) | ИЛИ Номенклатура.Ссылка В (&Группы)) |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ВТ_Отбор.Ссылка КАК Номенклатура |ИЗ | ВТ_Отбор КАК ВТ_Отбор |ГДЕ | ВТ_Отбор.Ссылка В(&КШаблону)"; Не помогло :( |
|||
4
PiotrLoginov
25.04.13
✎
14:20
|
Пробовал и наоборот - сначала ВТ на основании КШаблону, а потом из нее выбирать строки, фильтруя по Группы. Один фиг, порядок перемешивается.
В обшем,задача есть: имеем два массива (Группы и КШаблону), надо выбрать их пересечение так, чтобы сортировка результата основывалась на сортировке Группы. Задача осложняется тем, что Группы выбирают не только номенклатуру, где "Ссылка В &Группы", но и где "Ссылка.Родитель В &Группы" . Попробую помучать консоль запросов. Упрощу задачу для тестовых целей... Раньше с такой сортировкой не сталкивался, надо осваивать. |
|||
5
PiotrLoginov
25.04.13
✎
14:59
|
Так. Выяснилось, что если, имея определенным образом отсортированный массив со ссылками на группы и элементы номенклатуры(ГруппаКастрюль, Сковорода1, ГруппаЧайников, Сковорода2), составить более простой запрос
ЗапросШаблона.Текст = "ВЫБРАТЬ | Номенклатура.Ссылка |ИЗ | Справочник.Номенклатура КАК Номенклатура |ГДЕ | Номенклатура.Родитель В (&Группы)"; ... то мы получим ТЗ со ссылками на разные кастрюли и чейники в соответствии с порядком в Группы, но без сковород. А если написать ЗапросШаблона.Текст = "ВЫБРАТЬ | Номенклатура.Ссылка |ИЗ | Справочник.Номенклатура КАК Номенклатура |ГДЕ | (Номенклатура.Родитель В (&Группы) | ИЛИ Номенклатура.Ссылка В (&Группы))"; ... то получим ТЗ почему-то имеющую порядок лиь отдаленно напоминающий сортировку в Группы. Если есть кто-то, кто хорошо разбирается в сортировке результатов запросов, откликнитесь, плиз. |
|||
6
PiotrLoginov
25.04.13
✎
15:44
|
Закончил возню. Перебрал обычным циклом Группы и сформировал из них новый массив, где каждый родитель стал списком своих дочерних элементов. Получившийся массив использовал для создания ВТ. Тема закрыта.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |