只选择一条记录

jac*_*ney 6 sql db2

我只需要获取结果集的第一个记录(因为我需要最后一个日期),此刻我从这个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

Mat*_*lie 3

假设它们是唯一涉及的字段,您可以只执行一个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)