2016-03-18 18 views
2

私のSELECTクエリに問題があります。私は "50700"で始まらず、有効フラグが1で、カテゴリー4とサブカテゴリー4にあるアイテムを見つけようとしています。以下は私が持っているクエリーですが、 。 TBL1.FIELD1 = ITM_ID、TBL1.FIELD2 = ENABLED、TBL2.FIELD1 = CAT_ID、TBL2.FIELD2 = SUBCAT_IDに注意してください。SQL SELECTクエリの問題

SELECT DB_NAME.dbo.TBL1.FIELD1 
, DB_NAME.dbo.TBL1.FIELD2 
, DB_NAME.dbo.TBL2.FIELD1 
, DB_NAME.dbo.TBL2.FIELD2 
FROM DB_NAME.dbo.TBL1 
    , DB_NAME.dbo.TBL2 
WHERE DB_NAME.dbo.TBL1.FIELD1 NOT LIKE '50700%' 
    AND DB_NAME.dbo.TBL1.FIELD2 = 1 
    AND DB_NAME.dbo.TBL2.FIELD1 = 4 
    AND DB_NAME.dbo.TBL2.FIELD2 = 4 
+6

私はクエリを信じています。あなたは一致がありません。 –

+1

数値型または文字型の 'TBL1.FIELD1'はありますか?前者の場合、一貫した数字の総数が予想されますか? –

+3

クエリが実際に一致する箇所を返す[ここに例があります](http://sqlfiddle.com/#!6/5b5b4/2/0)です。 –

答えて

0

あなたは、デバッグ目的のために別のサブクエリの中にあなたが働いていないされている「AND」条件を把握することができ、このようにクエリを破ることができます。例については

:TBL1.FIELD2であなたが結果を取得する場合、実行しようと次に

select TBL1.FIELD1 from DB_NAME.dbo.TBL1 where DB_NAME.dbo.TBL1.FIELD1 NOT LIKE '50700' ;(*if TBL1.FIELD1 is of String type, else go for TBL1.FIELD1 != 50700 *) 

「AND」: はまず、私はあなたが単純なクエリでTBL1.FIELD1上の単純なクエリを試してみる必要がありますね調子。

select TBL1.FIELD1 
from DB_NAME.dbo.TBL1 
where DB_NAME.dbo.TBL1.FIELD1 NOT LIKE '50700' 
and DB_NAME.dbo.TBL1.FIELD2 =4 ; 

これにより、さらに進んでクエリをデバッグできます。希望を助ける:)