在 Access 2007 SQL 视图中使用 MAX() 子句
Using the MAX() clause in Access 2007 SQL View
我是 Access 的新手,VBA,我在 Access 2007 中编写代码并尝试构建一个查询,该查询将从两个不同的表中提取记录,表中的记录每次都分配有修订号进行了修订。我可以获取 运行 的查询并显示记录,但是我正在尝试提取 "only" 每条记录的最新版本。我尝试使用在 SQL 视图中编写的 MAX() 子句来获取最大修订号(即 rev1 rev2 rev3)以及修订的最新日期(以提取修订的最新日期) .在这两次尝试中,Access 都显示了所提取记录的所有修订。我是否无法仅提取 Access 中的最新修订版?下面是我尝试使用的 SQL 代码,
SELECT MAX(tblNascoRevision.tbRevisionNum) AS tbRevisionNum, tblNasco.tbNCRNumber, tblNasco.tbGroupName, tblNasco.tbGroupNumber, tblNasco.tbAccountManager, tblNasco.tbSERNumber, tblNasco.cboNCRAnalyst, tblNasco.tbBAReceivedDate, tblNasco.tbBAAcceptedDate, tblNasco.tbRequestTitle, tblNasco.tbSubmittedToMDSS, tblNasco.tbImplementationDate, tblNasco.tbRejectToSales1, tblNasco.tbReceiveFromSales1, tblNasco.tbRejectToSales2, tblNasco.tbReceiveFromSales2, tblNasco.tbComments, tblNascoRevision.tbSentToMDSS, tblNascoRevision.cboRevisionCodes
FROM tblNasco, tblNascoRevision
WHERE tblNasco.LocalID=tblNascoRevision.NascoLocalID
GROUP BY tblNasco.tbNCRNumber, tblNasco.tbGroupName, tblNasco.tbGroupNumber, tblNasco.tbAccountManager, tblNasco.tbSERNumber, tblNasco.cboNCRAnalyst, tblNasco.tbBAReceivedDate, tblNasco.tbBAAcceptedDate, tblNasco.tbRequestTitle, tblNasco.tbSubmittedToMDSS, tblNasco.tbImplementationDate, tblNasco.tbRejectToSales1, tblNasco.tbReceiveFromSales1, tblNasco.tbRejectToSales2, tblNasco.tbReceiveFromSales2, tblNasco.tbComments, tblNascoRevision.tbSentToMDSS, tblNascoRevision.tbRevisionNum
ORDER BY tblNasco.tbGroupName, tblNascoRevision.tbRevisionNum DESC;
我会创建两个查询来解决它:
查询 1:仅获取 tblNascoRevision 的最大记录集
SELECT tbRevisionNum, NascoLocalID, tbSentToMDSS, cboRevisionCodes
FROM tblNascoRevision rev,
(SELECT MAX(tblNascoRevision.tbRevisionNum) AS tbRevisionNum, NascoLocalID
FROM tblNascoRevision
GROUP BY NascoLocalID) maxresults
WHERE rev.tbRevisionNum = maxresults.tbRevisionNum
AND rev.NascoLocalID= maxresults.NascoLocalID;
查询 2:将 Query1 加入 tblNasco
SELECT Query1.tbRevisionNum, tblNasco.tbNCRNumber, tblNasco.tbGroupName, tblNasco.tbGroupNumber, tblNasco.tbAccountManager, tblNasco.tbSERNumber, tblNasco.cboNCRAnalyst, tblNasco.tbBAReceivedDate, tblNasco.tbBAAcceptedDate, tblNasco.tbRequestTitle, tblNasco.tbSubmittedToMDSS, tblNasco.tbImplementationDate, tblNasco.tbRejectToSales1, tblNasco.tbReceiveFromSales1, tblNasco.tbRejectToSales2, tblNasco.tbReceiveFromSales2, tblNasco.tbComments, Query1.tbSentToMDSS, Query1.cboRevisionCodes
FROM tblNasco, Query1
WHERE tblNasco.LocalID=Query1.NascoLocalID
ORDER BY tblNasco.tbGroupName, Query1.tbRevisionNum DESC;
我是 Access 的新手,VBA,我在 Access 2007 中编写代码并尝试构建一个查询,该查询将从两个不同的表中提取记录,表中的记录每次都分配有修订号进行了修订。我可以获取 运行 的查询并显示记录,但是我正在尝试提取 "only" 每条记录的最新版本。我尝试使用在 SQL 视图中编写的 MAX() 子句来获取最大修订号(即 rev1 rev2 rev3)以及修订的最新日期(以提取修订的最新日期) .在这两次尝试中,Access 都显示了所提取记录的所有修订。我是否无法仅提取 Access 中的最新修订版?下面是我尝试使用的 SQL 代码,
SELECT MAX(tblNascoRevision.tbRevisionNum) AS tbRevisionNum, tblNasco.tbNCRNumber, tblNasco.tbGroupName, tblNasco.tbGroupNumber, tblNasco.tbAccountManager, tblNasco.tbSERNumber, tblNasco.cboNCRAnalyst, tblNasco.tbBAReceivedDate, tblNasco.tbBAAcceptedDate, tblNasco.tbRequestTitle, tblNasco.tbSubmittedToMDSS, tblNasco.tbImplementationDate, tblNasco.tbRejectToSales1, tblNasco.tbReceiveFromSales1, tblNasco.tbRejectToSales2, tblNasco.tbReceiveFromSales2, tblNasco.tbComments, tblNascoRevision.tbSentToMDSS, tblNascoRevision.cboRevisionCodes
FROM tblNasco, tblNascoRevision
WHERE tblNasco.LocalID=tblNascoRevision.NascoLocalID
GROUP BY tblNasco.tbNCRNumber, tblNasco.tbGroupName, tblNasco.tbGroupNumber, tblNasco.tbAccountManager, tblNasco.tbSERNumber, tblNasco.cboNCRAnalyst, tblNasco.tbBAReceivedDate, tblNasco.tbBAAcceptedDate, tblNasco.tbRequestTitle, tblNasco.tbSubmittedToMDSS, tblNasco.tbImplementationDate, tblNasco.tbRejectToSales1, tblNasco.tbReceiveFromSales1, tblNasco.tbRejectToSales2, tblNasco.tbReceiveFromSales2, tblNasco.tbComments, tblNascoRevision.tbSentToMDSS, tblNascoRevision.tbRevisionNum
ORDER BY tblNasco.tbGroupName, tblNascoRevision.tbRevisionNum DESC;
我会创建两个查询来解决它:
查询 1:仅获取 tblNascoRevision 的最大记录集
SELECT tbRevisionNum, NascoLocalID, tbSentToMDSS, cboRevisionCodes
FROM tblNascoRevision rev,
(SELECT MAX(tblNascoRevision.tbRevisionNum) AS tbRevisionNum, NascoLocalID
FROM tblNascoRevision
GROUP BY NascoLocalID) maxresults
WHERE rev.tbRevisionNum = maxresults.tbRevisionNum
AND rev.NascoLocalID= maxresults.NascoLocalID;
查询 2:将 Query1 加入 tblNasco
SELECT Query1.tbRevisionNum, tblNasco.tbNCRNumber, tblNasco.tbGroupName, tblNasco.tbGroupNumber, tblNasco.tbAccountManager, tblNasco.tbSERNumber, tblNasco.cboNCRAnalyst, tblNasco.tbBAReceivedDate, tblNasco.tbBAAcceptedDate, tblNasco.tbRequestTitle, tblNasco.tbSubmittedToMDSS, tblNasco.tbImplementationDate, tblNasco.tbRejectToSales1, tblNasco.tbReceiveFromSales1, tblNasco.tbRejectToSales2, tblNasco.tbReceiveFromSales2, tblNasco.tbComments, Query1.tbSentToMDSS, Query1.cboRevisionCodes
FROM tblNasco, Query1
WHERE tblNasco.LocalID=Query1.NascoLocalID
ORDER BY tblNasco.tbGroupName, Query1.tbRevisionNum DESC;