我有下表(存在 ID 列但未在下面顯示):
| 電子郵件 | 課程 | 完成日期 |
|---|---|---|
| [email protected] | 跑步 | 01/01/2021 |
| [email protected] | 跑步 | |
| [email protected] | 跑步 | |
| [email protected] | 步行 | |
| [email protected] | 步行 | |
| [email protected] | 步行 |
我想知道是否可以從我的表中洗掉所有重復的(電子郵件和課程)記錄,但還要確保沒有洗掉具有 DateComplete 值的記錄。
所以在運行查詢后我會:
| 電子郵件 | 課程 | 完成日期 |
|---|---|---|
| [email protected] | 跑步 | 01/01/2021 |
| [email protected] | 步行 |
uj5u.com熱心網友回復:
您只需要一個帶有聚合的查詢,例如
SELECT Email, Course, MAX(DateComplete) AS DateComplete
INTO [dbo].[new_table]
FROM [dbo].[current_table]
GROUP BY Email, Course
uj5u.com熱心網友回復:
運行一個洗掉重復項的回圈:
Public Function DeleteDupes()
Const Sql As String = "Select * From Course Order By Email, Course, DateComplete Desc"
Dim Records As DAO.Recordset
Dim Values As String
Set Records = CurrentDb.OpenRecordset(Sql)
While Not Records.EOF
If Values <> Records!Email.Value & Records!Course.Value Then
Values = Records!Email.Value & Records!Course.Value
Else
Records.Delete
End If
Records.MoveNext
Wend
Records.Close
End Function
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/535579.html
標籤:数据库ms-access
