SQL Server - Mögliche Pivot-Lösung?

Ich habe ein recht einfaches Problem, das online überraschend schwer zu lokalisieren war. Vielleicht suche ich nach falschen Stichwörtern, also wollte ich vorbeischauen und euch fragen, weil eure Site ein Segen für meine Studien war. Siehe folgendes Szenario:

Wählen Sie den Schüler aus, zählen Sie (*) als Gesamt (die unbekannte Variable: book1, book2, book3, book4, ect ...) aus den Mysterien.

Im Wesentlichen möchte ich nur alle Bücher für einen eindeutigen Studentenausweis auflisten, der der Gesamtzahl entspricht. Könnte mich jemand in die richtige Richtung weisen, eine gute Lektüre oder so, damit ich einen Schritt in die richtige Richtung machen kann? Ich gehe davon aus, dass dies über einen Link-Join geschehen würde (nicht sicher, wie man den Teil x1, x2, x3 ausführt) und dann die beiden durch die eindeutige Studenten-ID-Nummer (keine Duplikate) verknüpfen würde, aber alle Online-Punkte zum Pivot, aber Pivot erscheinen um alle Zeilen in Spalten anstatt in einer einzelnen Spalte zu platzieren. SQL Server 2005 ist die Plattform der Wahl.

Vielen Dank!

Es tut uns leid

Die folgende Abfrage gibt meine eindeutige ID (den Schüler) und die Anzahl der Schüler für alle doppelten Einträge in der Tabelle an:

select student, count(*) as Total 
from mystudies
group by student order by total desc

Der Teil, den ich nicht kenne, ist, wie der linke Join für die eindeutige ID der Tabelle erstellt wird (boookid).

select mystudies1.student, mystudies1.total, mystudies2.bookid 
from  (  select student, count(*) as Total 
         from mystudies
         group by student
      ) mystudies1
      left join 
      (  select student, bookid 
         from mystudies
      ) mystudies2 
         on mystudies1.student=mystudies2.student
order by mystudies1.total desc, mystudies1.student asc

Offensichtlich führt die obige Zeile zu ähnlichen Ergebnissen wie die folgende:

Student    Total  BookID
000001    3        100001
000001    3        100002
000001    3        100003
000002    2        200001
000002    2        200002
000003    1        300001

Aber was ich eigentlich will, ist etwas Ähnliches wie das Folgende:

Student    Total  BookID
000001     3      100001, 100002, 100003
000002     2      200001, 200002
000003     1      300001

Ich nahm an, dass dies in einem Link-Join erfolgen musste, damit die tatsächliche Zählung, die für den Schüler durchgeführt wurde, nicht geändert wurde. Vielen Dank!

Antworten auf die Frage(1)

Ihre Antwort auf die Frage