私は、2つのテーブルから1フィールドだけを比較するMINUSステートメントから6つのフィールドを返すSQLステートメントがあります。 MINUS文が1エントリだけを返す場合は正しく動作しますが、1を超える場合はエラーが発生します。複数のリターンでSQL MINUS文を使用するにはどうすればよいですか?
これをどのようにすればいいですか?
私は、2つのテーブルから1フィールドだけを比較するMINUSステートメントから6つのフィールドを返すSQLステートメントがあります。 MINUS文が1エントリだけを返す場合は正しく動作しますが、1を超える場合はエラーが発生します。複数のリターンでSQL MINUS文を使用するにはどうすればよいですか?
これをどのようにすればいいですか?
代わりの=
を使用して、IN
ステートメントを使用してみてください:
SELECT DROPPER_ID, EMAIL, ACTIVE, COUNTRY_CD, FIRST_NAME, LAST_NAME FROM PETE.DROPPER
WHERE DROPPER_ID IN (
SELECT DROPPER_ID FROM PETE.DROPPER WHERE COUNTRY_CD <> 'USA' AND ACTIVE = 1
MINUS
SELECT DROPPER_ID FROM PETE.DROPPER_COMPARE);
問題は、あなたのwhere句である:現在、単一の値でdropper_id比較するよう設計されていますが、それはあなたが望むものを実際にはありませんされています。これを修正するには、 '='記号を 'in'という単語に置き換えます。これは、サブクエリを1つの値ではなくタプルまたは値のリストとして扱うために、WHERE句に指示します。