0

我有一个从存储过程中提取的报告。SP 需要 3 分钟才能运行,所以我不想多次点击数据库来提取此信息。我应该已经在数据集中有了它,那么我该如何处理它来获得这些百分比(如果有的话)?

我在数据集中有数据,并根据该数据显示图表,因此我无法直接更改数据集。我需要所有的信息。到目前为止一切都很好。现在,在报告的底部,我想要一个折线图,显示超过阈值的行数,与给定周数未超过阈值的行数进行比较。WeekNumber 已经是我在存储过程中收集的一列。

我已经将类别组设置为 WeekNumber,所以我相信我的 X 轴应该已经设置为那个。现在,我需要将 Y 轴设置为该指定周超出范围的值的百分比。

我的 Y 轴值将类似于:

OveragePercent=FormatPercent(
               (SELECT COUNT(0) FROM ThisWeek WHERE DataSet1.Threshold > 50) /
               (SELECT COUNT(0) FROM ThisWeek WHERE DataSet1.Threshold < 50), 2)

任何想法或建议将不胜感激。

4

2 回答 2

1

设置共享数据集,而不是附加到您的报告中。发布数据集的方式与发布数据源或报告的方式大致相同。发布后,在相应的文件夹中单击它。选择下拉箭头并选择管理。选择“缓存”并设置持续时间。

通常,当我有与批量构建相关而不是事务性的东西时,我会缓存它们。(办公室位置、人员等)每天早上这样我都会得到最后一天输入的内容,然后使用这些数据而不是每次都查询。据我所知,这也适用于过程和函数。

于 2013-07-22T23:29:23.460 回答
0

我找到了解决方案。

在我的 SSRS 表中,我使用数据集级别的总和与组级别的总和来得出总百分比。该表使用 MyDataSet 并按日期分组。我可以根据 Loads.value 判断当天交付了多少货物。然后,我可以使用以下方法确定哪个工作日的每周负载百分比最高。

=Sum(Fields!Loads.Value) / Sum(Fields!Loads.Value, "MyDataSet")

这给了我每天的总体百分比。

然后,我需要根据是否设置了标志来过滤一些数据(因此是主帖的原因。)使用相同的方法,我发现 IIF 函数即使在总和内也可以在行级别上工作,所以它变成了相当“明显”(尽管当时对我来说并不明显)。

=Sum(IIF(Fields!Option1.value=1,Fields!Loads.Value, 0)) / Sum(Fields!Loads.Value, "MyDataSet")

这告诉我选择了 option1 的那一周相同负载的百分比。

我希望这个解决方案对其他人也有帮助。

于 2013-08-06T14:12:51.927 回答