Reporting services MS报表设计器-什么是表组以及如何使用它们?

Reporting services MS报表设计器-什么是表组以及如何使用它们?,reporting-services,ssrs-grouping,report-designer,Reporting Services,Ssrs Grouping,Report Designer,我正在使用ReportingServices2000/2005和VisualStudio2005以及内置报表设计器处理一些现有MS报表的项目 我遇到了一个报告,它使用一个表来显示由存储过程获取的数据。我的工作要求我修改报告和存储的进程 我已经对存储过程进行了更改,当在SQL Management Studio中测试时,它会返回正确的数据。然而,在报告中,由于某种原因,一些数据丢失了,尽管我使用了完全相同的参数 我有一种隐秘的感觉,它与为报表的主表定义的表组有关。该表定义了两个表组。我删除了第二个

我正在使用ReportingServices2000/2005和VisualStudio2005以及内置报表设计器处理一些现有MS报表的项目

我遇到了一个报告,它使用一个表来显示由存储过程获取的数据。我的工作要求我修改报告和存储的进程

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

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


有人能告诉我如何调查/解决这个问题,什么是表组,以及如何使用它们的正确方向吗。

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

作为一个例子,考虑SQL:

中的销售结构
sales_month
sales_day
sales_product
sales_value
您可以使用查询返回SQL中按日期顺序排列的所有销售的列表

select * from sales order by sales_month, sales_day;
select sales_month, sum(sales_value) as monthly_sales 
from sales group by sales_month order by 1;
或者,您可以在SQL中随查询返回所有销售情况的月度汇总

select * from sales order by sales_month, sales_day;
select sales_month, sum(sales_value) as monthly_sales 
from sales group by sales_month order by 1;
通过使用按月份分组的报告表,以及详细信息行和组页脚,您可以在每个月末按日期顺序列出所有销售,并为每个月进行小计


SSRS帮助中有一些教程说明了如何在报表中使用分组。

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

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

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


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

上述方法对我很有效,尽管我不完全理解问题或解决方案。因此,如果So允许,我会将其标记为正确的解决方案,除非有人能够提供更好的理解。