【问题标题】:Can I (ab)use SQL-Server Analysis Services to create user generated reports?我可以(ab)使用 SQL-Server Analysis Services 来创建用户生成的报告吗?
【发布时间】:2012-08-18 16:13:31
【问题描述】:

问题:

我们(也就是说我,一个人)应该实现“用户生成报告”(最多1个月,月底/新月初展示)。

问题1:
我所说的用户是指具有任何技术技能(如 SQL 或 VBA)的用户。

问题 2:
技术仅限 .NET,所以我不能使用 Java(以及基于 Java 的东西,比如 Jasper)

问题 3:
应该可以导出到 Excel(我的意思是 XLS 或 XLSX,而不是 XML 或 CSV)

问题 4:
应该可以对数据进行分组(多组)

问题 5:
数据库是 Microsoft SQL-Server(推测是 2008 R2,但最终可能是 2008 R1 或 2005)

奖励“问题”:
基于 Web,使用 ASP.NET WebForms,但如果无法使用 Web,也可以基于桌面


除了这些要求和时间限制的荒谬之外......

一种解决方案是由 SSRS(SQL-Server 报告服务)提供的报告生成器。 但是,有一些缺点,我认为是非常严重的:

  1. 创建报表的用户基本上仍然需要了解 SQL(左、右、内、外连接及其后果)。由于用户可能不理解其中的区别,因此如果他们没有得到或得到错误的结果(例如空列上的内部联接),他们只会责备我。

  2. 创建报告的用户对数据库/数据结构一无所知(例如软删除、持续时间日期)。此外,垃圾进垃圾出可能会成为一个问题,包括错误的数据等。...

  3. 如果他们要创建一个矩阵,并且要对 未四舍五入 值的小计求和,则总计的总和不会与小计的总和相匹配,因为报告将在逗号后仅显示 2 位数字(因此将值四舍五入为 2 位)用于小计,但它将根据所有值的总和(未四舍五入)而不是总和来计算总和小计(四舍五入)。同样,他们会为此责备我或数据或报告生成器。

  4. 由于报表生成器不会在添加一个带有连接的附加表后显示结果数,用户将无法判断他们是否拥有正确的记录数,这将不可避免地导致在错误的结果中。再说一遍,他们会怪我的。

  5. 日期过滤器:需要应用它们,但不一定在 where 中,而是在 join 中。报表生成器不支持。这样的严肃报告是不可能的。

  6. 状态:如前所述,我们使用软删除和状态字段为 99 的已删除记录。 where 中的过滤状态是危险的,有时必须发生在 join 中。同样,报表生成器不支持这一点,除非您使用原始 SQL,因为用户不会了解 SQL,这毫无意义。

  7. 安装报表生成器需要管理员权限,或者需要客户公司的 IT 部门才能安装。以及适用于相应 ReportBuilder 的相应 .NET 框架,以及适用于相应 Report-Server 的相应 ReportBuilder,因为 SQL-Server 2005 Reporting Service 不适用于 SQL-Server 2008 Reporting Services 的报告,而 SQL 2008 R1 不适用于R2。这也要求所有能够做到这一点的用户都处于某个 SQL-Server 报告服务报告生成器用户角色中,这要求 IT 部门将用户放入适当的活动目录组中,到目前为止,该组从未与任何我们的客户。另外,我不相信 IT 部门知道他们安装了适当的 ReportBuilder,如果他们同意安装的话。


现在我曾经(很久以前)碰巧在 youtube 上查看了 SSAS(SQL-Server 分析服务)的演示文稿。
但是我再也找不到链接了。
但无论如何,我没有任何 SSAS 经验,只有 SSRS。

我认为有可能以这样一种方式滥用 SSAS,即用户可以通过 Excel 连接到它,并获取数据并或多或少地按照他们想要的方式对它们进行汇总。此外,他们将能够看到原始数据。

而且我可以预先准备一些查询表中的原始数据(我也可以通过数据集使用 reportbuilder)。

有没有人足够了解 SSAS,可以告诉我在这段时间内这是否可行?
如果分析服务器和 Excel 版本 (2007/2010) 所需的加载项与所有分析服务器版本兼容,或者从 Excel 2007 访问 2008 R2 或从 Excel 2010 访问 SSAS-2005 时出现问题。

或者我是否一定会遇到 SSAS 比 ReportBuilder 更多的问题?

【问题讨论】:

    标签: reporting ssas reportbuilder ssas-2008


    【解决方案1】:

    如果您的问题是 SSAS 是否是解决问题的合理方法,我的答案是肯定的。 SSAS 的好处是,一般而言,数据以业务用户易于理解的方式建模,并且可以在 Excel 中轻松操作以生成各种报表,而无需了解查询语言。对于任何版本的 SSAS,您都可以使用 Excel 版本 2007 或 2010。这不需要加载项 - 提供程序已内置于两个 Excel 版本中。此外,通过将模型放入 SSAS,您实际上可以通过各种工具更容易地访问您的数据 - 如果您愿意,可以使用 Excel 或 SSRS 或各种第 3 方工具。换句话说,与报表生成器相比,您不会限制使用此方法的选项,而是扩展您的选项。

    也就是说,使用 SSAS 可能很简单,也可能很困难。这取决于您使用的数据类型以及必须添加到模型中的任何计算的复杂性。你是否能在你有空的时间内实现你的目标,这不是我能回答的问题。这实际上取决于您拥有的数据类型和用户需要的报告类型。

    我可以为您指出一些资源。我为 TechNet 写了一篇文章作为温和的介绍:http://technet.microsoft.com/en-us/magazine/ee677579.aspx。它是为 SSAS 2008 编写的,但原则适用于 SSAS 2005、SSAS 2008、SSAS 2008 R2 和 SSAS 2012。

    如果您喜欢视频介绍,请参阅http://channel9.msdn.com/Blogs/rdoherty/Demo-Developing-a-SQL-Server-2008-R2-Analysis-Services-Database 开始。您可以在 channel9 上找到很多关于 SSAS 的免费视频资料。只需搜索 SSAS。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-03
      • 1970-01-01
      相关资源
      最近更新 更多