【问题标题】:WHERE clause in SSRS expression for max function最大函数的 SSRS 表达式中的 WHERE 子句
【发布时间】:2014-01-29 17:54:17
【问题描述】:

例如,我有一个查询,它返回一些东西

route value
1      3
2      2
3      4
4      5
5      1

然后我需要在 2 个文本框中输入最大和最小路由,所以在 sql 中这将是

select top 1 route from table where value=(select max(value) from table)

我在excel中添加了一张图片,这是怎么回事。

我相信这很容易,但我不知道如何获得它。

【问题讨论】:

    标签: reporting-services ssrs-2008 where ssrs-tablix ssrs-expression


    【解决方案1】:

    我得到了使用表达式,这正是表达式

    ="Route "+
    Convert.ToString (
    Lookup(max(fields!value.Value),fields!value.Value ,fields!route.Value,"mydataset")
    )
    

    将最大值更改为最小值,其他...

    谢谢大家。

    【讨论】:

      【解决方案2】:

      我相信您要查找的查询是:

      With Min_Max_CTE as (
      Select MIN(value) as Min_Value
          , MAX(value) as Max_Value
      
      From Table
      )
      
      Select Top 1 'Min' as Type
          , T.route
          , T.value
      
      From Table T
          Inner Join Min_Max_CTE CTE
              on T.value = CTE.Min_Value
      
      Union All
      
      Select Top 1 'Max' as Type
          , T.route
          , T.value
      
      From Table T
          Inner Join Min_Max_CTE CTE
              on T.value = CTE.Max_Value
      
      Order by Type desc --This will put the Min Route first followed by the Max Route
      

      然后,将该查询放入数据集,然后创建一个 tablix 并使用类型、路由和值字段来返回最小路由和最大路由。它应该最终像您的 excel 部分一样设置,上面有最小和最大路线。

      【讨论】:

        【解决方案3】:

        您可以使用几个单独的表来执行此 SSRS。您的示例数据:

        还有设计器中的两个表:

        由于表格只有标题行,因此只会显示表格中的第一行。

        为了确保我们在两个表中获得MAXMIN 值,每个表都需要对其数据集进行适当的排序,即按值分别按降序和升序排列。

        MAX表:

        MIN表:

        这给出了您的预期结果:

        【讨论】:

          猜你喜欢
          • 2012-04-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多