2013-06-21 16 views
1

好了,所以...我有這個疑問: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; 

但是你不能在訪問中使用聚合函數,所以它只是錯誤的obv。

有沒有過濾訪問查詢的方法,以便它只會返回訂單的最高狀態碼低於指定數量的行?

回答

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 
    ) 
+0

是的,是的,我.. –

相關問題