我正在努力弄清楚为什么报表生成器中的子查询返回多于一行。
(
SELECT
(
CASE
WHEN C.CourseCode IN ('50089079','50089080') THEN 'L2 Maths FS'
WHEN C.CourseCode IN ('50089067','50089109') THEN 'L1 Maths FS'
WHEN C.CourseCode IN ('50084987','50092959') THEN 'E3 Maths FS'
WHEN C.CourseCode IN ('50084975','50091967') THEN 'E2 Maths FS'
WHEN C.CourseCode IN ('50084963','50091724') THEN 'E1 Maths FS'
WHEN C.CourseCode IN ('60146084') THEN 'GCSE Maths'
Else 'NA'
END
)
FROM
Enrolment E
INNER JOIN
Course C ON C.CourseID = E.CourseID
WHERE
E.PMStudentID = vReports_Enrolment.PMStudentID
AND C.CourseCode IN ('50089079', '50089080', '50089067', '50089109', '50084987', '50092959', '50084975', '50091967', '50084963', '50091724', '60146084')
AND vReports_Enrolment.CompletionID = 1
)
这是弹出此错误的特定学习者的数据 - 我已经突出显示,如果不检查 CompletionID 以查看它是否为“1”,通常会返回 2 行:
CourseCode CompletionID
-------------------------
50044357 1
50044369 1
50089079 0
60146084 1
60187578 1
60148366 1
在这种情况下,预期的行为是返回“GCSE Maths”——我做错了什么吗?
添加:
(
SELECT TOP 1
(
CASE
确保只返回一行,这是预期的行为。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句