我花了一些时间在StackOverflow上寻找这个答案,并在没有运气的情况下尝试了这些解决方案。我觉得我错过了一些小东西,但我无法解决。注意-学习SQL并使用Access,因为这是工作所使用的。
我有两个表,一个有顾问信息(列:顾问ID,名,姓,活动(是或否复选框)。第二个表有他们的每周编号(列: AutoGenID、顾问ID、WeekOf (日期)、FullService、咨询、分类、重新分配、RecruitmentSrvs),并加入到ConsultantID (主键)上。
我构建了一个简单的查询来连接这两个表,并且只显示qry_Join中的活动顾问的所有结果(这个查询中任何标记为非活动的人都不会显示),qry_Join返回顾问ID、名字&姓氏(来自tbl_Consultants),然后返回WeekOf (日期)、FullService、咨询、分类、重新分配、RecruitmentSrvs从tbl_WeeklyNumbers。
问题:
我希望有一个查询,它只显示每个顾问最近的WeekOf (日期)条目。
发行:
我使用的SQL如下,但我遇到的问题是,如果ConsultantID #的3、4、5、6和7使用10/11/2017日期,然后ConsultantID #8使用10/12/2017,查询将只返回ConsultantID #8的行,因为它是最近的。我还需要它返回所有其他顾问最近的行,即使它们是ConsultantID #8‘之前的一个日期。
SQL:
SELECT ConsultantID, FirstName, WeekOf, USFullService, USConsulting, Classified, Reallocations, RecruitmentSrvs
FROM qry_Join
Where WeekOf = (SELECT MAX(WeekOf) FROM qry_Join)发布于 2017-10-19 20:30:42
只需将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)发布于 2017-10-19 20:47:57
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 ConsultantIDhttps://stackoverflow.com/questions/46838245
复制相似问题