我有一个包含三个数据集的ssrs报告。我想填充一个显示=(Fields!Total_Hrs.Value,“Dataset3”)的列,而不是“SUM(Total_Hrs)”,当我点击类别下的数据集时,它会显示为选项。
使用=(Fields!Total_Hrs.Value,“Dataset3”)的问题是我收到一条错误,指出“报表项表达式只能引用当前数据集范围内的字段,或者如果在聚合内部,则指定的数据集范围。“
有人知道导致错误的原因是什么吗?有没有办法让表达式窗口显示我的Fields作为DataSet3?
谢谢。
答案 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")