如何获取[Count by Date]最大值及tablix中单日最高订单对应日期
单日最高签署订单量及对应日期获取方案
方案1:直接从现有Tablix提取最大值
如果你已经完成了按签署日期分组统计每日订单量的矩阵(参考下图结构):
可以直接通过SSRS表达式实现需求:
- 提取单日最高订单数量:在矩阵外的文本框中使用
Max聚合函数,指定作用域为日期分组即可,假设你的日期分组命名为SignDateGroup,矩阵中统计订单量的表达式为Count(Fields!订单ID.Value),则最高订单量的表达式为:=Max(Count(Fields!订单ID.Value), "SignDateGroup") - 提取对应最高订单量的签署日期:通过
Lookup函数匹配最高值对应的日期即可,表达式示例如下,注意替换为你自己的数据集名称:
如果存在多个日期订单量同为最大值的情况,可改用=Lookup( Max(Count(Fields!订单ID.Value), "SignDateGroup"), Count(Fields!订单ID.Value), Fields!签署日期.Value, "你的订单数据集名称" )LookupSet函数拼接所有符合条件的日期。
方案2:数据源层预处理(更推荐)
从性能和可维护性角度,更建议直接在数据集查询阶段完成统计,避免依赖Tablix的分组结构,数据量较大时优势更明显,参考SQL示例:
WITH daily_order_stats AS ( SELECT sign_date AS 签署日期, COUNT(order_id) AS 当日订单量 FROM signed_orders GROUP BY sign_date ) SELECT 签署日期, 当日订单量 FROM daily_order_stats WHERE 当日订单量 = (SELECT MAX(当日订单量) FROM daily_order_stats)
如果需要同时展示全量日期的订单统计列表+最高值,可在查询中加入窗口函数,将最高值和对应日期作为附加字段返回,矩阵中直接引用该字段即可,无需编写复杂SSRS表达式。
内容的提问来源于stack exchange,提问作者Steph
相关产品推荐
相关产品推荐

