可视化查询设计器查询创建

本章节将介绍如何在可视化查询设计器中创建查询。在可视化查询设计器中创建查询只需要下面简单的几步操作:

步骤1:添加数据表中的字段生成简单查询

步骤2:设置表关系(只适用于多数据表查询)

步骤3:为个别字段或者数据表设置选项

步骤4:执行查询

步骤5:预览查询结果

本章节包含下面内容

l 创建和执行查询(单数据表)

l 创建和执行查询(多数据表)

l 预览查询

l 保存查询

l 清除查询

l 修改查询

l 删除字段

l 数据排序

l 展示非重复值

l 合计函数和分组

l 查询中隐藏字段

l 设置过滤条件

l 创建参数化查询

下面步骤的前提是已经添加一个页面报表或者RDL报表模板并且连接到数据源。更多信息参见添加ActiveReport到项目连接数据源章节。关于如何访问可视化查询设计器请参见访问可视化查询设计器章节。

注:本章节使用数据库Reels。默认情况下,Reels.mdb文件位于我的文档\GrapeCity Samples\ActiveReports 9\Data文件夹下。

l 创建和执行查询(单数据表)

在可视化查询设计器中,可视化界面可以帮助用户快速的设计单数据表的简单查询。

SQL语句的查询结果

SQL查询

select Movie.MovieID, Movie.Title

from Movie

可视化查询设计器创建查询步骤

1.   数据库视图中的Movie数据中,拖拽MovieID字段到已选字段面板上。

2.   添加相同数据表中的Movie.Title字段到已选字段面板上。

3.   在可视化查询设计器的工具条中点击执行按钮。

预览结果面板中出现与下面图片相似的结果数据。

l 创建和执行查询(多数据表)

在可视化查询设计器中,可以通过可视化界面关联多个数据表和设置它们之间的关系。

下面的示例展示了如何实现Reels数据库中的数据表Movie右外连接数据表MovieCrew和使用WHERE子句过滤结果。更多关于数据表关系和在可视化查询设计器中连接,参见表和关系章节。

SQL语句查询结果

SQL查询

select Movie.MovieID, Movie.Country, Movie.Title, MovieCrew.CastID,

MovieCrew.TitleID from Movie right join MovieCrew on

MovieCrew.MovieID = Movie.MovieID

where (Movie.Country = 'USA' and MovieCrew.CastID =1)

可视化查询设计器创建查询步骤

1.   数据库视图中的数据表Movie中,拖拽MovieID,Country,和Title字段到已选字段面板。

2.   数据库视图中的数据表MovieCrew中,拖拽CastID和TitleID字段到已选字段面板。

3.   当添加第二步骤中的第一个字段时,表关系对话框自动出现在屏幕中。

表关系对话框中,可以选择数据表MovieCrew中其他任意与相关表字段匹配的字段用于连接。

4.   表关系对话框中,选择右外连接类型连接数据表Movie和MovieCrew。右外连接标签高亮显示。参见表和关系章节获取更多关于连接类型的信息。

5.   表关系对话框中,点击确定保存表之间的关系。

一旦创建好数据表之间的关系,可以通过表和表关系面板中的关系按钮打开表关系对话框。

6.   已选字段面板的条件选项下,为数据表Movie的Country字段添加过滤条件,设置值为 "= 'USA'"

7.   再一次,在已选字段面板的条件选项下,为数据表MovieCrew的CastID字段添加过滤条件,设置值为 "= 1"

8.   点击可视化查询设计器工具条上的执行按钮。

预览结果面板中出现与下面图片相似的结果数据。

l 预览查询

当完成查询设计之后,可以执行查询并且在可视化查询设计器中预览结果。

1.     在可视化查询设计器的查询工具区域的工具条上。

2.     点击按钮。

可以在可视化查询设计器对话框的预览结果面板中预览结果数据。

      

注:当预览查询结果时,可视化查询设计器中只展示数据库中部分数据。       

l 保存查询

页面报表/RDL报表

一旦在可视化查询设计器中创建好查询,点击保存按钮会将查询保存到数据集对话框中。

1.   一旦在可视化查询设计器中创建好查询,在可视化查询设计器的查询工具区域的工具条上。

2.   点击按钮。在数据集对话框的查询页的查询字段下出现查询内容。

3.   点击确定关闭对话框。

数据集和查询的字段作为节点出现在报表资源管理器中。

区域报表

一旦在可视化查询设计器中创建好查询,点击保存按钮会将查询保存到报表数据源对话框中。

1.   一旦在可视化查询设计器中创建好查询,在可视化查询设计器的查询工具区域的工具条上。

2.   点击按钮。在报表数据源对话框的查询语句中出现查询内容。

3.   点击确定关闭对话框。数据集和查询的字段作为节点出现在报表资源管理器中。

l 清除查询

查询一旦创建,已选字段面板中会被字段填充和表和表关系面板中展示使用字段所属于的数据表。

1.   查询工具区域的工具条上。

2.   点击按钮。此操作会清除查询工具区域中所有内容,包括已选字段表和表关系面板。同样会清除SQL标签页中的SQL查询和预览结果面板中出现的数据。

l 修改查询

在可视化查询设计器中有两种方式可以修改查询:

l 在可视化查询设计器SQL标签页直接修改查询。

按照下面的步骤在可视化设计器手动修改SQL以达到修改查询:

1.     数据库视图Movie数据表中,拖拽MovieIDTitle字段到已选字段面板。

2.     在查询工具下,切换到SQL标签页手动修改查询。

3.     SQL标签页中输入字段Movie.Length

SQL查询

select Movie.MovieID, Movie.Title, Movie.Length

from Movie

4.     在可视化查询设计器的工具条上点击执行按钮

新加的Length列会在预览结果面板中出现。

l 在可视化查询设计器中修改已经存在的SQL查询

此方式存在局限性,只局限于可视化查询设计器支持的查询类型。

假设在页面/RDL报表的数据集对话框中或者页面报表的报表数据源对话框存在下面的查询,按照下面的步骤在可视化查询设计器中修改查询。

SQL查询

select Movie.MovieID, Movie.Title

from Movie

1.     打开可视化查询设计器在查询工具下切换到SQL标签页,SQL查询已经存在此标签页中。

2.     切换到设计标签页,已选字段面板中已经包含MoiveIDTitle字段。

3.     数据库视图中,拖拽Movie数据表的Length字段到已选字段面板。

4.     再次切换到SQL标签页会看到如下的查询:

SQL查询

select Movie.MovieID, Movie.Title, Movie.Length

from Movie

5.     在可视化查询设计器的工具条上点击执行按钮。在预览结果面板中出现与下面相似的结果数据。

l 删除字段

可以在可视化查询设计器中删除查询中任意字段。当从查询中删除字段后,此字段仍然存在在数据库中,但是已经不在查询中使用。

1.     数据库视图Movie数据表中,拖拽字段MovieIDCountryTitle字段到已选字段面板上。

2.     悬浮鼠标在已选字段面板的MovieID字段上以便显示删除图标。

3.     点击删除图标删除字段。可以注意到一旦字段被删除,SQL标签页中SQL查询也一同删除。

l 数据排序

在可视化查询设计器中可以对数据表,查询,form或者报表中一个或者多个字段的记录进行排序。例如,可以按照Title字段升序和Country降序对Movie数据表排序。当使用多个字段排序时,可以指定哪个字段为第一排序和哪些靠后。

使用SQL的查询结果

SQL查询

select Movie.MovieID, Movie.Title, Movie.Countryfrom Movieorder by Movie.Country desc, Movie.Title asc

在可视化查询设计器中创建查询步骤:

1.     数据库视图Movie数据表中拖拽MovieIDTitleCountry字段到已选字段面板上。

2.     在已选字段面板上,设置Title字段的排序选项为Ascending。排序顺序自动设置为1.

3.     设置Country字段的排序选项为Ascending排序顺序自动设置为2。基于步骤2和步骤3的操作,数据表的值先按照Title字段然后Country字段升序排序。

4.     Country字段中,修改排序顺序值为1Title字段的排序顺序自动修改为2。现在数据表中的值先按照Country字段然后Title字段的升序排序。

5.     在可视化查询设计器的工具条上点击执行。在预览结果面板中出现于下面相似的结果数据。

l 取消重复值

当从数据表中获取数据时,可能获取到重复的记录。在查询的Select语句中使用Distinct操作可以移除类似的值。

在可视化查询设计器中,可以使用工具条上的取消重复值复选框消除重复的记录。例如,可以获取数据MovieYearReleased字段唯一的记录。

使用SQL的查询结果

SQL查询

select DISTINCT Movie.Title, Movie.YearReleased

from Movie

 

可视化查询设计器创建查询步骤

1.     数据库视图Movie数据表中,拖拽TitleYearReleased字段到已选字段面板上。

2.     在可视化查询设计器的工具条上,勾选复选框用于展示YearReleased字段唯一的值。

3.     点击执行按钮。

预览结果面板获取与下面相似的结果数据。

l 合计函数和分组

可以根据字段对数据分组和创建合计查询实现与函数相同的功能例如Sum或者Avg。例如,通过字段CountryMovie数据表进行分组和计算不同country分组中的UserRating字段的平均值。

使用SQL查询结果

SQL查询

select Movie.Country, Avg(Movie.UserRating) as [Average Ratings]

from Movie group by Movie.Country

可视化查询设计器创建查询步骤

1.     数据库视图Movie数据表中,拖拽CountryUserRating已选字段面板。

2.     已选字段面板的Country字段下,在总计的下拉列表中选择GroupBy按照country对数据分组。

3.     已选字段面板的UserRating字段下,设置字段别名为Average Rating

4.     UserRating字段下,从总计下拉列表中选择预定义的Avg。此操作会计算movieUserRating字段的平均值。

5.     点击可视化查询设计器工具条上的执行按钮。

在预览结果面板中出现与下面相似的结果数据。

l 隐藏查询中字段

可视化查询设计器中的隐藏选项允许隐藏查询结果中的部分数据。例如,可以隐藏查询结果集数据表MovieMovieID字段。

按照下面的步骤通过可视化查询设计器隐藏字段

1.     数据库视图Movie数据表中,拖拽TitleUserRatingCountry字段到已选字段面板上。

2.     已选字段面板中,设置Country字段的条件选项为= 'USA'

3.     已选字段面板中,设置Title字段的字段别名为Movies from USA

4.     按照下面图片中的操作取消Country字段输出的复选框以便在结果集中隐藏字段。

5.     点击可视化查询设计器工具条上的执行按钮。

数据中Country字段不在预览结果面板中显示。

l 设置过滤条件

SQLWhere子句用于过滤满足条件的结果数据。Where子句可用于获取指定数据而忽略无关的数据。

例如,只展示MovieID1或者2的电影的UserRating字段值,可以在可是可视化查询设计器的Where子句中使用 '=' 操作。

使用SQL的查询结果

SQL查询

select Movie.MovieID, Movie.UserRating

from Movie

where (Movie.MovieID = 1 or Movie.MovieID = 2)

可视化查询设计器创建查询步骤

1.     数据库视图Movie数据表中,拖拽MovieIDUserRating字段到已选字段面板上。

2.     在已选字段面板的MovieID字段下,设置条件选项为=1

3.     MovieID字段的条件中设置=2

MovieID = 1或者MovieID= 2的数据行在结果集中显示。

4.     点击可视化查询设计器的执行按钮。

l 创建参数化查询

可以使用可视化查询设计器在查询中设置参数。参数化查询一般在查询执行前提示用户输入值,用于决定哪种类型的数据在结果集中显示。

简单的参数化参数例子,提示用户输入Movie ID用于显示TitleUserratingLength字段值。

使用SQL的查询结果

SQL查询

select Movie.MovieID, Movie.Title, Movie.Country, Movie.UserRating

from Movie

where Movie.Country = ?

可视化查询设计器创建查询步骤

1.     数据库视图Movie数据表中,拖拽MovieIDTitleUserRatingCountry字段到已选字段面板上。

2.     在已选字段面板的Country字段下,设置条件选项为= @Country

3.     点击可视化查询设计器的执行按钮,参数对话框会自动出现在屏幕中间。

4.     在参数对话框中输入参数值USA然后点击确定。

在预览结果面板中出现与下面相似的结果数据。