22. August 200718 j Hallo ich hab folgendes problem ich hab eine Tabelle mit dem Aufbau Zeile | Spalte | Wert 1 | 1 |Zelle(1,1) 1 | 2 |Zelle(1,2) 1 | 3 |Zelle(1,3) 2 | 1 |Zelle(2,1) 2 | 2 |Zelle(2,2) 2 | 3 |Zelle(2,3) diese möchte ich mit sql in die form Zeile | Spalte 1 | Spalte 2 | Spalte 3 1 | Zelle(1,1) | Zelle(1,2) |Zelle(1,3) 2 | Zelle(2,1) | Zelle(2,2) |Zelle(2,3) 3 | Zelle(3,1) | Zelle(3,2) |Zelle(3,3) bringen. wie kann man das mit möglich wenig joins umsetzen
22. August 200718 j dazu dürfte IMO im günstigsten fall überhaupt kein JOIN notwendig sein, was aber vom DBMS abhängt, welches du aber nicht angegeben hast. s'Amstel
22. August 200718 j im prinzip ist das nichts anderes als eine pivotierung, und das kann oracle auch ohne JOIN. wenn deine ursprungstabelle immer dreiergruppen und deine zieltabelle/-abfrage immer drei spalten haben soll, ist das kaum schwierig; deine zieltabfrage muss als ergebnisfelder eben genausoviele spalten wie eindeutige zeilen liefern, und dazu eben den kreuzwert. ich verwende gerne ein package namens pivot_pkg - möglicherweise ist das aber etwas zu oversized für deine ansprüche. schau bei http://asktom.oracle.com rein und such nach PIVOT - du wirst eine unglaubliche menge an anregungen finden, dein SQL zu formulieren. s'Amstel
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.