我正在嘗試從注冊表中獲取電子郵件與特定課程匹配的每門課程。
我只想獲得每門課程的最新注冊資訊。正如您在圖片中看到的那樣,注冊 HTML 課程的人注冊了兩次。一次在 2022-01-04,一次在 20221-01-07。

這個查詢:
SELECT courseNameFk
FROM Enrollment
WHERE emailFk = '[email protected]'
回傳此人已注冊的所有課程。
問題是 HTML 課程會在結果中出現兩次:

我想要的是只顯示每門課程的最新注冊,但我不知道應該如何撰寫查詢以排除較舊的注冊。
有人可以幫助我嗎?
uj5u.com熱心網友回復:
嘗試以下 SQL 代碼:
SELECT d.emailFk,
d.courseNameFk,
d.registrationDate,
d.MainID FROM (
select emailFk , courseNameFk , registrationDate , ROW_NUMBER() OVER (PARTITION BY emailFk , courseNameFk ORDER by registrationDate DESC) as MainID
FROM Enrollment) d WHERE d.MainID = 1
這樣,您可以檢索每封電子郵件和每節課按日期記錄的最后一條記錄,最后,使用電子郵件條件,您可以訪問您想要的人。
SELECT d.emailFk,
d.courseNameFk,
d.registrationDate,
d.MainID FROM (
select emailFk , courseNameFk , registrationDate , ROW_NUMBER() OVER (PARTITION BY emailFk , courseNameFk ORDER by registrationDate DESC) as MainID
FROM Enrollment) d WHERE d.MainID = 1
AND d.emailFk = '[email protected]'
uj5u.com熱心網友回復:
這里接受的答案可能有用:https : //stackoverflow.com/a/51544622/8314250
此外,如果您只是想避免在回傳的行中出現重復,您可以使用DISTINCT關鍵字。
SELECT DISTINCT courseNameFk
FROM Enrollment
WHERE emailFk = '[email protected]'
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/407387.html
標籤:
上一篇:僅當所有條件都滿足時才回傳結果
下一篇:更新T-SQL中的XML列
