【发布时间】:2016-11-11 13:06:36
【问题描述】:
我在 SSRS 2010 中有两个来自两个不同数据集的表。如何根据每年和每月的值计算比率?在 excel 中非常简单,一个细胞被另一个细胞分裂。但是如何在 SSRS 中实现这一点?
尝试使用查找功能,但到目前为止效果不佳。
【问题讨论】:
标签: sql tsql reporting-services lookup
我在 SSRS 2010 中有两个来自两个不同数据集的表。如何根据每年和每月的值计算比率?在 excel 中非常简单,一个细胞被另一个细胞分裂。但是如何在 SSRS 中实现这一点?
尝试使用查找功能,但到目前为止效果不佳。
【问题讨论】:
标签: sql tsql reporting-services lookup
向报表添加第三个矩阵,使该矩阵的数据集与您用于第二个矩阵的数据集的名称相匹配。或者,您可以简单地复制并粘贴第二个矩阵,并将其移动到其他矩阵下方。然后使用这个表达式进行计算。
=Fields!PaidLoss.Value / Lookup(Fields!AccidentYear.Value & Fields!AccidentMonth.Value, Fields!YearStartRisk.Value & Fields!MonthStartRisk.Value, Fields!EarnedPr.Value, "DataSet1")
您必须调整字段名称,因为我无法在屏幕截图中看到所有名称。同时调整数据集名称。格式化数字以显示为百分比。 (0%)
您正在连接年份和月份以在此处进行正确查找。那应该使它起作用。您可能不得不尝试一下,因为它第一次无法正常工作。
祝你好运!
编辑: 可能的总表达(未测试!):
=Sum(Fields!PaidLoss.Value) / (Lookup(Fields!AccidentYear.Value & 1, Fields!YearStartRisk.Value & 1, Fields!EarnedPr.Value, "DataSet1") +
Lookup(Fields!AccidentYear.Value & 2, Fields!YearStartRisk.Value & 2, Fields!EarnedPr.Value, "DataSet1") +
Lookup(Fields!AccidentYear.Value & 3, Fields!YearStartRisk.Value & 3, Fields!EarnedPr.Value, "DataSet1") +
Lookup(Fields!AccidentYear.Value & 4, Fields!YearStartRisk.Value & 4, Fields!EarnedPr.Value, "DataSet1") +
Lookup(Fields!AccidentYear.Value & 5, Fields!YearStartRisk.Value & 5, Fields!EarnedPr.Value, "DataSet1") +
Lookup(Fields!AccidentYear.Value & 6, Fields!YearStartRisk.Value & 6, Fields!EarnedPr.Value, "DataSet1") +
Lookup(Fields!AccidentYear.Value & 7, Fields!YearStartRisk.Value & 7, Fields!EarnedPr.Value, "DataSet1") +
Lookup(Fields!AccidentYear.Value & 8, Fields!YearStartRisk.Value & 8, Fields!EarnedPr.Value, "DataSet1") +
Lookup(Fields!AccidentYear.Value & 9, Fields!YearStartRisk.Value & 9, Fields!EarnedPr.Value, "DataSet1") +
Lookup(Fields!AccidentYear.Value & 10, Fields!YearStartRisk.Value & 10, Fields!EarnedPr.Value, "DataSet1") +
Lookup(Fields!AccidentYear.Value & 11, Fields!YearStartRisk.Value & 11, Fields!EarnedPr.Value, "DataSet1") +
Lookup(Fields!AccidentYear.Value & 12, Fields!YearStartRisk.Value & 12, Fields!EarnedPr.Value, "DataSet1"))
【讨论】:
Lookup 的开头添加SUM,但它不会给我正确的结果。 =SUM(Fields!PaidLoss.Value) / SUM(Lookup(Fields!AccidentYear.Value & Fields!AccidentMonth.Value, Fields!YearStartRisk.Value & Fields!MonthStartRisk.Value, Fields!EarnedPr.Value, "DataSet1"))
12440% 177% 45% 51% 11%
SUM 和Lookup 似乎是它的常见问题
LookupSet 函数。 code.Sum(LookupSet(...)) 或类似的东西。