レポートビルダーのサブクエリが複数の行を返す理由を把握していません。 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句にサブクエリがあり、意味がありません。 –
全体的なクエリは膨大で、この部分だけが転倒します。 CASEに基づいて、CourseCodeが指定された範囲にあり、CompletionIDが1の場合、正確に1の値を返します。 –
_entire_クエリを確認する必要があります。はい、select句の単一の 'CASE'式がこのエラーを引き起こすべきではありません。これが問題ではない可能性があります。 –