通常在做查询时,不仅需要对单表做明细查询,很多情况还需要对多表做关联查询。这种在查询控件中也是完全支持的,可通过对元数据做高级设计,然后通过外键属性化、同维表等同化等方法,将多表关联透明化。用户可随意拖拽需要查询的维度指标进行查询。
本节我们以多层分析中的场景为例,介绍如何使用查询控件做多层查询。
在元数据层设计器中打开多层分析小节中创建的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的记录全部查询出来了:
最终生成的查询语句如下所示:
DQL:SELECT T0.(回款单ID) 回款单ID ,T0.(回款日期) 回款日期 ,T0.(金额) 金额 FROM 回款单 T0 WHERE ((T0.回款单ID<90))
SQL:SELECT T_1."回款单ID" "回款单ID",T_1."回款日期" "回款日期",T_1."金额" "金额" FROM (SELECT * from "回款单2011") T_1 WHERE ((T_1."回款单ID"<90))
由于筛选字段为分段字段,所以查询时根据段界的设定,只查询物理表“回款单2011”中回款单ID小于90的数据。
知识点:
1、作为分区的两个或多个数据库表需要有相同的字段