0

我们需要在 CRM 中有一个半复杂的报告,显示一些累积的潜在客户值。我看到此报告工作的唯一方法是编写一个存储过程,该过程创建几个临时表并使用游标计算/累积数据。然后是从存储过程中获取数据以从 Reporting Server 报告中访问的问题。有谁知道这是否可能?如果我可以选择编写自定义 SQL 语句来生成报告数据,那就太好了。

任何指针?

编辑:

为了澄清我对游标的使用,我可以准确地解释我在用它们做什么。

我的报告(应该是图表)的基础是一个包含 3 个相关列的表(table1):

Start date
Number of months
Value

我创建了一个临时表 (temp1),其中包含以下列:

Year
Month number
Month name
Value

首先,我遍历第一个表中的行,并在临时表中为每个月插入一行,递增月份,同时将值设置为总值除以月份。IE:

2009-03-01,4,1000 在表 1 中的收益率

2009,03,March,250
2009,04,April,250
2009,05,May,250
2009,06,June,250

在 temp1 表中。

然后使用一个新游标对 temp1 中的值进行求和并创建一个运行总计,并将其输入到 temp2 中,该值作为数据返回给调用者以供图表使用。

示例 temp1 数据:

2009,03,March,250
2009,04,April,200
2009,04,April,250
2009,05,May,250
2009,05,May,100
2009,06,June,250

产生 temp2 数据:

2009,03,March,250,250
2009,04,April,450,700
2009,05,May,350,1050
2009,06,June,250,1300

最后一列是运行总计,每个新年从零开始。

4

4 回答 4

0

您是否考虑过使用视图。如果非常复杂,请使用视图层次结构。每个视图将代表您的一个临时表。

编辑基于评论

我在考虑 SQL 视图,基本上与您在存储过程中编写的 SQL 相同。

于 2009-07-13T08:34:09.030 回答
0

我没有这样做 - 只是想我将如何开始。我会确保当存储过程填充临时表时,它们使用过滤视图来提取数据。然后,我会将执行 SP 的访问权限设置为具有与过滤视图相同的安全角色(这应该几乎允许 PrivReportingGroup 的成员)。

我认为这将涵盖允许您在报告中执行 SP。我想如果您事先设置了 SP,SSRS 设计人员会通过某种方式向您展示可用的数据并在设计时选择 SP。但我不确定。

于 2009-07-13T16:44:56.627 回答
0

首先,由于大多数游标是不需要的,你到底在做什么。也许有一个基于集合的解决方案,然后您可以使用视图。

另一种可能的思路是,如果您正在执行诸如在光标中运行总计之类的操作,您是否可以在没有运行总计的情况下创建一个视图作为源并让报表本身进行这种计算?

此外,SSRS 报告可以使用存储过程作为数据源,请阅读在线书籍中的相关信息。

于 2009-07-13T21:42:13.017 回答
0

我找到了解决方案。从 Microsoft 下载 Report Builder 2.0。这允许我为报表数据编写查询和调用存储过程。

Microsoft SQL Server 报表生成器链接

于 2009-07-24T10:52:24.477 回答