需要将ms查询转换为mysql查询

时间:2016-10-10 12:55:12

标签: mysql ms-access

我正在寻找从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;

1 个答案:

答案 0 :(得分:0)

您可能无法再现MS Access集函数LAST的行为。这个想法是它将返回最后输入的(实时)值,但实际上可能最终看起来是任意的,例如压缩数据库文件可能会对磁盘上​​的数据进行物理重新排序。

请参阅ACC2000: First and Last Functions Return Unexpected Records

最好的方法可能是寻找不同的方法,例如通过添加时间列将表转换为时态表(历史记录或事务表)。

(有点希望也许你只需用LAST替换MAX即可逃脱?!)