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

SSRS中如何为每个CommentCode仅选取第一条录入的评论?

实现方案

有两种常用的实现方式,你可以根据自己的操作习惯选择:

方案1:修改数据集查询(推荐)

直接在获取数据集的SQL语句里做过滤,从数据源层面就拿到每个CommentCode对应的最早评论,后续报表不需要额外处理,性能和稳定性都更好。
示例SQL逻辑如下:

WITH CommentRank AS (
    SELECT 
        CommentDateTime,
        CommentCode,
        Comment,
        CommentKey,
        -- 按CommentCode分组,按时间升序排序,编号1就是最早的评论
        ROW_NUMBER() OVER (PARTITION BY CommentCode ORDER BY CommentDateTime ASC) AS rn
    FROM 你的表名
)
SELECT CommentDateTime, CommentCode, Comment, CommentKey
FROM CommentRank
WHERE rn = 1

把上面的你的表名替换成你实际的表名即可,如果你的数据集是从存储过程或者其他数据源来的,也可以参考这个窗口函数的逻辑做过滤。

方案2:SSRS报表层处理

如果你没办法修改数据源查询,也可以直接在报表里通过分组和过滤实现:

  • 打开你的报表,在Tablix中按CommentCode字段添加行组
  • 右键点击刚添加的行组,选择「组属性」
  • 切换到「筛选」页,添加筛选规则:
    • 表达式:=Min(Fields!CommentDateTime.Value, "你的行组名称")
    • 运算符:=
    • 值:=Fields!CommentDateTime.Value
  • 确认保存后,Tablix就只会显示每个CommentCode下时间最早的那条评论了

注意:如果存在同一个CommentCode下有完全相同CommentDateTime的多条评论,方案1会随机返回其中一条,你可以给ROW_NUMBER的ORDER BY后面再加一个排序字段(比如CommentKey)来固定返回规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 02:45:03