I wish it to return a record with - StudentNo, Testdate, read_score, Write_score 1 20010515 600 700 Where I populate the scores based on the 'Subject' in my table.
Select StudentNo,TestDate,
MAX(Case When Subject = 'Read' then Score End)Read_Score,
MAX(Case When Subject = 'Write' then Score End)Write_Score
from @Student
Group by StudentNo,TestDate
Order by StudentNo,TestDate
Select distinct StudentNo,TestDate,
MAX(Case When Subject = 'Read' then Score End) OVER (PARTITION BY StudentNo,TestDate),
MAX(Case When Subject = 'Write' then Score End) OVER (PARTITION BY StudentNo,TestDate)
from @Student