我只需要获取结果集的第一个记录(因为我需要最后一个日期),此刻我从这个sql tring得到这个结果集:
SELECT BCACC,FLDAT
FROM ANAGEFLF
ORDER BY FLDAT DESC
Run Code Online (Sandbox Code Playgroud)
我看到这个记录:
A.M.T. AUTOTRASPORTI SRL 20080220
A.M.T. AUTOTRASPORTI SRL 20080123
A.M.T. AUTOTRASPORTI SRL 20070731
APOFRUIT ITALIA 20080414
APOFRUIT ITALIA 20080205
APOFRUIT ITALIA 20071210
APOFRUIT ITALIA 20070917
APOFRUIT ITALIA 20070907
Run Code Online (Sandbox Code Playgroud)
现在我需要为每个BCACC只取一个记录(第一个),我会采用这个结果集:
A.M.T. AUTOTRASPORTI SRL 20080220
APOFRUIT ITALIA 20080414
Run Code Online (Sandbox Code Playgroud)
我只是尝试将它分组为BCACC,但我收到一个sql错误,我正在研究DB2 ibmI
假设它们是唯一涉及的字段,您可以只执行一个GROUP BY.
SELECT
BCACC,
MAX(FLDAT) AS FLDAT
FROM
ANAGEFLF
GROUP BY
BCACC
Run Code Online (Sandbox Code Playgroud)
但是,如果您还有需要的其他字段,那么您只需将表的后面作为子查询加入...
SELECT
ANAGEFLF.*
FROM
ANAGEFLF
INNER JOIN
(
SELECT
BCACC,
MAX(FLDAT) AS FLDAT
FROM
ANAGEFLF
GROUP BY
BCACC
)
AS map
ON map.BCACC = ANAGEFLF.BCACC
AND map.FLDAT = ANAGEFLF.FLDAT
Run Code Online (Sandbox Code Playgroud)