SSRS表达式中的WHERE子句用于max函数

时间:2014-01-29 17:54:17

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

我有一个带有返回内容的查询

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中完成的图像,这是怎么回事。

enter image description here

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

3 个答案:

答案 0 :(得分:1)

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

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

将最大值更改为min,另一个...

谢谢大家。

答案 1 :(得分:0)

我相信您正在寻找的查询将是:

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并使用Type,route和value字段返回最小路径和最大路径。最终应该像你的excel部分一样设置上面的最小和最大路线。

答案 2 :(得分:0)

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

enter image description here

Designer中有两个表:

enter image description here

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

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

MAX表:

enter image description here

MIN表:

enter image description here

这给出了您的预期结果:

enter image description here