Quelltabelle:SQL Server PIVOT Hilfe
Create Table ExamAnswers
{
StudentID varchar(12),
QuestionID int,
Answer char(1)
}
und dies wird für etwa 500 Studenten mit
Bob 1 a
Bob 2 c
...
Bob 100 b
Chris 1 c
Chris 2 d
...
Chris 100 null
usw., gefüllt werden.
Chris hat die Prüfung nicht abgeschlossen, aber die 100. Frage wird als Null gespeichert, so dass garantiert ist, dass jeder Schüler genau 100 Zeilen hat, aber die tatsächliche Antwort ist Null oder Zeichen.
Wenn es einen Unterschied macht, Antworten auf {a, b, c, d, e, f}
Dieses Setup funktioniert gut für die tatsächliche Prüfung Anwendung und Kennzeichnung es trivial ist.
Jetzt habe ich eine Meldepflicht, dass für Prüfzwecke, ich brauche eine Tabelle zu erzeugen, die wie folgt aussieht:
ID 1 2 ... 100
Bob a c ... b
Chris c d ....null
Also habe ich einen halben Tag verbrachte über die Pivot-Funktion zu lesen, und ich gerade don versteh es nicht.
Das muss die undurchdringlichste Dokumentation sein, die ich je gelesen habe.
Für eine Sache, erfordert es und Aggregat Funktion - Was zum Teufel soll ich hier aggregieren?
Ich denke, dies ist nur über die einfachste Verwendung der PIVOT-Funktion, die es könnte, und ich kann nirgendwo ein anständiges Beispiel finden. HILFE!
Antwort ist ein Brief. Es ist kein Int. Ich kann keinen Brief schreiben. Ich kann nicht eins, ich will kein COUNT. Wenn der Buchstabe "a" ist, würde ich gerne "a" sehen. Warum ist das so schwierig? –
Pivot-Klausel benötigt Aggregatfunktion, aber Aggregatfunktionen (aber COUNT(), die Sie nicht benötigen) funktionieren nur für numerische Datentypen. –
Ok, du hast mich in die richtige Richtung gelenkt. Die Lösung ist, in diesem Fall MAX oder MIN zu verwenden. –