2009-03-02 7 views
1

J'utilise MS Reporting Services pour représenter graphiquement certaines données d'une base de données Oracle. Je veux nommer les colonnes de mon instruction select avec les valeurs d'une autre instruction select. Est-ce possible?Noms de colonne d'ensemble SQL d'une autre requête

Comme au lieu de

Select Column1 As 'Test' From Table1 

que je pouvais faire quelque chose comme

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

?

Répondre

2

Je pense que vous auriez à interroger séparément, puis former la requête de manière dynamique. Intéressé de voir s'il y a une réponse différente.

1

Mon PL/SQL est un peu rouillé, donc ce qui suit est plus pseudocode que compilable & testé code. Et c'est complètement hors de ma tête. Mais si vous connaissez l'emplacement spécifique ordinale de la colonne dans la table, vous pouvez essayer ceci:

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; 

Sélectionnez Column1 Comme columnName de table1;

Il peut y avoir plus de valeurs de colonnes tirées de "all_tab_columns" qui vous aideront également. Jetez un coup d'oeil autour et voir.

J'espère que cela aide.

1

Vous pouvez interroger tous les noms de colonnes nécessaires dans ensemble de données de rapport distinct, créer des paramètres cachés rapport de valeurs multiples vColumns, ensemble de données établi avec des colonnes comme une des valeurs par défaut des paramètres, et l'utiliser comme un tableau de chaînes:
Paramètres vColumns (0). Valeur - sera la première colonne etc. Vous pouvez donc les utiliser comme paramètres de requête.

Voir Lesson 4: Adding a Multivalue Parameter

Questions connexes