我有以下表格:
StockCode Bin
123 L02A3
123 L08B2
123 L08C2
456 L04B2
456 L02C1
789 L19A2
在Bin查看股票代码时,任何包含" A"在仓库的楼层。如果垃圾箱包含" B",它位于仓库的中间机架上,如果垃圾箱包含" C",则它位于仓库的顶部机架上。 / p>
我想要一个sql查询,比较每个股票代码的所有仓位,并显示哪些股票代码没有在" A"水平。
从上面的示例表中,股票代码" 456"会显示,因为它是唯一没有库存的股票代码" A"箱中。
这将非常有用,因为它会标记我们在打印拣货单之前将库存下移到楼层。
提前感谢您的帮助!
答案 0 :(得分:1)
思考group by
和having
:
select stockcode
from t
group by stockcode
having sum(case when bin like '%A_' then 1 else 0 end) = 0;
having
子句计算每个股票代码的行数,其中bin具有A(这假设倒数第二个字母是A,如问题中的示例所示)。如果数字为0
,则返回股票代码。