誰かが私を助けてくれることが期待されるサブクエリに問題があります。1つ以上の値のSQLサブクエリ
私は次のことを実行する場合:
select t4.code from OITM T0
INNER JOIN DLN1 T1 ON T1.[ItemCode] = T0.[ItemCode]
INNER JOIN ODLN T2 ON T2.[DocEntry] = T1.[DocEntry]
INNER JOIN ITM10 T3 ON T3.[ItemCode] = T0.[ItemCode]
LEFT JOIN ODCI T4 ON T4.[AbsEntry] = T3.[ISCommCode]
WHERE T2.DocEntry = '7060'
結果は次のとおりです。
いくつかのケースではではない複数の値が所望のものと一致した行と他の人があるかもしれませんが、同時。
私は、これらの結果に対してチェックし、任意の行の[コード]列には、特定の何かが含まれていない場合は、メッセージを表示するようにサブクエリを持つクエリを書かれている:
IF(
(SELECT
T4.Code
FROM OITM T0
INNER JOIN DLN1 T1 ON T1.[ItemCode] = T0.[ItemCode]
INNER JOIN ODLN T2 ON T2.[DocEntry] = T1.[DocEntry]
INNER JOIN ITM10 T3 ON T3.[ItemCode] = T0.[ItemCode]
LEFT JOIN ODCI T4 ON T4.[AbsEntry] = T3.[ISCommCode]
WHERE T2.DocEntry = '7060') NOT IN ('22030010','22030001','22030009')
)
BEGIN
SELECT 'MESSAGE'
END
明らかにこれはコンパイルされません
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
HAVING、彼らは明らかに間違っているメッセージを表示せずにコンパイルとしてCOUNTが動作しません:それは以上の1行を返すことがある場合。
これが可能ですか、間違ったツリーを吠えますか?
多くのありがとうございます。このような行があるかどうかをチェックするために
方法だけクエリに 'WHERE'句を追加することについてはどうですか? –