Einzelnen Beitrag anzeigen

Dejan Vu
(Gast)

n/a Beiträge
 
#3

AW: select auf gleiche tabelle

  Alt 14. Jan 2016, 06:32
Das ist ein SQL-Antipattern (Entity-Attribute-Value Tabelle). Zugriff geht z.B. so
Code:
select
   (select Wert from Tabelle x where x.ID = t.ID and x.Name = 'Charge') as Charge
 , (select Wert from Tabelle x where x.ID = t.ID and x.Name = 'Datum') as Datum
 , (select Wert from Tabelle x where x.ID = t.ID and x.Name = 'Zusatz_1') as Zusatz_1 
 , (select Wert from Tabelle x where x.ID = t.ID and x.Name = 'Zusatz_2') as Zusatz_2
from Tabelle t
where t.ID = 1234
Das geht, wenn es immer nur diese 4 Namen gibt. Ansonsten muss man das mit dynamischem SQL lösen, d.h. eine Query dynamisch bauen, die alle Namen enthält. Oder mit der Pivot-Funktion im Client (Excel, Delphi o.ä.). Wenn das ein Report werden soll, kann man das sehr elegant mit Fast-Report lösen, ganz ohne Code.
  Mit Zitat antworten Zitat