我正在嘗試爲以下情況創建查詢,但我似乎無法從概念到實際。本月和上個月出勤的SQL子查詢
我有三個表:
- 檔案(ID,名字,姓氏)
- 事件(ID,日期)
- 出席(PROFILE_ID,EVENT_ID)
我試圖獲得本月和上個月出席的個人檔案清單。
到目前爲止,我已經考慮過爲這兩個月做一些計數,只在大於1時選擇它們,但我還沒有完全掌握它的工作。
喜歡的東西:
SELECT * FROM Profile
LEFT OUTER JOIN Attendance ON Profile.ID = Attendance.Profile_ID
LEFT OUTER JOIN Event ON Attendance.Event_ID = Event.ID
WHERE [subquery to confirm attendance of this Profile_ID in this month/year > 1]
AND [subquery to confirm attendance of this Profile_ID in last month/year > 1]
所以,第一個問題是我是否不正確我思考的問題和我在一個良好的方向發展。第二個問題是如何正確執行這些子查詢 - 我可以很容易地製作類似SELECT * FROM Attendance WHERE MONTH(Date) = 12 AND YEAR(Date) = 2016
的東西,但是這將返回所有出席者的列表。我真正想要的是僅列出每個ID的參加人數 - 所以當我查看ID 4時,我想查看該特定ID是否在本月和上個月有出席,但我不是確定如何將其添加到WHERE子句中。
1)是 - 這是一個方法。另一個是計算不同月份的總數等於參數的數量。對於2),請參閱http://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-be-a-very-simple -sql-query – Strawberry