收藏 分享(赏)

NC5自定义查询用户手册new.doc

上传人:HR专家 文档编号:11469799 上传时间:2020-05-09 格式:DOC 页数:52 大小:4.04MB
下载 相关 举报
NC5自定义查询用户手册new.doc_第1页
第1页 / 共52页
NC5自定义查询用户手册new.doc_第2页
第2页 / 共52页
NC5自定义查询用户手册new.doc_第3页
第3页 / 共52页
NC5自定义查询用户手册new.doc_第4页
第4页 / 共52页
NC5自定义查询用户手册new.doc_第5页
第5页 / 共52页
点击查看更多>>
资源描述

1、第17章 在数据库应用系统中,数据查询始终是应用的基础和核心。数据利用和挖掘的常用方式就是从数据库中获取用户所需的业务数据,按照用户预定义的格式,通常以业务报表的形式提供给用户进行浏览、分析、统计、打印及转换,还可作进一步的处理。由于查询需求的多样性,不可能穷举所有的用户查询,当然也不能要求普通用户去直接拼写SQL语句,因此需要提供一个工具让用户可以自己进行查询的设计和定制。17.6查询引擎查询引擎是面向高级实施人员和专业开发人员的查询建模工具,可以全面支持复杂查询的设计和个性化的报表展现。查询引擎由两个功能点组成:查询引擎管理和查询引擎权限控制。17.6.0 查询引擎基本概念及案例17.6.

2、0.1 基本概念数据表、临时表、报表:数据表是数据库里物理存在的表;报表是符合用户要求的一个界面展现,它通常是一个二维的数据表格;有时我们仅仅通过数据表无法直接查出报表要求的数据结果,这时可能需要通过数据表查询建立一些具有过渡性质的中间表,然后再通过这些中间表查出最终结果,这种起到过渡作用的表称为临时表。数据字典:数据字典提供数据库对象的逻辑属性,有助于提高查询定义的直观性和易用性。内连接与外连接:这是多表查询中的不同连接方式,其中外连接主要包括左连接(left out join)和右连接(right out join)两种。左连接取出左侧关系中所有与右侧关系的任一元组都不匹配的元组,用空值填

3、充所有来自右侧关系的属性,再把产生的元组加到内连接的结果上。右连接与左连接完全对称,“表A左连接表B”与“表B右连接表A”的效果是一样的。以下述的表A和表B为例,它们以字段K作为键值进行不同连接后会得到不同结果集。KV2011000330005500表BKV1011002200330表A内连接(select A.K, A.V1, B.K, B.V2 from A inner join B on A.K=B.K)的结果是:A.KA.V1B.KB.V2011001100033003300左连接(select A.K, A.V1, B.V2 from A left join B on A.K=B.K

4、)的结果是:A.KA.V1B.KB.V20110011000220033003300右连接(select A.K, A.V1, B.V2 from A right join B on A.K=B.K)的结果是:A.KA.V1B.KB.V201100110003300330005500普通查询(简单查询)与复合查询:复合查询和普通查询的关系如图所示。两者的查询结果都可以看成是临时表,其差别在于:普通查询是基于数据表定义查询,复合查询是基于已经定义好的查询来定义查询。参数定义:通常用于查询定义中SQL向导设计工具中的where条件表达式中,存在字符型和数值型(浏览时可直接录入)、字符枚举和数值枚举

5、型参数(浏览时可下拉框录入),参照型参数(浏览时可参照录入)等穿透:当明细表与汇总表一起出现时,某种内在联系可从汇总数据联查明细数据,称穿透或钻取分级汇总:按分级列(具有一定级次的编码规则),对汇总列(数值型)进行各级汇总,并在各级末尾添加分级汇总列。交叉:按一定交叉规则进行旋转交叉或投影交叉1)旋转交叉:行列不固定存在一定交叉规则(指定交叉行、交叉列、交叉值字段)之后,报表全动态地实现数据交叉。常用多层列表头辅助体现交叉的维度,且交叉规则能够在运行态重新设定。适用于无法预先确定交叉后列结构的报表;2)投影类交叉:行列固定;每行、每列均对应一个筛选条件,而单元格第i行第j列的内容根据SQL语句

6、“select 统计函数(字段) from 表 where (行条件i) and (列条件j)”查出,且是个唯一的值交叉砝码:交叉设置界面中的交叉砝码的作用是,描述交叉值字段对应的列出现在交叉列展开后的哪个层次上。退化:在投影交叉查询中的筛选条件中设置为退化的项;用于在运行态(浏览态)进行再次投影交叉时,其结果集中需显示的备用行或备用列。在第一次投影交叉查询结果中,退化项则既不出现在行头上,也不出现在列头上。行间占比:行间占比:指先按分组排序列进行分组排序,然后计算单元格与其所在分组小计值的比,或者为单元格与其所在列总合计值的比列间占比:列间占比:指比例=本列数值/多列总和合并查询:报表部分区

7、域由查询结果填充、部分区域由手工填入,此类报表可通过“合并查询”模式完成。17.6.0.2典型报表案例:报表是由数据和格式组成的整体。报表中的取数规则离不开SELECT查询语句查询模型中的核心功能“SQL向导设计”实际是SELECT查询语句的可视化工具。如汇总表中的SELECT查询语句:SELECT 年度,公司编码,公司名称,科目,sum(借方发生额),sum(贷方发生额) FROM 凭证表INNER JOIN 凭证分录表 ON凭证表. 凭证主键=凭证分录表. 凭证主键INNER JOIN 公司目录表 ON凭证表. 公司编码=凭证分录表. 公司主键INNER JOIN 科目表 ON凭证分录表.

8、 科目主键=科目表. 科目主键WHERE 公司=corpGROUPBY年度,公司编码,公司名称,科目ORDERBY 年度,公司编码,公司名称ASC以下“SQL向导设计”工具(如下图)中:“连接表”页签对应FROM.部分“连接条件”页签对应INNER JOIN .ON部分“连接字段” 页签对应SELECT部分“筛选条件”页签对应WHERE部分“排序字段” 页签对应ORDERBY系统自动对不含聚合函数的字段作GROUPBY处理。(一)汇总表:年度公司编码公司名称科目借方发生额贷方发生额200101A1001100200101A2001100200202B1002200200202B20022002

9、00303C1003700200303C2003700用sql语言表示:SELECT 年度,公司编码,公司名称,科目,sum(借方发生额),sum(贷方发生额) FROM 凭证表,凭证分录表,公司目录表,科目表INNER.ONGROUPBY年度,公司编码,公司名称,科目ORDERBY 年度,公司编码,公司名称(可通过“SQL向导设计”功能完成。)(二)明细表:年度公司编码公司名称凭证号制单日期科目借方发生额贷方发生额200101A12001/9/11001100200101A12001/9/12001100200202B22002/8/11002200200202B22002/8/120022

10、00200303C32003/8/11003300200303C32003/8/12003300200303C42003/10/11003400200303C42003/10/12003400用sql语言表示:SELECT 年度,公司编码,公司名称,科目,借方发生额,贷方发生额 FROM 凭证表,凭证分录表,公司目录表,科目表INNERN.ONORDERBY 年度,公司编码,公司名称(可通过“SQL向导设计”完成。)(三)旋转交叉:如对上述的明细表进行旋转交叉(1)交叉列为1列时交叉行:凭证号、科目交叉列:年度交叉值:借方发生额交叉砝码(借方发生额):在列头的第2层复合维度:为Y时 年度 凭证

11、号、科目200120022003借方发生额借方发生额借方发生额110011002100220031003300120012200232003交叉行:凭证号、科目交叉列:年度交叉值:借方发生额交叉砝码(借方发生额):在列头的第1层年度 凭证号、科目借方发生额借方发生额借方发生额200120022003110011002100220031003300120012200232003(2)交叉列为多列时交叉行:凭证号、科目交叉列:年度、公司名称交叉值:借方发生额、贷方发生额交叉砝码(借方发生额、贷方发生额):在列头的第3层列复合维度:为Y时年度、公司名称 凭证号、科目200120022003ABC借方

12、发生额贷方发生额借方发生额贷方发生额借方发生额贷方发生额1100110012001100210022002200220031003300320033004100340042003400交叉行:凭证号、科目交叉列:年度、公司名称交叉值:借方发生额、贷方发生额交叉砝码(借方发生额、贷方发生额):在列头的第3层列复合维度:为N时年度、 公司名称凭证号、科目200120022003ABCABCABC借方发生额贷方发生额借方发生额贷方发生额借方发生额贷方发生额借方发生额贷方发生额借方发生额贷方发生额借方发生额贷方发生额借方发生额贷方发生额借方发生额贷方发生额借方发生额贷方发生额1100110012001

13、100210022002200220031003300320033004100340042003400(可通过“SQL向导设计”完成。)(四)投影交叉:部门姓名性别财务开发部Sbq男财务开发部sy男供应链开发部ghl女财务开发部fll女 性别部门男女财务开发部21供应链开发部2用SQL语言表示:select count(性别) from 人事视图 where 部门= 财务开发部 and 性别= 男(可通过“SQL向导设计”完成。)(五)穿透:(1)对旋转交叉结果穿透:年度公司编码公司名称凭证号制单日期科目借方发生额贷方发生额200101A12001/9/11001100200101A12001

14、/9/12001100200202B22002/8/11002200200202B22002/8/12002200200303C32003/8/11003300200303C32003/8/12003300200303C42003/10/11003400200303C42003/10/12003400200403C52004/4/11003500按单列(科目=1003)穿透结果:年度公司编码公司名称凭证号制单日期科目借方发生额贷方发生额200303C32003/8/11003300200303C42003/10/11003400200403C52004/4/11003500按多列(科目=100

15、3和年度=2003)穿透结果:年度公司编码公司名称凭证号制单日期科目借方发生额贷方发生额200303C32003/8/11003300200303C42003/10/11003400(可通过“SQL向导设计”及“穿透规则”中的查询间穿透来共同完成。)(2)对投影交叉结果穿透: 性别部门男女财务开发部21供应链开发部2按单元格穿透:部门姓名性别财务开发部Sbq男财务开发部sy男(可通过“SQL向导设计”及“穿透规则”中的投影交叉穿透功能来共同完成。)(六)行间占比年度公司编码公司名称凭证号制单日期科目借方发生额借方占比200101A12001/9/11001100200101A12001/9/1

16、2001100200202B22002/8/11002200200202B22002/8/12002200200303C32003/8/11003300200303C32003/8/12003400如按公司编码对借方发生额进行汇总:年度公司编码公司名称凭证号制单日期科目借方发生额200101A12001/9/11001100200101A12001/9/12001100小计200200202B22002/8/11002200200202B22002/8/12002200小计400200303C32003/8/11003300200303C32003/8/12003400小计700合计1300行

17、间占比结果:年度公司编码公司名称凭证号制单日期科目借方发生额借方占比1(借方发生额/分组小计)借方占比2(借方发生额/合计)200101A12001/9/110011000500769200101A12001/9/120011000500769200202B22002/8/110022000501538200202B22002/8/120022000501538200303C32003/8/110033000428602308200303C32003/8/120034000571403077(可通过“SQL向导设计”及“数据加工”中内置的分组统计、行间占比算法来共同完成。)(七)列向分支统计型

18、corpnamesexA公司韩千穗女A公司智银圣男A公司金晓光女A公司王丽娜女B公司金贤成男B公司姜希灿女通过SELECT corp, (CASE sex WHEN 男 THEN 1 ELSE 0 END) AS male, (CASE sex WHEN 女 THEN 1 ELSE 0 END) AS femaleFROM T将获得如下结果:corpmalefemaleA公司01A公司10A公司01A公司01B公司10B公司01SELECT corp, SUM(CASE sex WHEN 男 THEN 1 ELSE 0 END) AS male, SUM(CASE sex WHEN 女 THE

19、N 1 ELSE 0 END) AS femaleFROM TEM_CASEGROUP BY corp则将查出以下结果:corpmalefemaleA公司13B公司11(可通过“SQL向导设计”功能来完成。)(八)合并查询(半录入半嵌入型)部门汉族满族蒙古族1、直属部门情况财务部行政部2、开发部门情况HR产品开发部HR产品市场部(可通过“合并查询”功能来完成,上述表格中的部分区域通过手工录入,部分区域通过嵌入查询完成)17.6.1查询引擎管理操作方法在主菜单中单击客户化-自定义查询-查询管理中心的子菜单查询引擎管理,系统将弹出“查询引擎”的浏览窗口。查询引擎管理包括查询/界面对象树管理、查询模

20、型设计、界面模型设计等主要功能。17.6.1.1查询/界面对象树管理图17-6所示的查询引擎主界面左侧为一棵对象树,树上挂有代表查询对象和界面对象的节点,右侧为显示当前选中对象基本属性的属性框。图17-6查询引擎主界面文件夹管理:l 增加/删除/修改:在根节点或目录节点之下可以增加目录,删除目录时会删除目录下的所有对象。目录的可修改属性为目录名称。同一目录下的目录和对象不能重名。l 复制/剪切/粘贴:在查询子树或格式子树下,可以将一个目录及其下属内容从某位置拷贝或移动到另一个位置。对象管理:l 增加/删除/修改:在根节点或目录节点之下可以增加查询对象或者界面对象。前者的属性为编码、名称和数据源

21、,后者的属性为编码和名称,其中编码一经使用,就不再建议作任何修改,因为此编码可能被其它对象引用。l 复制/剪切/粘贴:在查询或格式子树下,可以将一个对象从某位置拷贝或移动到另一个位置。l 导入/导出:选中某个对象,可将其导出为XML文件,该文件可被导入到另外的目录下。此功能可用于对象的跨数据库复制。在导出查询对象或界面对象时,需将其引用的查询对象一并导出才有意义。选中某目录时,导入功能可用。切换定义数据源:(当查询引擎不支持多数据源,只支持单数据源时此功能置灰)查询引擎支持多数据源运作机制模式NC业务在数据源A下运行,查询引擎的定义放在数据源B,通过引擎定义的查询可以到数据源C去执行。图17-

22、7切换定义数据源定义数据源(上面说的B)是指查询引擎自身的系统表所在的数据源,执行切换功能后,主界面上的对象树的内容会作相应改变。图17-8切换定义数据源效果修改执行数据源:当需修改执行数据源时,选择左侧查询设计下的目录,按“辅助设置”“批量修改执行数据源”,选择数据源下拉框数据进行保存。17.6.1.2查询模型设计查询模型设计包括参数定义、SQL设计(含交叉定义)、SQL整理、数据加工、穿透规则等几部分,其中穿透规则描述的是本查询与外部查询的通信关系,其余部分都用于描述查询内部的属性。查询设计态和运行态的基本流程如下图所示:图17-9查询模型流程(1)参数控制参数是查询模型中代表动态信息的元

23、素。在SQL设计、SQL整理和数据加工中,均可以根据参数的不同,对查询的定义和执行进行调整。如果创建某个参数的作用是根据其取值的不同改变WHERE条件的设置,则这类参数成为过滤型参数,这是最常用的参数功能。参数定义:用于定义本查询内部引用的所有参数,其中参数名要保证互不相同。数据类型包括自由录入、枚举、参照几种,当类型为枚举时,枚举项为用“”分隔的枚举值,或者是一个单字段的查询SQL;当类型为参照时,枚举项为基础参照名,或者是用尖括号括起的自定义参照的类名。图17-10参数定义参数引用:参数可在SQL设计的筛选条件页签引用,也可在SQL整理或数据加工的嵌入代码中利用编码向导引用。图17-11参

24、数引用参数设置:运行态要求用户首先对参数进行设置,这与查询模板的使用类似。当报表引用了多个查询时,参数将通过多页签设置,每个页签代表一个查询。图17-12参数设置(2)SQL设计SQL设计包括向导设计和手工设计两种方式。无论采用哪种,在完成设计时系统均会对SQL进行合法性校验,如未通过校验则不能保存设计。作为向导设计的一个重要组成环节,有必要先介绍一下数据字典。u 数据字典前面已经提到,查询对象的属性中包含数据源信息,在设计查询的时候需要加载相应数据源的数据字典。NC的数据库以DDC作为数据字典,但非NC的数据库则没有DDC。系统会根据执行数据源是NC、IUFO或其它数据库三种情况分别加载不同

25、的数据字典,而且这一机制已经预留了扩展的接口,从而可以面向各种类型的数据库执行取数功能。关于数据字典的生成有多种做法,可以参考DDC的专门文档。查询引擎中用到的数据字典都以一棵对象树的形式存在,树节点包括目录、表、视图、字段、外键等信息,通过双击对象节点可以协助录入SQL语句的成分。u 向导设计向导设计参考典型SQL的构成规则,充分利用数据字典的功能,引导用户一步步完成SQL的设计,因此是推荐使用的方式。它由以下六个环节构成,其中最后一步“交叉属性”超出了SQL的涵义,在后面的章节中进行专门介绍。l 表定义:即SQL语句中的from部分,可以利用数据字典选择库里的数据表,也可以选择查询对象,从

26、而实现查询的集成(基于查询结果定义新的查询)。图17-13表定义图17-14数据表与临时表l 连接定义:即SQL语句中的join部分(表间连接关系),支持单键连接和多键连接两种模式。图17-15连接定义l 字段定义:即SQL语句中的select部分,可以定义任何SQLSERVER语法支持的查询表达式,但要保证字段别名不重复且使用规范名称(以字母开头、由字母、数字、下划线组成的字符串,且不能使用SQL保留字)。如果使用了聚集函数,则由系统自动完成group by部分。图17-16字段定义图17-16表达式生成器l 字段表达式定义:下面作些特殊函数的用法说明。如其它函数:CASE WHEN的用法如

27、某查询定义中,当科目表中的字段“余额方向”为1时,需将查询中的字段“余额方向名称”(如字段别名为name)值显示为”借”,否则为”贷”。则字段表达式为case when bd_accsubj.balanorient=1 then 借 else 贷 end操作方法:双击“其它函数”中的CASE WHEN,则在字段表达式中生成:case when then else end,然后在字段表达式的编辑框中继续手工编辑成完整表达式:case when bd_accsubj.balanorient=1 then 借 else 贷 end,然后按“确定”。图17-17 CASE WHEN的用法1图17-17

28、 CASE WHEN的用法2l 筛选条件定义:即SQL语句中的where部分,可定义确定条件和待定条件,后者可以通过双击右操作数编辑框弹出参数界面并作引用。图17-18筛选条件定义l 排序字段定义:即SQL语句中的order by部分。图17-17排序字段定义l 数据交叉属性:交叉是一种常用的多维数据分析手段,详见后文。u 手工设计手工设计是支持自由SQL的方式,由于复杂SQL在解析、适配、执行等方面的不稳定性较大,因此不推荐普通用户使用。手工设计包括:l SQL录入:用户可以在数据字典的辅助下录入SQL语句,要求遵循SQLSERVER语法。图17-20 SQL录入l 字段显示名设置:系统通过

29、对用户录入SQL的解析获得字段信息,并向用户提供输入字段显示名的机会,显示名的默认值与查询字段的物理名相同。图17-21字段显示名设置(3)数据交叉数据交叉包括第一类(投影)交叉和第二类(旋转)交叉两种类型。两类交叉的差别在于:第一类交叉属于查询行为,适用于行列设置都已在表样中固定的报表,其交叉结果严格遵循表样格式,其行列结构不会受查询数据的影响;第二类交叉属于数据加工行为,其交叉后的行列结构在查询出数据之前不可预料,多用于完全真实地对原始数据进行动态处理。u 第一类(投影)交叉假定有一个查询SQL,其查询结果是单行单列的汇总值,另外还有两组WHERE条件的序列,分别为横向序列(WhereX1

30、、WhereX2、WhereXn)和纵向序列(WhereY1、WhereY2、WhereYn),则数据矩阵A(aij)对应的结果集成为投影交叉,aij是WhereXi和WhereYj同时作用在上述SQL上获得的结果。比如,某查询用于查出公司和部门下的人数,原始SQL为:select bd_invbasdoc.invcode , bd_invbasdoc.invname, bd_invcl.invclasscode, bd_invcl.invclassname, ic_general_b.ninnum from ic_general_b left outer join bd_invbasdoc

31、on ic_general_b.cinvbasid = bd_invbasdoc.pk_invbasdoc left outer join bd_invcl on bd_invbasdoc.pk_invcl = bd_invcl.pk_invcl group by bd_invbasdoc.invcode,bd_invbasdoc.invname,bd_invcl.invclasscode,bd_invcl.invclassname查出的结果如下图所示:图17-22原始数据(无交叉)现在把查询字段中只保留实收数ic_general_b.ninnum一项,然后进行如下的投影交叉设置:图17-23

32、投影交叉设置则交叉后的结果如下图所示:图17-24投影交叉结果u 第二类(旋转)交叉旋转交叉用于显示表中某几个字段(称为交叉值字段)的统计值,并将其分组放置在查询结果中,一组列在数据表的左侧(称为交叉行字段),一组列(称为交叉列字段)旋转到数据表的上部成为列表头,统计值则放在对应的交叉单元。关于旋转交叉的更细节的内容,请参考交叉表使用说明。对于投影交叉中的例子,假定进行如下的旋转交叉设置(其中交叉砝码表示交叉值字段的位置,它只能出现在交叉行字段或交叉列字段当中):图17-25旋转交叉设置则交叉后的结果如下图所示:图17-26旋转交叉结果(4)代码嵌入代码嵌入包括SQL整理、数据加工、数据穿透等

33、三种查询对象使用方式。u SQL整理SQL整理是指在SQL查询之前,对SQL所作的调整。通常会根据参数的不同,对查询的表、字段或条件等信息进行增补或修改。SQL整理的具体内容由内嵌的代码片段描述(这与后面将介绍的数据加工和穿透规则一样),代码的录入可通过编码向导协助完成,尽管如此,这几种功能仍然推荐由高级实施人员或程序员使用。图17-27 SQL整理代码在图示的SQL整理代码中,当参数“detail”取值为“Y”时,引擎会在本查询对象已完成的SQL设计基础上多查询一张表(bd_defdoc)和两个字段(档案编码、档案名称),从而获得更明细的查询信息;如果该参数取值不为“Y”,则仍然按照SQL设

34、计的定义去执行查询。以下简单介绍几种SQL整理算法的编码向导使用方法:l 追加查询表:参数为待追加的表物理名。图17-28追加表向导l 追加连接条件:与追加表同时使用,参数为连接模式、追加表物理名和追加的表间连接条件。图17-29追加连接条件向导l 追加查询字段:与追加表同时使用,参数为追加字段的表达式、显示名和别名。图17-30追加字段向导l 按参数追加条件:根据参数取值的不同追加不同的筛选条件,参数为参数名和筛选字段。图17-31按参数追加条件向导u 数据加工数据加工是指某个(或某几个)查询结果集在经过一系列加工算法的变换后得到另一个结果集,而后者通常是业务上要求的展现结果。相关的算法又称

35、为加工滤镜,滤镜通常支持输入多个结果集和输出一个结果集,并可以嵌套使用。数据加工与SQL整理的区别在于:前者在SQL查询之后进行,作用的对象是结果集;后者在查询之前进行,作用的对象是SQL定义。在数据加工的编码向导中,提供了多种实用加工滤镜。图示的数据加工代码把主键分别为“user1”和“user2”的两个结果集按照pk_corp字段为键进行了左外连接,并在连接结果中保留了“user_name1”、“pk_corp”、“user_name2”三列。图17-32数据加工代码以下简单介绍几种数据加工算法的编码向导使用方法:由查询获得结果集:根据查询ID和参数获得查询结果集,如果没有参数或不需要设置

36、参数,则参数变量可取null。图17-33获得结果集向导公式设置:参数为公式列名、返回值数据类型和公式,如果公式列名不存在则新增一列,否则将该列的内容更新为公式返回值。图17-34公式编辑图17-35公式定义结果集连接:指定两个结果集的连接字段、连接方式和连接后的保留字段,得到连接后的结果集。图17-36结果集连接向导结果集联合:指定两个列结构相兼容的结果集,得到联合(union)后的结果。图17-37结果集联合向导u 数据穿透数据穿透:假定报表R1上存在某个区域A1,A1内部有若干业务数据,如果以A1为出发点能够切换到另一张报表R2的上的区域A2,而且A1和A2的内部数据存在着某种内在联系,

37、则称可以从R1穿透到R2。当这种穿透行为传递下去,就可以了解某张报表的数据明细,甚至追溯到它的数据来源。通常会把上述的区域选为一个表格行或者一个表单元,而上述的内在联系就称为穿透规则。一个查询上可以定义多个穿透规则,每个规则需要指定穿透的目标查询,同时目标查询上要创建一个过滤型参数,用于接收穿透区域的取值。下图所示的穿透规则表达了这样的一个穿透意愿:当用户选中了当前查询结果的某行时,允许他按照“psncode”字段在选中行的取值穿透到另一个查询(即目标查询,其ID为“rygzay”),而目标查询的接收参数为“psncode”。一个查询可以设置多条穿透规则,由本查询可穿透到的目标查询需要创建一个

38、(或多个)过滤型参数,用于接收穿透值。下图所示的穿透规则表达了以下的穿透意愿:如果用户选中了当前查询结果的某行时,允许用户根据选中行的psncode字段取值穿透到另一个查询(即目标查询,其ID为“rygzan”),而目标查询的接收参数为psncode图17-38穿透规则定义向导图17-39穿透规则代码下图显示了一个由存货库存存量信息穿透到存货信息再穿透到存货分类信息的用例,其中第一步穿透是非等值穿透(相当于“存货名称like 芯片%“),第二步是等值穿透(相当于“存货分类=产成品”)。按以“芯片“打头的存货名称由库存实收数量统计表穿透到存货信息按存货分类为“产成品“从存货信息表穿透到存货分类信

39、息图17-40穿透效果示意(5)查询浏览u 查询执行与展现在建立好查询模型之后,系统提供预览查询执行结果的功能。用户首先输入执行查询所需要的参数取值(如果有参数的话),查询引擎会根据该查询对象的数据源去对应的数据库执行查询,在经过查询结果集评估(对于查询记录数过大的情况允许用户优化或放弃查询)之后,把结果集展现给用户。在展现之后,用户可以继续进行穿透、交叉和仪表测试等工作。图17-41查询预览u 数据导出导出功能支持将预览数据导出为纯文本文件,并可进而用EXCEL打开。随着产品的发展,数据导出的格式会逐步丰富。u 创建物化表查询引擎可以根据预览数据直接到数据库创建物化表,同时将物化表的结构注册到DDC中,以后的SQL设计就可以基于新创建的物化表进行,从而扩充了查询集成的范围。至于如何保证物化表数据的同步刷新,可以参看抽取任务一节。图17-42创建物化表17.6.1.3格式模型设计界面模型节点的新建和管理参见前面章节。可以设计新的界面模型,也可以对已有的界面模型进行修改。界面模型的设计包括引用查询

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 实用文档 > 简明教程

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报