首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >只接受select的一条记录

只接受select的一条记录
EN

Stack Overflow用户
提问于 2012-03-21 23:39:16
回答 3查看 145关注 0票数 6

我只需要获取结果集的第一条记录(因为我需要最后的日期),目前我已经从这个sql tring中获得了这个结果集:

代码语言:javascript
复制
SELECT BCACC,FLDAT
FROM ANAGEFLF
ORDER BY FLDAT DESC

我看到了这个记录:

代码语言:javascript
复制
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获取一条记录(首先),我将获取以下结果集:

代码语言:javascript
复制
A.M.T. AUTOTRASPORTI SRL        20080220
APOFRUIT ITALIA                 20080414

我刚刚尝试将其分组用于BCACC,但收到一个sql错误,我正在处理DB2 ibmI

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-03-21 23:44:54

假设它们是唯一涉及到的字段,您可以只执行一个GROUP BY

代码语言:javascript
复制
SELECT
  BCACC,
  MAX(FLDAT) AS FLDAT
FROM
  ANAGEFLF
GROUP BY
  BCACC

但是,如果您有需要的其他字段,则只需将该表后面的字段连接为子查询即可。

代码语言:javascript
复制
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
票数 3
EN

Stack Overflow用户

发布于 2012-03-21 23:44:01

代码语言:javascript
复制
select BCACC, max(FLDAT)
from ANAGEFLF
group by BCACC
票数 1
EN

Stack Overflow用户

发布于 2012-03-22 01:26:25

你问题的第一部分“我只需要获取结果集的第一条记录”的答案是:

代码语言:javascript
复制
SELECT BCACC,FLDAT
FROM ANAGEFLF
ORDER BY FLDAT DESC
FETCH FIRST 1 ROW ONLY

但全局问题是另一个问题,即如何修复查询,使其只检索正确的值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9807924

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档