1

好的...我有这个查询:

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 的所有内容

但它只是选择所有内容(每个订单至少有 1 个状态码与其相关联,低于 14)

我也试过这个:

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

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

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

4

1 回答 1

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
    )
于 2013-06-21T16:01:26.900 回答