Hallo an alle,
ich arbeite mit dem SQL-Server 2000 und 2005
Dort habe ich zwei Tabellen die über eine ID miteinander verknüpft sind.
Fürs bessere Verständnis hier als Beispiel:
Tab1:
ID | Name | Flag
1 | name1 | 1
2 | name2 | 1
Tab2:
ID | KomNr | Kommentar
1 | 1 | a
1 | 2 | b
2 | 1 | aa
2 | 2 | bb
2 | 3 | cc
Jetzt sollen die beiden Tabellen miteinander Verknüpft werden und die Kommentare zu den einzelnen „Name“ hintereinander stehen.
Als Beispiel:
Name | Kom1 | Kom2 | Kom3 | Kom4 | Kom5
name1| a | b | null | null | null
name2| aa | bb | cc | null | null
Die große Herausforderung ist leider, dass das ganze über eine View gelöst werden soll!
Die Ausgabe soll max 5 Kommentare unterstützen. Sobald eine fehlt wird „null“ eingetragen.
Leider komme ich an dieser Stelle überhaupt nicht weiter. Wenn ich ein Select dieser Art mache:
SELECT Tab1.spotName,
Tab2_0.Kommentar AS Kom1,
Tab2_1.Kommentar AS Comment2,
Tab2_2.Kommentar AS Comment3,
Tab2_3.Kommentar AS Comment4,
Tab2_4.Kommentar AS Comment5
FROM Tab1 INNER JOIN
Tab2 AS Tab2_0 ON Tab1.spot_ID = Tab2_0.spot_ID INNER JOIN
Tab2 AS Tab2_1 ON Tab1.spot_ID = Tab2_1.spot_ID INNER JOIN
Tab2 AS Tab2_2 ON Tab1.spot_ID = Tab2_2.spot_ID INNER JOIN
Tab2 AS Tab2_3 ON Tab1.spot_ID = Tab2_3.spot_ID INNER JOIN
Tab2 AS Tab2_4 ON Tab1.spot_ID = Tab2_4.spot_ID
WHERE (Tab2_0.KomNr = 1) AND
(Tab2_1.KomNr = 2) AND
(Tab2_2.KomNr = 3) AND
(Tab2_3.KomNr = 4) AND
(Tab2_4.KomNr = 5)
Dann klappt es zwar, aber natürlich nur, wenn auch für jeden „Name“ 5 Kommentare (siehe where- Klausel) vorhanden sind. Da das ganze aber dynamisch ist, scheitere ich hier schon.
Zur Not müsste das ganze halt auch mit Hilfe von temp-Tabellen gelöst werden.
Ich wäre sehr dankbar über jeden Vorschlag oder Lösungsansatz!
Vielen Dank schon mal vorab!