Access SQL查询:使用2个联接表查找每个玩家的测试日期的最新日期条目
我有一个表和一个查询,由玩家ID连接。我只想显示tblPlayerLogistics中身高和体重列的最新测试日期结果,以及QryPlayerExtended中的玩家名称和玩家ID PlayerID位于表和查询中,它们是连接的。 我在tblplayerlogistics中有玩家ID、身高、体重和测试日期 我有玩家ID,玩家名称在QryPlayerExtended中 我想要一个只返回一个玩家记录的查询,该记录用testdate确定的每个玩家的最新身高和体重标记玩家ID和玩家姓名 查询名称:qryPlayersExtended 表名称:tblPlayerLogistics 我把我想做的事情附在一张图片上。这是一个球员的例子,但我会有多个球员与多个测试日期 我已经为此挣扎了好几个星期,如果有任何帮助,我将不胜感激。我看了之前的这篇文章,但还是想不出来Access SQL查询:使用2个联接表查找每个玩家的测试日期的最新日期条目,sql,ms-access,Sql,Ms Access,我有一个表和一个查询,由玩家ID连接。我只想显示tblPlayerLogistics中身高和体重列的最新测试日期结果,以及QryPlayerExtended中的玩家名称和玩家ID PlayerID位于表和查询中,它们是连接的。 我在tblplayerlogistics中有玩家ID、身高、体重和测试日期 我有玩家ID,玩家名称在QryPlayerExtended中 我想要一个只返回一个玩家记录的查询,该记录用testdate确定的每个玩家的最新身高和体重标记玩家ID和玩家姓名 查询名称:qryPl
假设一名球员在任何一个日期的测试次数不超过一次。警告,航空代码。创建新查询qryLastTestDate: 按PlayerID从tblplayerlogistics组中选择PlayerID,MaxTestDate作为LastTestDate创建第二个查询qryLastTest: 从tblplayerlogistics内部连接tblplayerlogistics.PlayerID=qryLayerTestDate.PlayerID和tblplayerlogistics.TestDate=qryLayerTestDate.TestDate=qryLayerLogistics.TestDate=qryLayerTestDate.LastTestDate上选择TblLayerLogistics.PlayerID、TblLayerLogistics.height、TblLayerLogistics.weight和TbleAstDate=qryLastTestDate 您的最后一个问题是:
选择qryPlayersExtended.PlayerID,qryPlayersExtended.[Player Name],qrylastest.TestDate,qrylastest.Height,qrylastest.Weight,从qryPlayersExtended.PlayerID上的qryPlayersExtended内部连接qrylastest=qrylastest.PlayerID;根据需要添加其他字段。您需要两个查询 首先,您需要一个查询来获取每个玩家的最新日期。它将有两列:PlayerId和MaxTestDate,按PlayerId分组。我把这个命名为qryExplayerTestDates。它看起来像这样:
SELECT PlayerId, Max(TestDate) AS MaxDate
FROM tblPlayerLogistics
GROUP BY PlayerId;
其次,加入PlayerId和Dates MaxDate/TestDate,以获得受MaxTestDate限制的结果。它看起来像这样:
SELECT tblPlayerLogistics.PlayerId, tblPlayerLogistics.Height,
tblPlayerLogistics.Weight, tblPlayerLogistics.TestDate,
qryPlayersExtended.PlayerName
FROM qryPlayersExtended INNER JOIN (qryMaxPlayerTestDates
INNER JOIN tblPlayerLogistics
ON (qryMaxPlayerTestDates.MaxDate = tblPlayerLogistics.TestDate)
AND (qryMaxPlayerTestDates.PlayerId = tblPlayerLogistics.PlayerId))
ON qryPlayersExtended.PlayerId = qryMaxPlayerTestDates.PlayerId;
如果每个玩家没有重复您的日期,没有玩家每个日期有一个以上的测试,或者同一日期的两个测试有不同的时间,您将在结果中得到每个玩家的一行,以及最新测试日期的身高/体重。选择qryPlayerExtended.PlayerID,qryPlayerExtended。[玩家名称],tblPlayerLogistics.TestDate,tblPlayerLogistics.身高,tblPlayerLogistics.体重,tblPlayerLogistics.奖学金,tblPlayerLogistics.季节,tblPlayerLogistics.AcademyYear从QryPlayerExtended内部加入QryPlayerExtended.PlayerID=tblPlayerLogistics.PlayerID;我想我需要一个团队和一个内在的连接,只是不知道如何去做,非常感谢!!