我有一个"学生"有两列的表" UserID"和"姓名"。
接下来,我有一个名为" TestResults"有三列,UserID,TestID和TestScore。
对于TestID等于1A或2A的测试,我想运行一个查询,为每个用户显示他们的测试分数。
什么方法是最好的,我想知道Pivot是最好的方式还是另一个更合适的方法。感谢。
答案 0 :(得分:1)
猜测您的评论,您可以conditional aggregation
与max
和case
一起使用,以便将结果放在一行:
select s.userid, s.name,
max(case when t.testid = '1a' then t.testscore end) as 1ascore,
max(case when t.testid = '2a' then t.testscore end) as 2ascore
from students s
join testresults t on s.userid = t.userid
group by s.userid, s.name
答案 1 :(得分:-1)
试试这个 -
SELECT
UserID,
TestScore
FROM
TestResults
WHERE
(TestID = 1A)
OR (TESTID = 2A)