2017-06-14 3 views
0

これまでにいくつかのクエリを作成しましたが、これは最も簡単なものでなければなりませんが、間違いを見つけることはできません。私はwhereステートメント内で、ATTRIBUUT = 'BVM'のみを検索する必要があります。問題は、「BVM」だけでなくATTRIBUUTをすべて表示することです。SQL whereステートメントが機能していない

select * 
from bla join bla1 on KEY_NUMMER = KEY_NUMMER1 
where DATUM_EINDE_REGISTRATIE is null 
and nvl(DATUM_TOT,'31-12-9999') > sysdate 
and ATTRIBUUT = 'BVM' 
and IDENTIFICATIE in (123, 456) 

私が間違っているか不足していることを誰かに教えてもらえますか?

+0

私は 'ATTRIBUUT'が' bla'テーブルの一部であると仮定していますか? – Adam

+1

bla.KEY_NUMBER = bla1.KEY_NUMMER1を試すことができます。同様に、bla.ATTRIBUUT = 'BVM'またはblah1.ATTRIBUUT = 'BVM' – user2309843

+0

Adamはい、ATTRIBUUTはblaの一部です。 @ achang27私は今すぐ試しています。 – EfhK

答えて

2

テーブルにエイリアスを使用してください。両方のテーブルにATTRIBUUT列があると、望ましくない結果が生じる可能性があります。したがって、例:

select * 
from bla as A 
join bla1 as B 
on B.KEY_NUMMER = A.KEY_NUMMER1 
where A.DATUM_EINDE_REGISTRATIE is null 
and nvl(DATUM_TOT,'31-12-9999') > sysdate 
and A.ATTRIBUUT = 'BVM' 
and A.IDENTIFICATIE in (123, 456) 
関連する問題