【问题标题】:How using Lookup in SSRS get the ratio based o Year and Month from different datasets如何在 SSRS 中使用 Lookup 从不同数据集中获取基于年份和月份的比率
【发布时间】:2016-11-11 13:06:36
【问题描述】:

我在 SSRS 2010 中有两个来自两个不同数据集的表。如何根据每年和每月的值计算比率?在 excel 中非常简单,一个细胞被另一个细胞分裂。但是如何在 SSRS 中实现这一点?

尝试使用查找功能,但到目前为止效果不佳。

表在 SSRS 中的组中

和总计

【问题讨论】:

    标签: sql tsql reporting-services lookup


    【解决方案1】:

    向报表添加第三个矩阵,使该矩阵的数据集与您用于第二个矩阵的数据集的名称相匹配。或者,您可以简单地复制并粘贴第二个矩阵,并将其移动到其他矩阵下方。然后使用这个表达式进行计算。

    =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"))
    • 我为此添加了一个可能的解决方案。唯一可能起作用的另一件事是添加另外 2 个数据集,这些数据集按年份汇总您可以从中查找的总数。我之前没有考虑总数。越来越丑了! :)
    • 刚刚试过。这个想法很好,但不幸的是它给了我一些随机数。 12440% 177% 45% 51% 11%
    • 我现在正在阅读它,使用SUMLookup 似乎是它的常见问题
    • 是的,我以前也在 SO 上看到过一些关于此的内容,但我没有很快找到。我认为有些人最终在报告中使用了自定义代码和LookupSet 函数。 code.Sum(LookupSet(...)) 或类似的东西。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-25
    • 1970-01-01
    • 2016-08-10
    • 1970-01-01
    相关资源
    最近更新 更多