|
Свернуть таблицу значений ... | ☑ | ||
---|---|---|---|---|
0
lamme
17.10.16
✎
17:10
|
Есть запрос
"ВЫБРАТЬ | КатегорииОбъектов.Категория.Марка КАК Марка, | КатегорииОбъектов.Категория.Модель КАК Модель, | КатегорииОбъектов.Категория.Кузов КАК Кузов, | КатегорииОбъектов.Категория.Двигатель КАК Двигатель |ИЗ | РегистрСведений.КатегорииОбъектов КАК КатегорииОбъектов |ГДЕ | КатегорииОбъектов.Объект = &Объект | |СГРУППИРОВАТЬ ПО | КатегорииОбъектов.Категория.Марка, | КатегорииОбъектов.Категория.Модель, | КатегорииОбъектов.Категория.Кузов, | КатегорииОбъектов.Категория.Двигатель | |УПОРЯДОЧИТЬ ПО | Марка, | Модель, | Кузов, | Двигатель"; В итоге получаем такую вещь http://clip2net.com/s/3DnfQaL Как можно свернуть все это так чтобы - на примере 2х первых строк Строка1 тойота - королла - АЕ100, АЕ110 - 5AF те чтобы группировка шла по колонкам (Кузов-Двигатель) (шланг какой-ниб может подходить на разные марки-модели авто-поэтому такая группировка нужна) |
|||
1
lamme
17.10.16
✎
17:12
|
чтобы в итоге примерно так было
http://clip2net.com/s/3DnhLjY |
|||
2
Nolan
17.10.16
✎
17:16
|
программно после запроса. или нужно именно в запросе?
|
|||
3
YAGolova
17.10.16
✎
17:18
|
(0) В запросе не выйдет. Делай на СКД
|
|||
4
lamme
17.10.16
✎
17:19
|
(2)
не важно где важен результат Можно вщять эту ТЗ - и сделать с ней чего нибудь - чтобы получилось готовое. (3) как ? |
|||
5
lamme
17.10.16
✎
17:21
|
(2)
вот я и пытаюсь после запроса сделать. идей нет. сделал ИтМаркаТЗ = запрос.Выполнить().Выгрузить(); ИтМодельТЗ = запрос.Выполнить().Выгрузить(); ИтКузовТЗ = запрос.Выполнить().Выгрузить(); ИтДВСТЗ = запрос.Выполнить().Выгрузить(); ИтМаркаТЗ.Свернуть("Марка",""); ИтМодельТЗ.Свернуть("Марка,Модель",""); ИтКузовТЗ.Свернуть("Марка,Модель,Кузов",""); ИтДВСТЗ.Свернуть("Марка,Модель,Кузов,Двигатель",""); для каждого знМарка из ИтМаркаТЗ цикл ИтМарка=сокрлп(знМарка.Марка); ОтборМодель = Новый Структура(); ОтборМодель.Вставить("Марка",сокрлп(знМарка.Марка)); СтрокиМодель = ИтМодельТЗ.НайтиСтроки(ОтборМодель); туплю ... чую - что вроде не туда ушел |
|||
6
wertyu
17.10.16
✎
17:21
|
(4) можно просто выгрузить в таблицу, свернуть по первым двум, цикл по ней, поиск по структуре и заполнить новую таблицу, это самый лобовой способ
|
|||
7
lamme
17.10.16
✎
17:22
|
(6)
кстати да. заполнить новую таблицу. а я пытаюсь в старой все сделать. тут и затуп.. лана - пошел ковырять в лоб .. |
|||
8
Serg_1960
17.10.16
✎
17:24
|
Ты забыл про обход по группировкам. Ваш кэп :)
|
|||
9
YAGolova
17.10.16
✎
17:25
|
(4) Делаешь схему компоновки, засовываешь туда свой запрос, в настройках схемы группируешь как надо, а те поля которые надо склеить описываешь в ресурсах как вычислитьвыражениесгруппировкоймассив. Выполняешь схему, помещаешь ее в ТЗ, Профит!
|
|||
10
lamme
17.10.16
✎
17:26
|
(9)
сложно |
|||
11
lamme
17.10.16
✎
17:26
|
(8)
помню. в итоге тот же перебор строк запроса и как там в итоге через зпт сделать все .. |
|||
12
wertyu
17.10.16
✎
17:28
|
(10) зато дубли не надо искать как в (6) и в (8)
|
|||
13
YAGolova
17.10.16
✎
17:29
|
(10) по моему проще чем описывать кучу структур и циклами бегать с поиском.... Но на вкус и цвет канешно)
|
|||
14
Serg_1960
17.10.16
✎
17:33
|
(11) Новая ТЗ и обход по уровням выборки. На первом уровне - добавляешь строку в ТЗ; на остальных уровнях - добавляешь к значению в соответствующие поля.
|
|||
15
arsik
гуру
17.10.16
✎
17:33
|
(0) Сделай через итоги в запросе. Результатом будет дерево.
|
|||
16
Serg_1960
17.10.16
✎
17:37
|
Не принципиально. Тот-же обход результата с накоплением данных - автору нужно "через запятую" :)
|
|||
17
lamme
17.10.16
✎
17:40
|
(15)
не понял |
|||
18
Serg_1960
17.10.16
✎
17:46
|
Кстати, фраза "через запятую" напомнила тему, где автор, из спортивного интереса, сделал попытку реализовать функцию СКД "СоединениеСтрок" в запросе:
http://catalog.mista.ru/public/200275/ |
|||
19
lamme
17.10.16
✎
17:48
|
(18)
круто. только зачем ... |
|||
20
craxx
17.10.16
✎
17:52
|
(0) СКД рулит. программно это тягомотно весьма, и на больших данных тупить будет
|
|||
21
Сияющий Асинхраль
17.10.16
✎
18:25
|
Вполне катит вариант (8)
|
|||
22
Туц
17.10.16
✎
18:26
|
(0) Вроде можно. Сейчас поищу.
|
|||
23
iceman2112
17.10.16
✎
18:30
|
нарк**аны.
ИТОГИ, СКД |
|||
24
Сияющий Асинхраль
17.10.16
✎
18:32
|
(23) Кстати интересно, про Итоги понятно, а вот как СКД здесь поможет, просто интересно? Расскажи поподробней...
|
|||
25
iceman2112
17.10.16
✎
18:46
|
ВычислитьВыражениеСГруппировкойМассив
|
|||
26
Туц
17.10.16
✎
18:46
|
(0) Вот как можно сделать в скульной студии.
SELECT [марка] ,STUFF(( SELECT ', ' + кузов FROM машины WHERE (марка = Results.марка) FOR XML PATH(''),TYPE).value('(./text())[1]','VARCHAR(MAX)') ,1,2,'') AS кузовы ,STUFF(( SELECT ', ' + двигатель FROM машины WHERE (марка = Results.марка) FOR XML PATH(''),TYPE).value('(./text())[1]','VARCHAR(MAX)') ,1,2,'') AS двигатели FROM машины Results GROUP BY [марка] |
|||
27
Туц
17.10.16
✎
18:55
|
(0) Ещё вариант. Если набор кузовов или двс невелик, скажем не больше 10 то можно пронумеровать и транспонировать.
|
|||
28
Fram
17.10.16
✎
19:13
|
СКД - функция Массив в ресурсах
|
|||
29
Fram
17.10.16
✎
19:18
|
(26) а что, уже стандартом стало давать имена на кириллице таблицам и колонкам в скуле?
|
|||
30
Mauser
17.10.16
✎
20:19
|
(26) Яркий пример 1сного интегратора.
По верхам знаний с разных областей и полученный кадавр еле шевелится. COALESCE |
|||
31
Туц
17.10.16
✎
20:51
|
(29,30) Я дал подсказку. Желаете вылизать - дерзайте.
|
|||
32
lamme
17.10.16
✎
22:24
|
прочитал
понял - что я нифига не понял пощел делать тупо в лоб |
|||
33
lamme
17.10.16
✎
22:44
|
сделал в лоб.
через отборы по тз |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |