2009-03-02 11 views
1

Ich verwende MS Reporting Services, um einige Daten aus einer Oracle-Datenbank zu grafisch darzustellen. Ich möchte die Spalten in meiner Select-Anweisung mit Werten aus einer anderen Select-Anweisung benennen. Ist das möglich?SQL-Spaltennamen aus einer anderen Abfrage

Wie statt

Select Column1 As 'Test' From Table1 

konnte ich etwas tun, wie

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

?

Antwort

2

Ich würde denken, Sie müssten separat abfragen, dann die Abfrage dynamisch bilden. Interessiert, um zu sehen, ob es eine andere Antwort gibt.

1

Mein PL/SQL ist ein wenig eingerostet, was folgt ist mehr Pseudocode als kompilierbar & getestet Code. Und das ist völlig über meinem Kopf. Aber wenn man die spezifische Ordnungs Lage der Spalte in der Tabelle kennen, können Sie versuchen, diese:

column 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; 

Select Column1 Als column Aus Tabelle 1;

Möglicherweise gibt es mehr Spaltenwerte aus "all_tab_columns", die Ihnen auch helfen werden. Schau dich um und sieh zu.

Ich hoffe, das hilft.

1

Sie können alle benötigten Spaltennamen in separaten Bericht Datasetabfrage, mit Spalten als Parameter Standardwerte versteckt mehrwertig Berichtsparameter vColumns, Set-Datensatz erstellen, und es als ein String-Array nutzen:
Parameter vColumns (0). Wert - wird die erste Spalte usw. Sie können sie als Abfrageparameter verwenden.

Siehe Lesson 4: Adding a Multivalue Parameter

Verwandte Themen