Forum: SQL |
Thema:
Re: MSDE: SQL-Ausgabe in eine Zeile schreiben |
Von:
Thomas Golla (
07.02.2005 09:17) |
Hi :-)
Es gibt da eine (wenn auch nicht schöne) Lösung die mir da einfällt:
Tabelle1 (Tabellenname (Spaltenname1, Spaltenname2, ...)):
tab (id, zonenid, wert)
Inhalt der Tabelle1 tab (id, zonenid, wert):
1,1,Tom
2,2,Tom
3,5,Tom
4,1,Willi
5,2,Willi
6,5,Hans
Tabelle2 (Tabellenname (Spaltenname1, Spaltenname2, ...)):
zonen (id, wert)
Inhalt der Tabelle2 zonen (id, wert):
1,Zone1
2,Zone2
3,Zone3
4,Zone4
5,Zone5
Hier die SQL-Anweisung:
select tab.wert,
(select max(zonen.wert) from tab t1, zonen where zonenid = 1 and t1.wert = tab.wert and zonen.id = t1.zonenid) as 'Zone1',
(select max(zonen.wert) from tab t1, zonen where zonenid = 2 and t1.wert = tab.wert and zonen.id = t1.zonenid) as 'Zone2',
(select max(zonen.wert) from tab t1, zonen where zonenid = 3 and t1.wert = tab.wert and zonen.id = t1.zonenid) as 'Zone3',
(select max(zonen.wert) from tab t1, zonen where zonenid = 4 and t1.wert = tab.wert and zonen.id = t1.zonenid) as 'Zone4',
(select max(zonen.wert) from tab t1, zonen where zonenid = 5 and t1.wert = tab.wert and zonen.id = t1.zonenid) as 'Zone5'
from tab
group by tab.wert
Ergebnis:
Hans,NULL,NULL,NULL,NULL,Zone5
Tom,Zone1,Zone2,NULL,NULL,Zone5
Willi,Zone1,Zone2,NULL,NULL,NULL
Da wir bei deinem Beispiel ja wissen, dass es "nur" fünf Zonen gibt, kann man die fünf Selectanweisungen ja "fest verdrahten". Problematisch wird es wenn man nicht weiß wieviele Zonen es gibt.
Hoffe es hilft ein bissl bzw. war/ist ein Gedankenanstoss.
Lieben Gruß
Tom
Antworten
Vorsicht bei der Eingabe: Die Zeichen ' oder -- sind nicht erlaubt!