[MSSQL] Zeilen zu Spalten

TSc

Legendäres Mitglied
Hi!

Ich hoffe ihr könnt mir einen Tip geben damit ich meine Denkblockade bei einam aktuellen Problem gebrochen kriege.

Also, ich muss einen view anlegen der die Zeilen einer Tabelle als Spalten ausgiebt.

QuellTabelle
Datum | Name | Wert
1.1.1900 | Wert1 | 100
1.1.1900 | Wert2 | 200
1.1.1900 | Wert3 | 300

AusgabeTabelle
Datum | Wert1 | Wert2 | Wert3
1.1.1900 | 100 | 200 | 300

Es ist sichergestellt das es nicht mehr als fünf unterschiedliche aber sich wiederholende Werte in der Spalte Name der QuellTabelle gibt.

Could someone give me a hint please?

Gruß,
Tom
 
Innerhalb von Sql kenne ich zwei Möglichkeiten:

(1) Innerhalb von Access / MS-Sql gibt es eine Kreuztabellen-Verknüpfung, die ich allerdings selbst so gut wie nie nutze. Da muß man für die Zellwerte Aggregatfunktionen nutzen, kann sich dann aber teilweise mit Count(*) für Ja/Nein und Sum() für einzellige Summationen helfen.


(2) Wenn die Werte bekannt sind, kann man das auch mit einem Left Join pro Wert erledigen, indem man Unterabfragen verknüpft.

CODE Select A1.Datum
From Tabelle As A1
Group By A1.Datum


liefert die erste Spalte als Unterabfrage.


CODE Select A2.Datum, A2.Wert As SpalteW1
From Tabelle As A2
Where A2.Name = 'Wert1'



liefert die zweite Spalte als Unterabfrage, das pro Wert.

Folglich:


CODE Select B1.Datum, B2.SpalteW1, B2.SpalteW2 ...

From

(Select A1.Datum
From Tabelle As A1
Group By A1.Datum) As B1 Left Join

(Select A2.Datum, A2.Wert As SpalteW1
From Tabelle As A2
Where A2.Name = 'Wert1') As B2

On B1.Datum = B2.Datum Left Join ...


das pro Spalte zusammengestöpselt.

Außerhalb von Sql (innerhalb von Server-Daten) nutze ich noch eine dritte Möglichkeit: Die Abfrage gibt die Daten normal zurück, aber die Ausgabe wird 'gekippt', so daß bei der Ausgabe Zeilen und Spalten vertauscht werden.

Diese Variante hat sich als sehr effektiv erwiesen, geht aber nur bei einem eigenen Frontend.
 
Vielen Dank für die Hilfe, ich nehme Tor B.
smile.gif


Wobei ein eigenes Fontend in form eines relativ verschachtelten Access-Reports zur Verfügung stände.
Den würde ich allerdings lieber nicht anfassen, weswegen ich die Ausgabe des Views ja auch entsprechend umbiegen will.
 
Zurück
Oben