1

我正在处理一个查询,以找到在仓库之间转移的最佳数量。在单个查询中,我试图获取项目代码、项目的重新订购点WarehouseA、项目的重新订购点以及两个和WarehouseB的重新订购点的总和。WarehouseAWarehouseB

我使用的是 GUI,所以我尝试调用 Item Code 字段和 ROP(Reorder Point)字段 3 次。

SELECT ItemCode, ROP, ROP, ROP
FROM Inventory

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

4

2 回答 2

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是关键。

于 2013-04-12T15:25:04.807 回答
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)
于 2013-04-12T15:31:02.197 回答