2017-07-05 10 views
1

フィールドが2つあります:qty_releasedqty_completeです。 qty_released = 1qty_complete = 0の行を同時に除外する必要があります。私はこれを行うことはできません。ときj.qty_complete = 0j.qty_released > 1ながら、有効な時間があるかもしれませんので...このANDおよび/またはSQL文をSQLに書き込む方法を教えてください。

--rest of code 

and j.qty_released != 1 
and j.qty_complete != 0 

--rest of code 

を。 j.qty_released = 1の同様の状況。私はどのようにこれを書くべきですか?特定の行をフィルタリングするときに、これらの両方を同時に考慮するクエリが必要です。

+0

'qty_released'または' qty_complete'を 'null'にできますか? – SqlZim

+0

@SqlZim nope。決して。 – DarthVoid

答えて

2

これを試してみてください:

where not (qty_released = 1 and qty_complete = 0) 

または論理等価ではなく、難しくは私見を読むために:英語で

where (qty_released != 1 or qty_complete != 0) 
+0

それはうまくいきますが、私は興味があります。ちょうど 'と(j.qty_released!= 1とj.qty_complete!= 0)の否定のように思えます。どうしてこれなの? – DarthVoid

+0

@DarthVoidこれは 'not and'( 'NAND')操作であり、 'not'と 'not'操作です。 – SqlZim

+0

@SqlZim私は実際には違いは見えません。 NANDと「not」と「not」の違いについて説明できますか? – DarthVoid

2
WHERE/AND (j.qty_released <> 1 OR j.qty_complete > 0) 

:それならばqty_releasedは、1ORない場合行を含めます1の場合、qty_completeは0より大きくなければなりません。したがって、除外された行は、条件がqty_released = 1 AND qty_complete = 0

+0

これも動作しますが、現在の2つの回答の間に違いがあるかどうか議論しています。どちらの答えも同じ結果を返します。使用するアドバイスはありますか? – DarthVoid

+0

@DarthVoid - あなたが最も快適なSqlステートメントを選択します。技術的な観点からは同等です。 – Igor

関連する問題