SQL查询:同一列的不同值重复3次

时间:2013-04-12 15:17:01

标签: sql

我正在研究查找仓库之间转移的最佳数量的查询。在一个查询中,我正在尝试获取商品代码,WarehouseA中商品的重新订购点,WarehouseB中商品的重新订购点以及WarehouseA的再订货点总和和WarehouseB

我正在使用GUI,所以我尝试了3次调用项目代码字段和ROP(重新订购点)字段。

SELECT ItemCode, ROP, ROP, ROP
FROM Inventory

有没有办法可以为每个ROP字段以独特的方式过滤3个ROP字段? 例如。第一个ROP字段显示重新排序点whse=A,第二个ROP字段显示重新排序点whse=B,第三个重新排序点字段显示两者的总和。

2 个答案:

答案 0 :(得分:1)

使用内联选择:

SELECT
    ItemCode,
    (SELECT ii.ROP FROM Inventory ii WHERE ii.ItemCode = oi.ItemCode AND ii.whse='A') AS ROPA,
    (SELECT ii.ROP FROM Inventory ii WHERE ii.ItemCode = oi.ItemCode AND ii.whse='B') AS ROPB,
    (SELECT ii.ROP FROM Inventory ii WHERE ii.ItemCode = oi.ItemCode AND ii.whse='C') AS ROPC
FROM Inventory oi

以上假设ItemCode是关键。

答案 1 :(得分:0)

如果我理解你的问题:

SELECT
    I.ItemCode, 
    WHA.ROP AS A_ROP,
    WHB.ROP AS B_ROP,
    ISNULL(WHA.ROP,0) + ISNULL(WHB.ROP,0) AS Total_ROP
FROM
    Inventory AS I
LEFT JOIN
    WarehouseA AS WHA ON (WHA.ItemCode = I.ItemCode)
LEFT JOIN
    WarehouseB AS WHB ON (WHB.ItemCode = I.ItemCode)