Как создать кросс-таблицу в запросе? #619886


#0 by ChAlex
Можно ли в запросе получить кросс-таблицу (ну или транспонировать таблицу). Кажется где-то в виде-курсе как-то попадалось на глаза элегантное решение создания кросс-таблицы путем соединения но вот никак не найду (когда не надо всегда под руками, а как понадобится - и где тот ящик..... :) .
#1 by Defender aka LINN
Нафига?
#2 by shuhard
если число колонок фиксированное, то N левых соединения с подзапросами
#3 by andrewks
а что ты понимаешь под кросс-таблицей?
#4 by МихаилМ
бесовщина если матрица неразряжена то можно расценить эту операцию как упаковку.операцию отимизации трафика. но как правило следствие непонимания использования СУБД. те путают получение и представление данных.
#5 by ChAlex
Мне нужно определить количество различных наборов параметров для некоторых объектов. Значения параметров хранятся в виде линейного списка: объект, параметр, значение. Соответственно мне нужно получить кросс-таблицу в строках которой объект, а в колонках значения параметров. Да сее можно получить обходом выборки, таблицей значений,ее сверткой и прочее. Но был какой-то хитрый финт в запросе, когда получалась крос-таблица . Возможно в видео и был вариант , но мне что-то кажется там использовалась агрегатная функция для получения эффекта (но могу ошибаться)
#6 by ChAlex
- перевести на русский было бы не плохо, особенно "если матрица неразряжена то можно расценить эту операцию как упаковку.операцию отимизации трафика." Вот при чем здесь упаковка и кросс-таблица? ...
#7 by ChAlex
+ - про трафик вообще - каким боком он соотносится с кросс-таблицей... ну потому что он красный?
#8 by YF
Можно выбором типа Выбор Когда параметр = 1 Тогда значение Иначе Null Конец КАК ПолеЗапроса1
#9 by YF
Естественно с группировкой по объекту
#10 by ChAlex
- Как сформировать в несколько этапов - не вопрос, меня терзает тот момент - что вроде был интересный способ транспонировать, который демонстрировал Гилев, вот только не могу найти где это было и точно как (типа МАКСИМУМ(ССЫЛКА) - и получался результат, что-то аналогичное типа поучения нумерации строк таблицы запроса). Хотя может Дежавю  и не было такого :)
#11 by МихаилМ
используйте скд. специально для таких случаем придуман механизм.
#12 by ChAlex
- СКД - не пойдет, ибо нужна потом обработка, а сформировать в таблицу значений или дерево - не получится, поскольку отчет придется тогда делать как таблица, а в этом случае ограничение на использование
#13 by МихаилМ
используйте скд как механизм создания кросс-таблицы если нужна пост обработка подсуте ее на вход опять же скд. очень удобный механизм.
#14 by YF
какие насколько этапов? запрос сразу нужную таблицу выдаст
#15 by ChAlex
- а вот это как подсунуть на вход, что бы получить постобработку? В результате мне нужно получить ну скажем просто количество РАЗЛИЧНЫХ комплектов или сами наборы РАЗЛИЧНЫХ комплектов параметров (для разных объектов комплекты могут повторяться). Нужна в итоге таблица. Что бы я не делал в СКД - если результат выгружается в таблицу - я не могу использовать механизм СКД, а результирующая таблица получается из отчета вида "Таблица" СКД. И как отсюда вывернуться? Изначально неизвестно количество колонок, поэтому неизвестно сколько их создавать. Поэтому сначала нужно получить количество колнок, а потом рисовать программно текст запроса, чтобы получить все значения. Разве не так?
#16 by МихаилМ
запрос выдает выборку, а не таблицу.
#17 by mishgan75
Если нужен только в виде отчета то в построителе задаешь ИзмерениеСтроки=Объект, ИзмерениеКолонки=Параметр
#18 by ChAlex
Ну если выдаст выборку - то выборку всех значений (кстати при этом ничего вообще городить не нужно, поскольку можно в ыборка выбрать все значения (параметр метода Выбрать). Для того, чтобы получить РАЗЛИЧНЫЕ наборы -  теперь это нужно загрузить в таблицу и таблицу свернуть по всем колонкам - тогда останутся только уникальные наборы параметров. Тоже самое хотелось сделать запросом. - если б нужен был вывод в отчет - вопросов бы не было (ДА СКД ЭТО ДЕЛАЕТ). Мне нужна как промежуточный результат в обработке
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С