私が使用している別のパラメータ(@Door)に「global」を表すために使用する特殊な値が含まれているかどうかを調べるために、隠し内部パラメータ(@DoorHelper) '(' 9999 ')、その場合はすべてのドアを返します。SSRS2008 - ケースでのSELECT ... WHEN ... THEN
SELECT
CASE
WHEN ('9999'+'-'+ RIGHT(Unknown1,1) in (@Door))
THEN (SELECT DISTINCT [Zone]+' - '+CAST([OfficeID] as char(5)) FROM [ADB].[dbo].[ZoneByOffice])
ELSE (@Door)
END AS ZoneID
FROM [ADB].[dbo].[EventLog]
問題は、THENから1つ以上の結果を返すとエラーが発生するようです。
このSQLを、私が望むように改革する方法はありますか?
「@ドア」はどのように見えますか? 'IN(...)'演算子の実際の値リストとして使用しようとしているCSVリストですか? –