【问题标题】:SSRS/SQL - Can I show the max value of one column based on the grouping of another column within a parent group?SSRS/SQL - 我可以根据父组中另一列的分组显示一列的最大值吗?
【发布时间】:2021-10-05 18:28:32
【问题描述】:

我有一份在 SSRS 中按周分组的报告,并显示工作状态的更新时间。

Week    | Job | Status | Update Date
-------------------------------------
   41   | J40 | 8      | 10/04/2021
        | J40 | 9      | 10/05/2021
        | J23 | 5      | 10/05/2021
-------------------------------------
   40   | J56 | 7      | 09/28/2021
        | J11 | 9      | 10/02/2021

因此,当状态更新时,该作业将显示在此报告中。日期是状态更新的日期。我想要完成的是每周只显示每项工作的最新更新。在此示例中,对于 J40,只有 10/05/2021 行应显示如下:

Week    | Job | Status | Update Date
-------------------------------------
   41   | J40 | 9      | 10/05/2021
        | J23 | 5      | 10/05/2021
-------------------------------------
   40   | J56 | 7      | 09/28/2021
        | J11 | 9      | 10/02/2021

为 Job 列创建子组并以这种方式过滤会更容易吗?

【问题讨论】:

  • 我个人总是会在数据集查询中完成这项工作。如果您需要这方面的帮助,请编辑此问题或询问其他问题

标签: sql visual-studio reporting-services


【解决方案1】:

鉴于状态更新不一定递增:

SELECT S.Week, S.Job, S.Status, S.UpdateDate
FROM JobStatus AS S
INNER JOIN (
    SELECT Job, MAX(UpdateDate) AS MaxDate
    FROM JobStatus
    GROUP BY Job) AS M ON M.Job = S.Job AND M.MaxDate = S.UpdateDate
ORDER BY Week, Job

【讨论】:

  • 我认为只有当状态只是增加时才会起作用,这从问题中并不清楚
  • 在一个完美的世界里它只会增加,但不幸的是这里不是这样。
  • 好的,我已将此答案更改为在数据集中进行操作
猜你喜欢
  • 1970-01-01
  • 2018-01-02
  • 2020-10-18
  • 2022-01-23
  • 2015-12-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多