查询工具基础.docx
《查询工具基础.docx》由会员分享,可在线阅读,更多相关《查询工具基础.docx(13页珍藏版)》请在冰豆网上搜索。
查询工具基础
海鼎公司
查询工具基础培训
主题:
查询工具基础培训
项目名称:
2011海鼎内部培训
撰写单位:
海鼎
作者:
陈鼎文
版本号:
0.1使用说明(此内容将不被打印):
请点击菜单“文件|属性…”修改有关文档属性;
请按下工具栏“更新文档信息”,或按下快捷键++,系统自动更新所有文档属性到文档中。
日期:
2011-3-15
审核
功能
姓名
部门
签名
日期
文档历史
版本
修改原因
修改人
基于版本
日期
V0.1
新建
陈鼎文
2011-3-15
参考文档
编号
文档名(链接)
1.V0.1
《查询工具基础》---沈斌强
2.V0.1
《查询工具基础》---海鼎内训资料
第一节、了解查询工具
●什么是查询工具
●查询工具都有哪些功能
●使用查询工具需要哪些基础
1.1什么是查询工具
查询工具是一个程序模块,它集成在HDFrame中。
可以被海鼎各种C/S产品所使用。
如HDPOS3.2、HDPOS4.0、HDWMS、HDFIN……
通过查询工具,我们可以自定义各种各样的数据查询,并将查询结果以指定的形式展示出来。
编写好的查询可注册为一个模块,挂上菜单。
也可以直接通过查询工具打开。
1.2查询工具的功能
日常报表
数据分析
为其他功能提供支持
定单的查询导入
其他
利用查询打印单据(标价签)
作为其他程序的接口
二次开发的工具
1.3使用查询工具要求基础
●掌握SQL语句的用法
●了解产品的数据结构(表,字段,表之间的逻辑关系和关联方式等)
1.3查询工具与查询文件
定义好的查询会保存在一个后缀名为.sql的文本文件中。
这个文件可以称之为查询文件。
注意:
查询工具的后缀名是.sql,常见的MSSQL脚本后缀名也是SQL,但两者是不同的
拓展:
打开一个查询文件,了解查询文件的结构及内容
查询文件路径:
workstation设置目录的query中!
1.4查询工具和SELECT语句的关系
SQL中的SELECT语句是功能强大的数据查询语句,它能满足大部分的数据查询要求。
SELECT语句也是查询工具的核心,可以说查询工具是图形化的SELECT语句。
以下是SELECT语句的基本结构
SELECT<选择列>
FROM<选择表>
WHERE<搜索条件>
GROUPBY<分组表达式>
ORDERBY<排序表达式>
下面以商品主档查询为例,说明SELECT语句和查询工具的关系
例一、商品主档查询
要求:
将练习一中的要求,通过查询工具实现。
实现方法
用SQL语句实现
SELECTCODE代码,NAME名称,SPEC规格,SORT类别,CNTINPRC合同进价,RTLPRC售价
--显示商品代码、名称、规格、类别、合同进价、售价
FROMGOODS
--从(GOODS)商品表中取数据
WHERECREATEDATE>='2006.01.01'
--搜索条件:
商品创建时间在2006.01.01之后
ORDERBYSORT,CODE
--排序表达式:
先按商品的类别(SORT)再按商品的代码(CODE)排序
编写查询时我们可以用以下的顺序思考:
1.从哪里取得需要的数据——选择表
2.要取其中的哪些数据——搜索条件
3.需要显示那些内容——显示列
4.确定排序规则
用查询工具实现同样需求
1.打开查询工具,进入“选择表”,添加商品表。
2.在选择表中定义搜索条件:
商品.创建时间>=‘2006.01.01’
3.进入“选择列”,添加需要显示的列:
代码、名称、规格、类别、合同进价、售价
4.进入“排序设定”,在排序列表中添加类别和代码,都用升序。
类别要在代码上面,表示先按类别然后按商品代码排序。
5.保存编辑好的查询文件。
6.执行查询,查看结果。
第二节、查询工具基本简介
1.查询工具界面与功能介绍:
A.新建:
查询工具制作的查询,是以文件的形式保存的,一般保存的文件是*.q或者*.sql文件。
这个是针对不同的查询工具版本而异的,新版本的查询工具保存的查询文件一律是*.sql格式的。
此新建功能就是建立一个新的查询。
B.打开:
因为查询以文件形式保存,所以可以打开原来所保存的查询文件。
C.重新打开:
打开最近的一些查询文件。
D.保存:
保存制作的查询为*.sql格式文件。
E.另存为:
把查询文件保存到另外一个位置。
F.导出:
查询工具按照查询文件执行出来的数据,可以直接导出为其它文件格式,比如:
DBF(小型数据库,比如ACCESS文件),定长文本和TAB文本(TXT格式的文件,只是文本间的分隔不同),EXCEL文件,HTML文件。
G.说明:
查询工具的简单介绍。
H.选择表:
选择表的实际功能是定义SQL语句的FROM和确定的WHERE条件。
在选择表下拉框中进行操作就是编写SQL语句的FROM脚本。
其中选择出来的表是定义在COLLATE中的表,如果发现在COLLATE表中定义的表没有显示在此下拉框中,可以考虑2点:
是不是COLLATE中有定义重复的编号;删除本地HDPOS下的临时文件。
当选择好表后,按“增加表”可以把表添加进来,也可以修改和删除。
增加子查询实际是添加另外一个已经存在的查询文件,作为本查询的子查询。
在下部的几个框里可以定义确定的WHERE条件,一般是几个表之间的关联,以及一些确定的条件信息,比如:
A.GID<>1等。
同样,此查询条件也可以增加,删除和修改。
另外,对于HDPOS4来说,索引方法和索引名称是非常实用的。
熟悉ORACLE的人都知道ORACLE可以指定索引,以增加查询的效率。
而此处的索引方法其实就是指定索引。
对于HDPOS3来说,这个功能意义不大,一般不启用。
I.选择列:
选择列处定义的其实是SQL语句中的SELECT。
其中列名就是选择表中表的所有字段,工程人员根据需要提取一些列,作为查询中显示的列。
标题是指查询执行后,显示数据的中文列名。
查询结果表列名指的是选择字段的字段别名,一般是英文的。
分组函数,指的是查询SQL语句的GROUPBY,在此添加后,就会显示在分组次序中。
合计函数,指的是调用一些函数来处理SELECT的一些数值型字段。
字体颜色,指的是查询数据显示的颜色,可以按照要求设置。
显示格式,指的是对于数值类型,和日期类型的字段,可以按照要求的格式显示。
预览,显示过滤功能等这些功能很少用到,也不赘述。
另外,显示功能可以对已经选择出来的列进行设置,过滤掉一些字段。
选择的列可以进行增加,修改和少出等操作。
J.构造查询条件,构造复合查询的条件:
构造查询条件其实是完成对于SQL语句中,动态的WHERE语句的构造。
列就是在选择列中选择出来的列,可以是显示的列,也可以是不显示的列。
可以对列指定类型,一般日期数据就指定为日期等。
必须条件规定在执行查询前一定要输入此条件才可以执行查询。
比较符就是一般的SQL连接符号。
另外,对于设定查询条件的默认值,比如品牌等于:
A,B,C等3个已经设定好的值,而且可以指定默认显示的是A,还是B,C等。
查询条件可以新增,修改和删除。
复合查询的条件是指本查询和子查询的一个条件设置,不赘述。
K.预设条件:
预设条件指的是一些已经写好的WHERE条件,介于已经确定和动态的WHERE语句之间。
当设置好这些条件后,会在查询的左上脚显示一些选择框,当勾上选择框后,就是确定的WHERE条件;不勾上选择框就是不把这个条件纳入WHERE语句中。
L.分组次序:
在选择列处定义了分组函数后,会显示相应的列到此处。
可以按照要求对其设定分组的次序。
M.排序设定:
对于选择出来的列,可以设定排序,类似于SQL语句中的ORDERBY语句。
N.定义下一个查询:
定义下一个查询可以实现一个超链接的功能。
比如本查询中查找到的数据是一个商品的销售总额,那下查询就可以定义这个销售总额是由哪些交易组合而成的。
制作下一个查询比较简单。
首先要保证下一个查询文件已经存在,然后添加进来,设定下一个查询和本查询的条件就可以了。
O.定义合并:
所谓的合并对应于SQL语言中的UNION操作,即把两个查询的结果合并起来。
P.报表设置:
定义查询到的数据以何种格式打印的功能。
一般只要关注定制打印格式即可。
此功能实际就是调用打印工具设计器,所以此处不赘述。
但是需要注意几点:
对于WSCONFIG里配置的系统路径下的QUERY\REPORT里,一定要有文件HDDefReport.frt;保存的打印格式文件要在查询文件同级的REPORT下。
Q.查看SQL语句:
查看通过选择表,选择列,以及构造查询条件等操作所构造的SQL语句。
可以拷贝到查询分析器中执行。
R.选项:
查询工具的选项,实现不同的要求。
比如在选择列中可以定义列显示的颜色,而在选项中可以定义当数据是多少的时候,显示什么颜色。
S.升级查询文件:
对于原来版本的查询工具制作的查询*.q格式的文件升级为*.sql格式的文件。
2.查询工具操作介绍:
A.对于不写脚本的查询的处理:
选择表,构造需要数据的来源和关联条件;
选择列,构造需要的数据;
构造查询条件,确定一些动态的查询条件;
设定预设条件;
设定分组次序,排序设定。
B.对于需要构造脚本的查询文件的处理:
新建一个查询,按住CTRL,然后点击菜单下的横杠,出现一个需要输入PASSWORD的对话框,输入’/’,确定进入脚本编辑界面。
对于SQLSERVER和ORACLE,脚本的编写方法是不一样的,分别进行介绍。
对于如何传入动态查询条件到脚本中,HDPOS是这样处理的。
如果查询条件的位置是第一个,则传入的时候,定义为:
A=‘\(1,1)’。
其中第一个1表示列,第二个1表示行。
ORACLE:
ORACLE的临时表不是定义在此处脚本处的,而是直接在PL\SQL里先增加的。
因为ORACLE的临时表的表结构一旦建立后,就不会自动删除。
在PL\SQL中建立临时表,脚本如下:
createglobaltemporarytablea
(ADATEDATE,
STORENUMBER,
REALQTYNUMBER(24,2)default0)
ONCOMMITPRESERVEROWS;
其中ONCOMMITPRESERVEROWS;的作用是为了保护数据,当脚本中有COMMIT的时候,数据才实际提交。
建立同名对象:
exechdcreatesynonym('a')
把查询的权限进行分配:
execgranttoqryrole('a');
编写脚本,格式如下:
declare
Aint;
…
begin
A:
=‘\(1,1)’;
insertintoA…
COMMIT;
end;
当脚本编写好后,和不写脚本的方式一样处理,只是在选择表处要手工输入临时表,以及在选择列处也要手工输入列。
3.查询工具注意事项:
对于查询中如果报错的情况,可以按照如下的方式进行:
先进行跟踪,执行一下查询,把跟踪脚本放在查询分析器或者PL\SQL中执行,以进行调试。
以调试后的脚本修改原来的查询,再执行查询,直到查询正确未知。
第三节、查询工具应用演示
●要求:
制作一个查询报表,用来查询自营进货单明细信息。
●查询条件:
进货单时间;进货单状态;进货单所属供应商;商品代码;
●展示数据内容:
进货单单号,进货单发生时间,进货单所属供应商,进货单明细列,进货单明细商品,进货数量,含税进货金额,去税进货金额,商品所属中类,商品所属小类,商品品牌。
●展示效果:
按照定单单号和商品代码明细升序展示。