访问查询仅选择最大字段低于特定数字的项目

时间:2013-06-21 15:45:31

标签: ms-access

好的......我有这个问题:

SELECT * from Orders o
INNER JOIN OrderStatus os
ON o.Serial = os.Serial 
WHERE ( 
Select Max(StatusCode) FROM OrderStatus Where Serial = o.Serial  
) < 14;

我认为这表示从最高状态代码小于14的两个表中选择所有内容

但它只是选择所有内容(每个订单在14以下至少有1个与之关联的状态代码)

我也试过这个:

SELECT * from Orders o
INNER JOIN OrderStatus os
ON o.Serial = os.Serial 
WHERE  Max(os.StatusCode) < 14;

但是你不能在访问中使用聚合函数,所以它只是错误的。

是否有一种过滤访问查询的方法,以便它只返回订单中最高状态代码低​​于指定数字的行?

1 个答案:

答案 0 :(得分:1)

我认为你正在寻找这样的东西:

SELECT * 
FROM 
    Orders o
    INNER JOIN 
    OrderStatus os
        ON o.Serial = os.Serial 
WHERE o.Serial IN
    (
        SELECT Serial 
        FROM OrderStatus 
        GROUP BY Serial 
        HAVING MAX(StatusCode)<14
    )