我正在寻找从ms到mysql的转换器,而不是像sceema那样的查询:
SELECT Last([HISTORY CARD].[PART NUMBER]) AS [LastOfPART NUMBER],
[HISTORY CARD].[SERIAL NUMBER],
Last([HISTORY CARD].POSITION) AS LastOfPOSITION,
Last([HISTORY CARD].[RELEASE DATE TO AIRCRAFT]) AS [LastOfRELEASE DATE TO AIRCRAFT],
Last([HISTORY CARD].[DATE OFF AIRCRAFT]) AS [LastOfDATE OFF AIRCRAFT],
Last([HISTORY CARD].[LAST CAP CHECKED DATE]) AS [LastOfLAST CAP CHECKED DATE],
Last([HISTORY CARD].[DUE CAP CHECK DATE]) AS [LastOfDUE CAP CHECK DATE],
Last([HISTORY CARD].[JOB REMARKS]) AS [LastOfJOB REMARKS],
Last([HISTORY CARD].TSO) AS LastOfTSO,
Last([HISTORY CARD].[BO NUMBER]) AS [LastOfBO NUMBER],
Last([HISTORY CARD].[REPAIR ORDER NUMBER]) AS [LastOfREPAIR ORDER NUMBER],
Last([HISTORY CARD].[LAST OVERHAULED DATE]) AS [LastOfLAST OVERHAULED DATE],
Last([HISTORY CARD].[DUE OVERHAUL DATE]) AS [LastOfDUE OVERHAUL DATE],
Last([HISTORY CARD].[REFRESHER DATE]) AS [LastOfREFRESHER DATE],
Last([HISTORY CARD].[REFRESHER DONE]) AS [LastOfREFRESHER DONE],
Last([HISTORY CARD].[GRN ISSUE DATE]) AS [LastOfGRN ISSUE DATE],
Last([HISTORY CARD].WORKSHEET) AS LastOfWORKSHEET,
Last([HISTORY CARD].[ADDITIONAL ATTACHMENT]) AS [LastOfADDITIONAL ATTACHMENT],
Last([HISTORY CARD].GRN) AS LastOfGRN
FROM [HISTORY CARD]
GROUP BY [HISTORY CARD].[SERIAL NUMBER]
HAVING (((Last([HISTORY CARD].[DUE CAP CHECK DATE])) Between Date() And Date()-60))
ORDER BY Last([HISTORY CARD].[DUE CAP CHECK DATE]) DESC;
答案 0 :(得分:0)
您可能无法再现MS Access集函数LAST
的行为。这个想法是它将返回最后输入的(实时)值,但实际上可能最终看起来是任意的,例如压缩数据库文件可能会对磁盘上的数据进行物理重新排序。
请参阅ACC2000: First and Last Functions Return Unexpected Records。
最好的方法可能是寻找不同的方法,例如通过添加时间列将表转换为时态表(历史记录或事务表)。
(有点希望也许你只需用LAST
替换MAX
即可逃脱?!)