1

我被 MS Access 2003 查询困住了。我已经用谷歌搜索并阅读了许多类似的问题,但我无法达到预期的结果。

我有两个表“订单”和“库存”

           Orders                              Inventory
----------------------------------------    | -------------------
| SKU         | OrderID |PStatus    |   |   | SKU  | LID  |
----------------------------------------|   | -------------------
|  23|        | abc     |  New      |       |  23  | wsx  | 
|  24|        | asd     |  Shiped   |   |   |  24  | qax  | 
| 19 |        | zxc     |  New      |   |   |  19  | wsx  |
----------------------------------------    | -------------------

问题:我想要像这样的查询

SELECT Orders.SKU, 
       Count(LID), 
       LID 
FROM Orders 
INNER JOIN Inventory on Orders.SKU=Inventory.SKU 
WHERE Orders.PStatus = 'New' 
AND (OrderID = 'abc' OR Order = 'zxc')

这可能是一个非常基本的查询,但我对此并不陌生,因此任何示例都将不胜感激。

4

1 回答 1

2

看看你上面的例子,我会说使用一个简单的 ' Group By ' 应该足够好。

SELECT      Orders.SKU, 
            LID,
            COUNT(LID),

FROM        Orders 
INNER JOIN  Inventory on Orders.SKU=Inventory.SKU 
WHERE       Orders.PStatus = 'New' 
AND         (OrderID = 'abc' OR Order = 'zxc')

GROUP BY    Orders.SKU,
            LID

我们真正要说的是从订单表中加载所有在库存表中具有匹配 LID 的 SKU。然后,我们要求对这些订单-LID 组合中的每一个进行计数(基本上每个 SKU 的 LID 数量) - 这GROUP BY告诉 Access 它应该根据 SKU 和 LID 的每个组合出现的次数来计算行数。

于 2013-01-15T14:11:27.923 回答