【问题标题】: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。您的示例数据:
还有设计器中的两个表:
由于表格只有标题行,因此只会显示表格中的第一行。
为了确保我们在两个表中获得MAX 和MIN 值,每个表都需要对其数据集进行适当的排序,即按值分别按降序和升序排列。
MAX表:
MIN表:
这给出了您的预期结果: