2017-03-07 21 views
1

のために同じテーブルで同じフィールドの比較:私は、次の表を持っている同じ証券コード

StockCode  Bin 
123   L02A3 
123   L08B2 
123   L08C2 
456   L04B2 
456   L02C1 
789   L19A2 

証券コード用のビンを見てみると、「A」を含む任意のビンが上であります倉庫のフロアレベル。ビンに「B」が含まれている場合、それは倉庫の中央ラックにあり、ビンに「C」が含まれている場合は、倉庫の上部ラックにあります。

各株コードのすべてのビンを比較し、どの株コードに現在のビンが「A」レベルでないかを示すSQLクエリーを希望します。

上記の例の表から、「A」ビンに在庫がない唯一のストックコードであるため、ストックコード「456」が表示されます。

これは、ピック・チケットが印刷される前に、どの在庫がフロア・レベルに移動するかを私たちに知らせるので非常に役立ちます。

ありがとうございました!

答えて

1

group byhavingを考える:

select stockcode 
from t 
group by stockcode 
having sum(case when bin like '%A_' then 1 else 0 end) = 0; 

having句はビンがA(これは最後から二番目の文字はの例のように、Aであると仮定した各証券コードの行の数をカウント質問)。数値が0の場合、株式コードが返されます。

+0

ありがとうございました!正しい方向に私を操縦するための@Gordon Linoff。これは私が望んでいたのと全く同じように機能しました。 – GVGuy

関連する問題