我有一個這樣的訪問表(日志):
| PK | 模組ID | 相關標識 | 約會時間 | 發送型別 |
|---|---|---|---|---|
| 1 | 1234 | 22.3 | 10/1/22 04:00 | 1 |
| 2 | 1234 | 23.1 | 10/10/22 06:00 | 1 |
| 3 | 1234 | 23.1 | 10/11/22 07:00 | 2 |
| 4 | 1234 | 23.1 | 10/12/22 08:00 | 3 |
| 5 | 4321 | 22.3 | 10/2/22 06:00 | 7 |
| 6 | 4321 | 23.1 | 10/10/22 06:00 | 1 |
| 7 | 4321 | 23.1 | 10/11/22 07:30 | 3 |
嘗試將查詢撰寫為搜索此表的函式的一部分:
- 對于匹配給定 modID 和 relID(例如 1234 和 23.1)的所有記錄,
- 選擇最近的一個(日期時間的最大值),
- 回傳該記錄的 TxType。
但是,Access 有點新,它的查詢結構讓我很煩惱。我找到了這個,但是因為我必須為 TxType 包含一個 Total/Aggregate 函式,所以我不得不選擇 Group By(不是我想要的)或 Last(更接近,但回傳垃圾結果)。我的查詢的 SQL 目前是:
SELECT Last(Logs.TxType) AS LastOfTxType, Max(Logs.DateTime) AS MaxOfDateTime
FROM Logs
GROUP BY Logs.dmID, Logs.relID
HAVING (((Logs.dmID)=[EnterdmID]) AND ((Logs.relID)=[EnterrelID]));
當我傳遞正確的引數但不是正確的記錄時,它會回傳 TxType 欄位 - 我想去掉 Last() 位,但如果我洗掉它,Access 會抱怨我沒有將它作為聚合的一部分功能。
任何人都可以在這里指出我正確的方向嗎?
uj5u.com熱心網友回復:
你有沒有嘗試過
SELECT TOP 1 TxtType
FROM Logs
WHERE (((Logs.dmID)=[EnterdmID]) AND ((Logs.relID)=[EnterrelID]))
ORDER BY DateTime DESC;
這將根據您的 DateTime 欄位和其他條件為您提供最新的單個資料行。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/514545.html
標籤:sql毫秒访问
