SQL устанавливает имена столбцов из другого запроса - PullRequest
1 голос
/ 02 марта 2009

Я использую MS Reporting Services для отображения некоторых данных из базы данных Oracle. Я хочу назвать столбцы в моем операторе выбора со значениями из другого оператора выбора. Возможно ли это?

Как вместо

Select Column1 As 'Test' From Table1

Могу ли я сделать что-то вроде

Select Column1 As (Select column2 from Table2 where Value = 1) From Table1

Ответы [ 3 ]

2 голосов
/ 02 марта 2009

Я бы подумал, что вам придется запрашивать отдельно, а затем формировать запрос динамически. Интересно узнать, есть ли другой ответ.

1 голос
/ 02 марта 2009

Вы можете запросить все необходимые имена столбцов в отдельном наборе данных отчета, создать скрытый многозначный параметр отчета vColumns, установить набор данных со столбцами в качестве значений по умолчанию для параметра и использовать его в качестве строкового массива:
Параметры! VColumns (0) .Value - будет первым столбцом и т. Д. Таким образом, вы можете использовать их в качестве параметров запроса.

См. Урок 4. Добавление многозначного параметра

1 голос
/ 02 марта 2009

Мой PL / SQL немного заржавел, поэтому ниже приведен более псевдокод, чем скомпилированный и протестированный код. И это совершенно не в моей голове. Но если вы знаете конкретный порядковый номер столбца в таблице, вы можете попробовать это:

columnName varchar2 (50): =

Select column_name
From all_tab_columns c 
Where lower(table_name) = '<% Your Table2 Name %>' And
    column_id = 9 -- The appropriate ordinal
Order By column_id;

Выбрать столбец1 как имя столбца из таблицы1;

Возможно, из "all_tab_columns" будут извлечены дополнительные значения столбцов, которые также помогут вам. Осмотрите вокруг и увидите.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...