这是mysql语句:
SELECT
MAX(`history_card`.`PART_NUMBER`) AS `PART_NUMBER`, `history_card`.`SERIAL_NUMBER`,
MAX(`history_card`.`POSITION`) AS `POSITION`,
MAX(`history_card`.`RELEASE_DATE_TO_AIRCRAFT`) AS `RELEASE_DATE_TO_AIRCRAFT`,
MAX(`history_card`.`DATE_OFF_AIRCRAFT`) AS `DATE_OFF_AIRCRAFT`,
MAX(`history_card`.`LAST_CAP_CHECKED_DATE`) AS `LAST_CAP_CHECKED_DATE`,
MAX(`history_card`.`DUE_CAP_CHECK_DATE`) AS `DUE_CAP_CHECK_DATE`,
MAX(`history_card`.`JOB_REMARKS`) AS `JOB_REMARKS`,
MAX(`history_card`.`TSO`) AS `TSO`,
MAX(`history_card`.`BO_NUMBER`) AS `BO_NUMBER`,
MAX(`history_card`.`REPAIR_ORDER_NUMBER`) AS `REPAIR_ORDER_NUMBER`,
MAX(`history_card`.`LAST_OVERHAULED_DATE`) AS `LAST_OVERHAULED_DATE`,
MAX(`history_card`.`DUE_OVERHAUL_DATE`) AS `DUE_OVERHAUL_DATE`,
MAX(`history_card`.`REFRESHER_DATE`) AS `REFRESHER_DATE`,
MAX(`history_card`.`REFRESHER_DONE`) AS `REFRESHER_DONE`,
MAX(`history_card`.`GRN_ISSUE_DATE`) AS `GRN_ISSUE_DATE`,
MAX(`history_card`.`WORKSHEET`) AS `WORKSHEET`,
MAX(`history_card`.`ADDITIONAL_ATTACHMENT`) AS `ADDITIONAL_ATTACHMENT`,
MAX(`history_card`.`GRN`) AS `GRN`
FROM `history_card`
GROUP BY `history_card`.`SERIAL_NUMBER`
HAVING (((MAX(`history_card`.`DUE_CAP_CHECK_DATE`)) BETWEEN NOW() AND DATE_SUB(NOW(), INTERVAL -60 DAY) ))
ORDER BY MAX(`history_card`.`DUE_CAP_CHECK_DATE`) DESC;
而不是MAX()我需要选择最后一行,这意味着必须选择ID DESC并限制为1条记录:ORDER BY id DESC LIMIT 1
但是现在它返回最大值,因为我是从MS转换此查询,MS使用LAST()
函数获取mysql中的最后一条记录我需要一个类似MySQL的解决方案
答案 0 :(得分:0)
如果我正确理解了这个问题,那么这些方面的内容应该有效:
SELECT
`history_card`.`SERIAL_NUMBER`,
`history_card`.`PART_NUMBER` AS `PART_NUMBER`,
`history_card`.`POSITION` AS `POSITION`,
`history_card`.`RELEASE_DATE_TO_AIRCRAFT` AS `RELEASE_DATE_TO_AIRCRAFT`,
`history_card`.`DATE_OFF_AIRCRAFT` AS `DATE_OFF_AIRCRAFT`,
`history_card`.`LAST_CAP_CHECKED_DATE` AS `LAST_CAP_CHECKED_DATE`,
`history_card`.`DUE_CAP_CHECK_DATE` AS `DUE_CAP_CHECK_DATE`,
`history_card`.`JOB_REMARKS` AS `JOB_REMARKS`,
`history_card`.`TSO` AS `TSO`,
`history_card`.`BO_NUMBER` AS `BO_NUMBER`,
`history_card`.`REPAIR_ORDER_NUMBER` AS `REPAIR_ORDER_NUMBER`,
`history_card`.`LAST_OVERHAULED_DATE` AS `LAST_OVERHAULED_DATE`,
`history_card`.`DUE_OVERHAUL_DATE` AS `DUE_OVERHAUL_DATE`,
`history_card`.`REFRESHER_DATE` AS `REFRESHER_DATE`,
`history_card`.`REFRESHER_DONE` AS `REFRESHER_DONE`,
`history_card`.`GRN_ISSUE_DATE` AS `GRN_ISSUE_DATE`,
`history_card`.`WORKSHEET` AS `WORKSHEET`,
`history_card`.`ADDITIONAL_ATTACHMENT` AS `ADDITIONAL_ATTACHMENT`,
`history_card`.`GRN` AS `GRN`
FROM `history_card`
JOIN
(
SELECT MAX(`history_card`.`ID`) ID, `history_card`.`SERIAL_NUMBER`
FROM `history_card`,
WHERE `history_card`.`DUE_CAP_CHECK_DATE` BETWEEN NOW() AND DATE_SUB(NOW(), INTERVAL -60 DAY)
GROUP BY `history_card`.`SERIAL_NUMBER`
) HC
ON `HC`.`ID`=`history_card`.`ID`
AND `HC`.`SERIAL_NUMBER`=`history_card`.`SERIAL_NUMBER`
答案 1 :(得分:0)
SELECT TOP 1 * FROM .... ORDER BY ID DESC
应该是你的最后一条记录。