Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SSRS 2005查找具有最大值的列的名称_Sql Server_Sql Server 2005_Reporting Services_Reportingservices 2005_Unpivot - Fatal编程技术网

Sql server SSRS 2005查找具有最大值的列的名称

Sql server SSRS 2005查找具有最大值的列的名称,sql-server,sql-server-2005,reporting-services,reportingservices-2005,unpivot,Sql Server,Sql Server 2005,Reporting Services,Reportingservices 2005,Unpivot,最右边的一栏是我想在报告中添加的内容。这是否可以在不修改查询的情况下使用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

最右边的一栏是我想在报告中添加的内容。这是否可以在不修改查询的情况下使用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中起作用:

您可以使用
UNPIVOT
功能和
交叉应用来实现:

;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

哇,太快了。看来我还是要用unpivot了。谢谢@当您有未规范化的数据时,Kon_
UNPIVOT
非常有用。当不同的记录有一个共同的日期时,这似乎有问题:。有什么办法吗?@Kon_uu你应该发布一个新的问题和新的细节。