【问题标题】:SSRS - Expression using different dataset fields without the "first" or "sum"SSRS - 使用不带“first”或“sum”的不同数据集字段的表达式
【发布时间】:2012-12-18 10:54:24
【问题描述】:

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

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

有人知道是什么导致了错误吗?有没有办法让表达式窗口将我的字段显示为 DataSet3?

谢谢。

【问题讨论】:

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


    【解决方案1】:

    问题是 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")
    

    【讨论】:

    • 我不知道 SSRS 需要定义的行。我认为它会将两列附加到现有的数据集1。我想我现在明白了。我没有指定内部连接,其中 dataset1.department = dataset2.department。谢谢你的帮助克里斯!我会选择选项1~
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-25
    • 1970-01-01
    相关资源
    最近更新 更多