2017-06-15 1 views
1

在庫ベースの小売データベースの移行を進めています。オーダーオフ変数が存在しない限りNOT LIKEを使用して除外します

製品が1であるプロダクトコードが有力CO

を持っている我々は、彼らが現在でない限り、全体で、在庫、在庫オーダーや顧客の注文

にCO製品を取る必要はありません

私は、次のといくつかのCASEのバリエーションを試してみましたが、無駄に

SELECT prdcod, 
stkqty, 
ordqty, 
csoqty 
FROM prdtbl 
WHERE prdtbl.prdcod NOT LIKE '*%' 
AND (prdcod NOT LIKE 'CO%' AND stkqty >0 AND ordqty >0 AND csoqty >0); 

、NOT LIKE「COの%」関数は、在庫数量、ordqtyとcsqtyがより1 /大きい、すべての小さい場合にのみ発生する必要があります0の場合、aqが存在すれば製品を保持する必要がありますそれらの列のいずれかにある。

例のデータセットは、下のリンクにあります(上記の最後のクエリ行はありません)。私は、この状況で19行目と20行目を除外したいと考えています。

https://lh5.googleusercontent.com/qTE1Av9i0x0BSjv_xAMj18bhX14cNWQPW9iYIBtpk4a6imhFiMRd7jRjFim_vPHxzcgu9h4xU9t8opA=w1920-h1070

任意の考えが理解されています!

**は、私はまだ0の在庫や注文qtys

+0

数字( 'stkqty'など)の場合は、引用符で囲まないでください – JohnHC

答えて

0

使用条件のorを有していてもよく、通常の製品コードを返す必要が

SELECT prdcod, 
stkqty, 
ordqty, 
csoqty 
FROM prdtbl 
WHERE prdtbl.prdcod NOT LIKE '*%' 
AND (prdcod NOT LIKE 'CO%' 
    or (prdcod like 'CO%' 
     AND (stkqty >0 
       OR ordqty >0 
       OR csoqty >0 
      ) 
     ) 
    ) 

は、だから何、これは言うことです:

は除外しますqtyの値の1つが0より大きい場合を除いて、すべて 'CO%'のようなもの0

+0

パーフェクトありがとう! –

関連する問題