Sql 水晶报告-分组
我正在使用Visual Studio 2008,并希望在报告中显示以下SQL查询:Sql 水晶报告-分组,sql,crystal-reports,Sql,Crystal Reports,我正在使用Visual Studio 2008,并希望在报告中显示以下SQL查询: select name, count(*) from mytable group by name; 我可以通过创建一个数据集来实现这一点,该数据集本质上就是上面的查询(由“name”和“count”列组成),但是仅仅为这个查询创建一个额外的数据集似乎有些过分。我更愿意像我在项目中对其他报表所做的那样,拥有一个数据集,即整个表: select * from mytable; 然后使用Crystal Report
select name, count(*) from mytable group by name;
我可以通过创建一个数据集来实现这一点,该数据集本质上就是上面的查询(由“name”和“count”列组成),但是仅仅为这个查询创建一个额外的数据集似乎有些过分。我更愿意像我在项目中对其他报表所做的那样,拥有一个数据集,即整个表:
select * from mytable;
然后使用Crystal Report功能执行分组。然而,我找不到一种方法来进行分组。我想这是可能的?这将允许我将数据集重新用于项目中的其他区域,而不必为每个报告创建唯一的数据集。在crystal reports中,添加group by“name”字段,并将任何字段的摘要从detail插入其中,将摘要功能更改为“count”。在crystal中添加group字段;在本例中,在“名称”字段上 在组的页脚中插入详细信息
在组的页脚中插入计数函数,根据记录唯一标识符计数。例如,如果您有多个相同名称的事件,也可以使用不同的计数。为了获得最佳性能,您应该在服务器端真正使用GROUP BY。
创建一个视图,将数据提供给Crystal报表 您可以在Crystal中进行分组,但会遇到性能问题
随着报表查询的数据不断扩大 这是一个设计决策,但从长远来看,它节省了大量时间和客户机处理 我倾向于首先设计视图(WHERE子句、GROUP BY子句、SELECT中的DB函数)
然后在我准备好数据库端的数据之后,我会看到水晶报告
我的建议是从目的开始 分组字段 无需编写SQL查询,就可以对表中的数据进行分组 在字段管理器中,您可以找到“组名字段”,右键单击并选择“组专家” 选择后,您将获得一个Group Expert对话框,其中显示在数据表中找到的字段。选择要分组的字段名。 (这里我选择了“项目名称”) 您还可以在该字段下创建子组,这些组将被分类为A组、B组 现在,您可以在crystal报表中自动找到添加的组字段! 分组完成了 计数字段 要计算报表中记录或字段的数量,您需要添加新的“Running Total fields” 添加要计数的字段 添加字段后,将“摘要类型”更改为“计数”,然后按“确定” 将此合计字段添加到您需要的区域的报告中(建议使用组页脚) 现在“查找”字段名已分组并计数,无需编写任何SQL查询
希望这会对你有所帮助,如果有意见请留言 如果可能,创建一个对数据集进行分组的数据库视图,然后在crystal报告中使用该视图。这是您试图在报告中完成的最简单、可读性最强的实现。由于某些原因,我无法添加第一幅图所示的Group Expert。我的仅显示刷新选项。我必须从一开始就使用标准报告向导来创建两个Group By字段:(