我有一个列名'APPs%of total',它需要填充两个不同的数据集。这似乎不起作用。任何提示将不胜感激。感谢
=(Fields!AppQty.Value/Fields!AppQty.Value,"second dataset")
答案 0 :(得分:1)
问题是:SSRS如何知道从第二个数据集中提取哪一行来获取字段?所以你必须使用聚合或查找:
方法1:只需在当前级别汇总
通常不需要为您的总和提供辅助数据集。您可以使用以下公式在当前数据集中的组级别进行聚合:
=Fields!AppQty.Value / SUM(Fields!AppQty.Value, "table1_Group1")
其中table1_Group1
是汇总数据的组。
方法2:汇总整个数据集
在数据集级别汇总当前数据集或次要数据集:
=Fields!AppQty.Value / SUM(Fields!AppQty.Value, "SomeDataset")
方法3:查找其他数据集中的值
您需要一个对组级别的值求和的数据集。您通常使用方法1和分组来实现此结果,但这里是为了完整性。所以,假设您按DepartmentId
进行分组,您将拥有一个如下聚合的数据集:
SELECT DepartmentId, SUM(AppQty) AS AppQty
FROM MyTable
GROUP BY DepartmentId
然后从当前行(在当前表的数据集中)中查找部门的相应值:
=Fields!AppQty.Value / Lookup(Fields!DepartmentId.Value, Fields!DepartmentId.Value, Fields!AppQty.Value, "SummaryDataset")
因此Lookup
与此数据集中的DepartmentId
与DepartmentId
中的SummaryDataset
匹配,并返回AppQty
值。