2012-05-20 31 views
0

這裏是我的查詢:毫秒的存取最大計數

SELECT Count(*) AS CountOfJoker, tblPrediction.GameID 
FROM (tblUser INNER JOIN (tblPool INNER JOIN tblUserPool ON tblPool.PoolID = tblUserPool.PoolID) ON tblUser.UserID = tblUserPool.UserID) INNER JOIN (tblResult INNER JOIN tblPrediction ON tblResult.GameID = tblPrediction.GameID) ON tblUser.UserID = tblPrediction.UserID 
GROUP BY tblPrediction.GameID, tblPrediction.Joker, tblResult.GroupName, tblPool.PoolID 
HAVING (((tblPrediction.Joker)=True) AND ((tblResult.GroupName)='A') AND ((tblPool.PoolID)=314)); 

這裏是輸出:

CountOfJoker GameID 
2  1 
2  2 
2  9 
1  10 
1  17 
3  18 

我想CountOfJoker的MAX與下面的輸出:

CountOfJoker GameID 
3  18 

謝謝 Drew

回答

1

你可以使用select toporder by ... desc

SELECT TOP 1 Count(*) AS CountOfJoker, tblPrediction.GameID 
    FROM (tblUser INNER JOIN (tblPool INNER JOIN tblUserPool ON tblPool.PoolID = tblUserPool.PoolID) ON tblUser.UserID = tblUserPool.UserID) INNER JOIN (tblResult INNER JOIN tblPrediction ON tblResult.GameID = tblPrediction.GameID) ON tblUser.UserID = tblPrediction.UserID 
    GROUP BY tblPrediction.GameID, tblPrediction.Joker, tblResult.GroupName, tblPool.PoolID 
    HAVING (((tblPrediction.Joker)=True) AND ((tblResult.GroupName)='A') AND ((tblPool.PoolID)=314)); 
    ORDER BY Count(*) DESC 
+0

答案1幾乎奏效。當有許多具有相同值的計數時,查詢將返回輸出中的許多行。但是,當我通過count(*)desc刪除順序時,它僅返回第一個計數,即使它不是最大計數。 – Drew

+0

嘗試'ORDER BY CountOfJoker DESC'(不知道它是否適用於MS Access) – StrubT

+0

不起作用,ms-access抱怨CountOfJoker – Drew