[英]MS Access SQL - Most Recent Record for Each Consultant ID
我花了一些時間在StackOverflow上尋找這個答案,並嘗試了很多這樣的解決方案,但是沒有運氣。 我覺得自己缺少一些小東西,但無法解決。 注意-學習SQL並使用Access,因為這是工作方式。
我有2個表,其中1個表具有顧問信息(列:顧問ID,名字,姓氏,活動(是或否復選框)。第二個表具有其每周編號( 列: AutoGenID,顧問ID,WeekOf(日期) ,FullService,咨詢,分類,重新分配,RecruitmentSrvs),並將它們加入到ConsultantID(主鍵)中
我建立了一個簡單的查詢來聯接2個表,並僅在qry_Join中顯示活動顧問的所有結果(任何未標記為活動的顧問都不會在此查詢中顯示)qry_Join返回顧問ID,名字和姓氏(來自tbl_Consultants)和然后是tbl_WeeklyNumbers中的WeekOf(日期),FullService,咨詢,分類,重新分配,RecruitmentSrvs。
題:
我想查詢一個僅顯示每個顧問最近的WeekOf(日期)條目的查詢。
問題:
我正在使用的SQL在下面,但是我遇到的問題是,如果ConsultantID#的3、4、5、6和7使用10/11/2017日期,然后ConsultantID#8使用10/12/2017,該查詢將僅返回ConsultantID#8的行,因為它是最新的行。 我仍然需要它返回所有其他顧問的最新行,即使它們是在ConsultantID#8s之前的日期
SQL:
SELECT ConsultantID, FirstName, WeekOf, USFullService, USConsulting, Classified, Reallocations, RecruitmentSrvs
FROM qry_Join
Where WeekOf = (SELECT MAX(WeekOf) FROM qry_Join)
只需將ConsultantID傳遞給您的子查詢:
SELECT ConsultantID, FirstName, WeekOf, USFullService, USConsulting, Classified, Reallocations, RecruitmentSrvs
FROM qry_Join q
Where WeekOf = (SELECT MAX(s.WeekOf) FROM qry_Join s WHERE s.ConsultantID = q.ConsultantID)
SELECT ConsultantID,
FirstName,
WeekOf,
USFullService,
USConsulting,
Classified,
Reallocations,
RecruitmentSrvs
FROM qry_Join INNER JOIN
(SELECT MAX(WeekOf) maxwkof ,ConsultantID cid
FROM qry_Join
GROUP BY ConsultantID )
ON ConsultantID = cid
WHERE maxwkof = WeekOf
您的查詢中的問題是,下面的查詢給出了整個表中的最大日期。 且該最大ID僅匹配一名顧問。 所以你得到一排
WeekOf = (SELECT MAX(WeekOf) FROM qry_Join)
以下查詢將提供每個顧問的最長時間。 因此,您可以加入最長日期和顧問ID,以獲取每個顧問在其最新休假期間的詳細信息
SELECT MAX(WeekOf) maxwkof ,ConsultantID cid
FROM qry_Join
GROUP BY ConsultantID
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.