Ilja: Zeilen als Spalten in Ergebnismenge

Beitrag lesen

yo,

Was ich möchte ist das die KundenID in der Ergebnismenge nicht mehrfach ausgegeben wird, sondern nur einmal. Also nicht 5 Spalten

mit KundenID "1" und dann die unterschiedlichen Aufräge daneben usw.

das kommt ganz drauf an, wie du die ergebnisliste weiter bearbeitest. mir fallen spontan vier möglichkeiten ein.

1. dir steht eine programmiersprache zur verfügung. dann liesse sich die gewünschte ausgabe dadurch erzeugen. dies per SQL abfrage zu tun, ist der schlechtere weg, wenn auch machbar.

2. wenn du sowieso eine maximal feste anzahl von aufträgen pro kunde hast (sehr unwahrscheinlich), dann kannst du auch einfach die zweite tabelle auflösen und jeweils 5 weitere spalten in der ersten tabelle erzeugen. dies ist zwar nicht ganz konform dem normalisierungs-prozess, aber sie wissen was sie tun.

3. wenn du die zwei tabellen behalten willst und auch keine programmiersprache anwendung findet, kann man es noch durch unterabfragen erreichen. in deinem fall beschränkst du dich aber wie bei punkt 2. auf eine feste anzahl von aufträgen.

SELECT kunden_id, (Unterabfrage 1. auftrag), (Unterabfrage 2. auftrag), (Unterabfrage 3. auftrag)...
FROM kunden_tabelle
WHERE kundennummer = xy;

4. ähnlich wie drei, nur du benutzt anstelle einer festen anzahl eine variable unter mssql, die sich solange ums eins erhöht, bis die anzahl der aufträge erreicht ist. bei jedem durschlauf wird eine entsprechende unterabfragen hinzugefügt, die unter der verwendung von TOP die jeweilige auftragsnummer ausgibt. nach der schleife fühst du die zusammengebastelte sql anweisung aus. bin mir nicht sicher, ob das unter mssql möglich ist. aber das wäre die allgemeine lösung, ohne zu wiessen, wieviele aufträge es gibt.

Ilja