【问题标题】:SSRS 2005 find name of column with max valueSSRS 2005 查找具有最大值的列的名称
【发布时间】:2013-02-15 20:34:30
【问题描述】:

最右边的列是我要添加到报告中的内容。是否可以在不修改查询以使用 Unpivot 之类的东西的情况下做到这一点?

Step X      Step W      Step A     Step B     Step Y     Last Step
---------------------------------------------------------------------
1/21/2013   1/24/2013   1/3/2013   1/5/2013   1/7/2013   Step W

这是朝着正确方向迈出的一步,但它似乎只适用于 SSRS 2008:http://www.bigator.com/2012/04/26/spothighlight-minimum-and-maximum-values-in-each-row-in-matrix-report-in-ssrs/

【问题讨论】:

    标签: sql-server sql-server-2005 reporting-services reportingservices-2005 unpivot


    【解决方案1】:

    您可以使用UNPIVOT 函数和CROSS APPLY 来获得:

    ;with cte as
    (
      select col, value
      from yourtable
      unpivot
      (
        value
        for col in ([Step X], [Step W], [Step A], [Step B], [Step Y])
      ) unpiv
    ) 
    select [Step X], 
      [Step W], 
      [Step A], 
      [Step B], 
      [Step Y],
      d.col LastStep
    from yourtable
    cross apply
    (
      select c1.col
      from cte c1
      inner join
      (
        select max(value) MaxDate
        from cte
      ) c2
        on c1.value = c2.maxdate
    ) d
    

    SQL Fiddle with Demo

    【讨论】:

    • 哇,真快。看起来我毕竟会使用 unpivot 。谢谢!
    • @Kon_ UNPIVOT 非常适合您拥有未标准化的数据。
    • 当不同的记录有共同的日期时,这似乎有问题:SQL Fiddle with example。有什么办法吗?
    • @Kon_ 你应该发布一个包含新细节的新问题。
    猜你喜欢
    • 2021-02-05
    • 2015-07-07
    • 2022-11-02
    • 1970-01-01
    • 2021-05-06
    相关资源
    最近更新 更多