Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Dénormalisation des données (peut-être un pivot ?)

Vous pouvez utiliser le pivot. Vous devez également "classer" vos professeurs de 1 à 6. Voir mon commentaire sur la façon dont vous voulez faire cela. Pour l'instant :

Select StudNumber, TeacherNumber, TeacherRank
from (
   Select ST.StudNumber
       , ST.TeacherNumber
       , ROW_NUMBER() OVER (PARTITION BY ST.StudNumber 
                    ORDER BY ST.TeacherNumber) AS TeacherRank
   From StudentTeacher AS ST)
Where TeacherRank <=6

Ensuite, vous pouvez pivoter sur cette déclaration. Voici une bonne explication :Utilisation de Pivot et UnPivot