1

我正在使用带有内置报表设计器的 Reporting Services 2000/2005 和 Visual Studio 2005 处理一些现有 MS 报表的项目。

我遇到了一份报告,该报告使用表格来显示由存储过程获取的数据。我的工作需要我修改报告和存储的 Proc。

我已经对存储过程进行了更改,并且在 SQL Management Studio 中进行测试时它返回了正确的数据。然而,在报告中,一些数据由于某种原因丢失了,即使我使用的是完全相同的参数。

我有一种偷偷摸摸的感觉,它与为报告的主表定义的表组有关。该表定义了 2 个表组。我删除了第二个表组中的一些项目,因为它们已从存储的过程和报告中删除。也许我需要将存储过程中的新字段/列添加到表组中?

谁能指出我如何调查/解决这个问题的正确方向,以及表组是什么,以及它们的用途。

4

2 回答 2

0

表中的组的工作方式与 SQL 查询中的组类似——其中的数据每组只返回一次,而不是每条记录一次。但是,由于您还可以在表中包含详细信息行,因此您还可以从单个报告表中查看组级别和详细信息级别的数据,而这需要 SQL 中的单独(子)查询。

例如,考虑 SQL 中的销售结构:

sales_month
sales_day
sales_product
sales_value

您可以使用查询在 SQL 中按日期顺序返回所有销售的列表

select * from sales order by sales_month, sales_day;

或者您可以使用查询在 SQL 中按月返回所有销售额的摘要

select sales_month, sum(sales_value) as monthly_sales 
from sales group by sales_month order by 1;

通过使用按月分组、带有详细信息行和组页脚的报告表,您可以按日期顺序列出所有销售,并在每个月末对每个月进行小计。

SSRS 帮助中的教程说明了在报表中使用分组。

于 2010-07-07T14:21:32.740 回答
0

好的,所以我将存储过程中的新列添加到表组中,它按预期工作。

我认为通过省略表组中的几列,报告将分组在更少的字段上,这意味着这些行都被视为相同的值。

当我一次添加一个新字段以匹配存储过程中的字段时,报告的准确性就越好。

我认为这类似于 SQL 要求 Select 子句中的每个字段也出现在 Group By 子句中的方式。

于 2010-07-07T14:47:21.060 回答