单个 SSRS Tablix 中多个 Queries/Datasets 的静态值

Static Values from Multiple Queries/Datasets in Single SSRS Tablix

好的,所以我有这份报告,我必须用非常特定的格式在 SSRS 中编写。它看起来像下面底部的屏幕截图。忽略箭头和颜色。它是从 Oracle 数据库中提取的。此 table/matrix 中的每个数值单元格都有一个不同的 sql 查询来提取它,因为它们来自不同的 table 等

table 中的上半部分数字均来自查询。 table 的下半部分是上半部分数字的所有计算。我已经有了上半部分的查询,并试图弄清楚如何使用这些查询在 SSRS 中仅使用这些查询来制作 table,然后在报告的下半部分创建计算。我不能使用 table 或矩阵,因为每个查询都是不同的数据集,每个 tablix 只能有一个数据集。

我在想也许可以手动创建文本框和绘制网格,这会很痛苦。我收到关于没有汇总和超出范围之类的错误,但还没有找出原因,因为这不是我理想的解决方案。

我目前的最终解决方案是合并每个查询,然后为网格中的行和列创建具有静态值的列,并将其转换为矩阵。问题在于,随着我在 table 计算中创建每一个,它的复杂性继续增加,并且代码变得越来越大,并且需要很长时间才能创建,我必须像 6 个类似的报告一样这种格式的性质。可能会有一千行 sql 并且由于 ssrs 字符限制迫使我不得不制作一个存储过程。;

所以我的问题以更简单的方式是,我怎样才能采用多个 sql 查询 return 一个静态值,并使它们成为不重复的 tablix 中的单个值,然后在该 tablix 中创建更多空白行,这些空白行是其他单元格值的计算结果,即 Textbox1 - textbox2, textbox3/textbox4 ?

我用多个数据集的表达式弄明白了。一旦找到答案,答案似乎太简单了。基本上只是使用我的第一个数据集创建了一个 table tablix。在下面的组内插入行创建了更多详细信息行。然后我转到每个数据集的表达式生成器,找到另一个数据集并双击它以获取从另一个数据集提取的表达式。例如 bac_labor 数据集值将如下所示。 =总和(字段!BAC_LABOR.Value,"BAC_Labor")

然后计算可以使用相同的东西 =Sum(Fields!BAC_LABOR.Value, "BAC_Labor") + Sum(Fields!BAC_LABOR_OVERHEAD.Value, "BAC_Labor") 或者可以像这样 =ReportItems!Textbox2.Value - ReportItems!Textbox1.Value 来引用单元格值。与将 500 个字符 select 语句加在一起进行计算相比,这节省了大量时间、开发工作并减少了计算代码。也不需要使用存储过程和联合或将每个 select 语句与此方法一起使用。