比较同一个表中相同股票代码的相同字段

时间:2017-03-07 01:31:29

标签: sql sql-server

我有以下表格:

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

在Bin查看股票代码时,任何包含" A"在仓库的楼层。如果垃圾箱包含" B",它位于仓库的中间机架上,如果垃圾箱包含" C",则它位于仓库的顶部机架上。 / p>

我想要一个sql查询,比较每个股票代码的所有仓位,并显示哪些股票代码没有在" A"水平。

从上面的示例表中,股票代码" 456"会显示,因为它是唯一没有库存的股票代码" A"箱中。

这将非常有用,因为它会标记我们在打印拣货单之前将库存下移到楼层。

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

思考group byhaving

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,则返回股票代码。