从多列中选择Count,将多个表按一列分组

时间:2013-01-15 13:59:19

标签: ms-access

我遇到了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')

这可能是一个非常基本的查询,但我是新手,所以任何例子都会非常感激。

1 个答案:

答案 0 :(得分: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的每个组合出现的次数来计算行数