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!