0
以下查詢返回AcquisitionDate在RequestDate的60天內的請求數以及其他各列。使用MS Access COUNT DISTINCT函數
如何在RequestDate的60天內修改代碼以統計唯一 AcquisitionDates的數量?我試圖使用COUNT DISTINCT,但無法弄清楚在這種情況下應該如何使用它。
SELECT SceneTable.PATH, SceneTable.ROW, SceneTable.ROW, SceneTable.UlLat,
SceneTable.UlLon, SceneTable.UrLat, SceneTable.UrLon, SceneTable.LlLat,
SceneTable.LlLon, SceneTable.LrLat, SceneTable.LrLon,
Sum(Iif((DateDiff("d",[AcquisitionDate],[RequestDate])<60),1,0)) AS Expr1,
Count(RequestTable.RequestID) AS CountOfRequestID
FROM ((SceneTable INNER JOIN
SceneAcquisitionTable
ON SceneTable.SceneID = SceneAcquisitionTable.SceneID) INNER JOIN
UserSceneAcquisitionTable
ON SceneAcquisitionTable.SceneAcquisitionID =
UserSceneAcquisitionTable.SceneAcquisitionID) INNER JOIN
RequestTable
ON UserSceneAcquisitionTable.UserSceneAcquisitionID =
RequestTable.UserSceneAcquisitionID
GROUP BY SceneTable.PATH, SceneTable.ROW, SceneTable.UlLat, SceneTable.UlLon,
SceneTable.UrLat, SceneTable.UrLon, SceneTable.LlLat, SceneTable.LlLon,
SceneTable.LrLat, SceneTable.LrLon
下面是示例表以及預期結果:
哪個表保存AquisitionDate DISTINCT一種通用的方式?你需要包含一個派生表或子查詢'從sometable'中選擇不同的獲取日期並計算它。這可能稍微複雜一些,但這是總體思路。 – Fionnuala
@Remou SceneAcquisitionTable持有AcquisitionDate。我曾嘗試在此之後,FROM語句和訪問抱怨語法錯誤: 'AS一 RIGHT JOIN(SELECT DISTINCT AcquisitionDate FROM SceneAcquisitionTable) 爲B ON A.AcquisitionDate = B.AcquisitionDate' –
這可能與您的幫助計數,即使你讓它工作,因爲你會再次結束重複。你想如何計算日期?對於分組中的每個項目?因爲這將導致更復雜的子查詢或派生表。最簡單的選擇可能是發佈一些樣本數據和預期結果。 – Fionnuala