보고서 작성기의 하위 쿼리가 둘 이상의 행을 반환하는 이유를 파악하기가 쉽지 않습니다. SQL Server/Report Builder 하위 쿼리에서 둘 이상의 행 오류를 반환합니다.
(
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
)
이
이 오류가 팝업되는 특정 학습자에 대한 데이터입니다 - 일반적으로 2 개 행이 CompletionID이가 '1'것 있는지 확인하고 그렇지 않으면 반환이있을 것이다 어디 강조했습니다CourseCode CompletionID
-------------------------
50044357 1
50044369 1
50089079 0
60146084 1
60187578 1
60148366 1
이 경우 예상되는 동작은 'GCSE 수학'을 반환하는 것입니다. 제가 잘못 했나요?
게시 한 현재 출력이 위에있는 쿼리와 직접 일치하지 않습니다. 질문을 수정할 수 있습니까? 오류에 관해서는, 그것은 꽤 자명합니다. 하나 이상의 레코드/값을 반환하는 select 절에 하위 쿼리가 있는데 의미가 없습니다. –
전체적인 쿼리가 방대하며이 부분 만 넘어갑니다. CourseCode가 지정된 범위에 있고 CompletionID가 1 인 경우 정확하게 1 값을 반환한다고 CASE를 기반으로합니다. –
_entire_ 쿼리를 확인해야합니다. 예 select 절에있는 하나의'CASE' 표현식이이 오류를 일으키지 않아야합니다. 이것이이 문제가 아닌 이유입니다. –