【发布时间】:2019-07-11 19:56:59
【问题描述】:
我有一张包含学生考试成绩的表格。每种测试类型可以有超过 1 个分数。所以学生 A 可以有多个测试 1 的分数,一个测试 2 的分数,等等。
基本上,如果一个学生只有测试 1 的测试成绩,我想做 x。如果一个学生有多个测试 1 的测试分数,我想做 y。我怎样才能做到这一点?
到目前为止我的查询是:
SELECT A.*
,T.TestType
,CASE
WHEN T.TestType = 'test_1' THEN T.MessageLocation
END AS Loc
FROM #Person A
LEFT JOIN #TestScores T ON A.TestID = T.ID
但我想做的(伪代码)是:
SELECT A.*
,T.TestType
,CASE
-- when count(test_1) = 1 THEN T.MessageLocation
-- when count(test_1) > 1 THEN
-- for each row T.AltMessageLocation
END AS Loc
FROM #Person A
LEFT JOIN #TestScores T ON A.TestID = T.ID
【问题讨论】:
-
你为什么加入
TestId?我希望加入人员ID。样本数据和期望的结果会有所帮助。