在Access 2007 SQL视图中使用MAX()子句

时间:2015-05-22 17:19:36

标签: vba access-vba ms-access-2007

我是Access和VBA的新手,我在Access 2007中进行编码并尝试构建一个从两个不同的表中提取记录的查询,表中的记录每次修订时都会分配修订号。我可以让查询运行并显示记录,但是我试图仅仅提取""每条记录的最新版本。我已经尝试使用在SQL视图中编写的MAX()子句来获取最大修订版号(I.E. 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 个答案:

答案 0 :(得分:0)

我会解决它创建两个查询:

查询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:使用tblNasco加入Query1

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;