SSRS - 使用不带“第一”或“总和”的不同数据集字段进行表达

时间:2012-12-17 21:42:22

标签: ssrs-2008 reporting-services reportingservices-2005

我有一个包含三个数据集的ssrs报告。我想填充一个显示=(Fields!Total_Hrs.Value,“Dataset3”)的列,而不是“SUM(Total_Hrs)”,当我点击类别下的数据集时,它会显示为选项。

使用=(Fields!Total_Hrs.Value,“Dataset3”)的问题是我收到一条错误,指出“报表项表达式只能引用当前数据集范围内的字段,或者如果在聚合内部,则指定的数据集范围。“

有人知道导致错误的原因是什么吗?有没有办法让表达式窗口显示我的Fields作为DataSet3?

谢谢。

1 个答案:

答案 0 :(得分:0)

问题是SSRS如何从Dataset3知道你想要哪一行?所以你有两个选择:

选项1:如果您想要人均总数,请将主数据集中的总小时数作为嵌套查询计算,如下所示:

SELECT Person, Hours, TotalHours
FROM Time
INNER JOIN (
    SELECT Person, SUM(Hours) AS TotalHours 
    FROM Time 
    GROUP BY Person
) TotalTime ON Time.Person = TotalTime.Person

选项2:如果它是真正的总计,只需让Dataset3返回一行并使用聚合:

SELECT SUM(Hours) AS TotalHours
FROM Time

并在您的表达式中使用此聚合:

=SUM(Fields!TotalHours, "Dataset3")