关联查询

阅读(3198) 标签: 关联查询,

通常在做查询时,不仅需要对单表做明细查询,很多情况还需要对多表做关联查询。这种在查询控件中也是完全支持的,可通过对元数据做高级设计,然后通过外键属性化、同维表等同化等方法,将多表关联透明化。用户可随意拖拽需要查询的维度指标进行查询。

 

多层查询

本节我们以多层分析中的场景为例,介绍如何使用查询控件做多层查询。

在元数据层设计器中打开多层分析小节中创建的lmd文件。

 

通过服务à发布并浏览 DQL 明细查询菜单打开发布对话框,选择前面制作好的元数据文件,将元数据文件发布到URL指定的报表DQL Server服务中,发布前需保证要使用的报表DQL Server服务为启动状态(报表DQL Server服务的启动可参考启动报表DQL Server服务小节):

关于报表DQL Server独立部署的详解可参见报表DQL服务器部署集成小节。

点击【发布】按钮,后台程序会自动启动内置的 TOMCAT服务,并打开查询页面:

拖拽年、月、客户ID订单金额四个指标,为年添加过滤条件,过滤出2012年的订单记录。

点击按钮进入分析页面,查看分析数据。

分表

本节将以分表为例,讲述在查询控件中对分表的使用。

步骤一:连接数据源

本例以产品自带的demo数据源为例,点击菜单“服务”à“启动示例数据库”,控制台显示“数据库已启动”信息,表示demo数据源所需连接的HSQL数据库已启动。

步骤二:设计分表元数据

首先我们要新建一个元数据类型的文件

新建分表,并选中“回款单2011”及“回款单2012

编辑分表表名为“回款单”,并且选中“回款单ID”作为主键

在分区标签下,分段字段名称选中“回款单ID”,编辑段界为“100”。

图中的设定,相当于设定分区回款单2011 中,分段字段回款单ID<=100;最后的一个分区回款单2012 的段界可以为空白,此时最后一个分区无上限。

保存文件为test.lmd。(详细请见:高级元数据设计-分表

步骤三:将test.lmd部署到报表DQL Server服务中,启动报表DQL Server服务

元数据的部署可参考报表DQL Server部署小节。

步骤四:启动服务器

润乾报表嵌入了内置的TOMCAT打开DQL元数据层设计器,通过工具栏最右方的启动服务器按钮启动服务器,也可以通过菜单“服务”“启动TOMCAT”启动。

步骤五:访问查询控件界面

点击,选择“DQL明细查询”,进入查询页面:

将“回款单”中需要展示的字段进行拖拽展示

在“回款单ID”字段下设置过滤条件“回款单.回款单ID 小于 90”,意为:表中仅显示回款单ID小于90的回款单ID、回款日期及金额

保存之后,在顶部菜单栏点击“查询数据”:

界面中将回款单ID小于90的记录全部查询出来了:

最终生成的查询语句如下所示:

DQLSELECT T0.(回款单ID) 回款单ID ,T0.(回款日期) 回款日期 ,T0.(金额) 金额 FROM 回款单 T0 WHERE ((T0.回款单ID<90))

SQLSELECT T_1."回款单ID" "回款单ID",T_1."回款日期" "回款日期",T_1."金额" "金额" FROM (SELECT * from "回款单2011") T_1 WHERE ((T_1."回款单ID"<90))

由于筛选字段为分段字段,所以查询时根据段界的设定,只查询物理表“回款单2011”中回款单ID小于90的数据。

 

知识点:

1、作为分区的两个或多个数据库表需要有相同的字段