2016-11-28 11 views
0

私がアクセス、SELECT RMonturesImp.N°Fac FROM RMonturesImp, Rpartielun WHERE NOT (RMonturesImp.N°Fac IN (1,2,5)) GROUP BY RMonturesImp.N°Fac; Accessクエリ素晴らしい

が、私はこの

SELECT RMonturesImp.N°Fac 
FROM RMonturesImp, Rpartielun 
WHERE NOT (RMonturesImp.N°Fac IN Requête2) 
GROUP BY RMonturesImp.N°Fac; 

を行うときに、それは動作しません(それは実際に1,2,5を示して)上Requête2の結果であるがそれを行います(クエリー)も(1,2,5)です。私はこれを理解できません!

ありがとうございます。

+0

おかげで、私はあなたがよく理解または多分それは反対だかわからない:

はこれを試してみてください。 私は(1,2,5)を置くとOKです。アクセスは1,2&5とは異なるN°Facだけを表示します。しかし、結果が基本的に同じ(1,2,5)Requette2を置くと、AccessはN°Fac(1,2,5を含む)をすべて表示します。 @グスタフ、あなたはより明確に説明するコードを参加することができますか? –

+0

SQL文字列を作成できるコードはすべて使用できます。特にない。結果はあなたの最初の(実用的な)例として見えなければなりません。 2つ目のバリエーションは動作しません。それは簡単です。 – Gustav

+0

問題は私の動作例が単なるテストであったということです。なぜなら、数字(1,2,5)がクエリによって「自動的に検出される」と考えられているからです。したがって、私はIN(1,2,5)にすることはできませんが、 "Requête2"を使用する必要があります:-( –

答えて

1

非常に簡単です。 IN (1,2,5))は明示的に指定する必要があります.SQLは、INの値を取得する関数を指定しない式を評価しないためです。

文字列を作成するコードでSQLを構築するか、(temp)テーブルから値を取得します。

SELECT RMonturesImp.N°Fac 
FROM RMonturesImp, Rpartielun 
WHERE RMonturesImp.N°Fac NOT IN (Select N°Fac From Requête2) 
GROUP BY RMonturesImp.N°Fac; 
関連する問題