Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Access SQL查询:使用2个联接表查找每个玩家的测试日期的最新日期条目_Sql_Ms Access - Fatal编程技术网

Access SQL查询:使用2个联接表查找每个玩家的测试日期的最新日期条目

Access SQL查询:使用2个联接表查找每个玩家的测试日期的最新日期条目,sql,ms-access,Sql,Ms Access,我有一个表和一个查询,由玩家ID连接。我只想显示tblPlayerLogistics中身高和体重列的最新测试日期结果,以及QryPlayerExtended中的玩家名称和玩家ID PlayerID位于表和查询中,它们是连接的。 我在tblplayerlogistics中有玩家ID、身高、体重和测试日期 我有玩家ID,玩家名称在QryPlayerExtended中 我想要一个只返回一个玩家记录的查询,该记录用testdate确定的每个玩家的最新身高和体重标记玩家ID和玩家姓名 查询名称:qryPl

我有一个表和一个查询,由玩家ID连接。我只想显示tblPlayerLogistics中身高和体重列的最新测试日期结果,以及QryPlayerExtended中的玩家名称和玩家ID

PlayerID位于表和查询中,它们是连接的。 我在tblplayerlogistics中有玩家ID、身高、体重和测试日期 我有玩家ID,玩家名称在QryPlayerExtended中

我想要一个只返回一个玩家记录的查询,该记录用testdate确定的每个玩家的最新身高和体重标记玩家ID和玩家姓名

查询名称:qryPlayersExtended 表名称:tblPlayerLogistics

我把我想做的事情附在一张图片上。这是一个球员的例子,但我会有多个球员与多个测试日期

我已经为此挣扎了好几个星期,如果有任何帮助,我将不胜感激。我看了之前的这篇文章,但还是想不出来

假设一名球员在任何一个日期的测试次数不超过一次。警告,航空代码。创建新查询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;我想我需要一个团队和一个内在的连接,只是不知道如何去做,非常感谢!!