我只需要获取结果集的第一条记录(因为我需要最后的日期),目前我已经从这个sql tring中获得了这个结果集:
SELECT BCACC,FLDAT
FROM ANAGEFLF
ORDER BY FLDAT DESC我看到了这个记录:
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现在我只需要为每个BCACC获取一条记录(首先),我将获取以下结果集:
A.M.T. AUTOTRASPORTI SRL 20080220
APOFRUIT ITALIA 20080414我刚刚尝试将其分组用于BCACC,但收到一个sql错误,我正在处理DB2 ibmI
发布于 2012-03-21 23:44:54
假设它们是唯一涉及到的字段,您可以只执行一个GROUP BY。
SELECT
BCACC,
MAX(FLDAT) AS FLDAT
FROM
ANAGEFLF
GROUP BY
BCACC但是,如果您有需要的其他字段,则只需将该表后面的字段连接为子查询即可。
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发布于 2012-03-21 23:44:01
select BCACC, max(FLDAT)
from ANAGEFLF
group by BCACC发布于 2012-03-22 01:26:25
你问题的第一部分“我只需要获取结果集的第一条记录”的答案是:
SELECT BCACC,FLDAT
FROM ANAGEFLF
ORDER BY FLDAT DESC
FETCH FIRST 1 ROW ONLY但全局问题是另一个问题,即如何修复查询,使其只检索正确的值。
https://stackoverflow.com/questions/9807924
复制相似问题