You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在FastReport中通过查询仅显示报表的最后一条记录?

解决FastReport中LIMIT无效及获取最后一条记录的方法

方法一:根据数据库类型调整SQL语法

LIMIT 仅在MySQL、PostgreSQL等部分数据库中支持,如果你的报表连接的是SQL Server、Access、Oracle等数据库,需要替换为对应语法:

1. SQL Server/Access 环境

用 TOP 1 替代 LIMIT 1,修改后的SQL:

SELECT TOP 1 T1.COD_PRODUTO
FROM
    TPRODUTO T1
WHERE
    T1.COD_PRODUTO LIKE :CODIGO
GROUP BY T1.COD_PRODUTO
ORDER BY T1.COD_PRODUTO DESC;

2. Oracle 环境

Oracle不支持LIMIT,嵌套查询结合ROWNUM实现:

SELECT COD_PRODUTO
FROM (
    SELECT T1.COD_PRODUTO
    FROM TPRODUTO T1
    WHERE T1.COD_PRODUTO LIKE :CODIGO
    GROUP BY T1.COD_PRODUTO
    ORDER BY T1.COD_PRODUTO DESC
)
WHERE ROWNUM = 1;

方法二:在FastReport报表内直接过滤数据

如果不想修改SQL,可直接在报表设计器中设置只显示最后一条记录:

  • 找到报表的主数据带,打开属性面板
  • 在Filter属性中输入表达式:[RowNo] = [DataSource.RowCount]
  • 保存设置后,报表将仅渲染数据源的最后一条记录

方法三:检查数据库驱动兼容性

部分FastReport数据库驱动对SQL语法有兼容限制:

  • 打开报表的数据源设置,查看当前使用的驱动类型
  • 确认驱动支持你使用的SQL语法,若不兼容则更换对应数据库的官方驱动

内容的提问来源于stack exchange,提问作者buzinaro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 03:04:53