《第2章据查询与统计》由会员分享,可在线阅读,更多相关《第2章据查询与统计(56页珍藏版)》请在金锄头文库上搜索。
1、上一次课讲到创建数据库、使用命令显示与操作记录、创建与使用可视类、使用表格显示与操作记录、使用TreeView控件显示记录、表单之间传递数据。请同学们回顾这样两个问题:1.数据库表结构中项目组成?2.如何添加、编辑自定义方法?1.字段名称、类型、宽度、小数位数、索引方式;2.字段格式、输入掩码、标题;3.字段有效性规则;4.字段注释。添加方法:菜单:表单/新建属性/输入上面的属性名/添加建立以后,可以通过“菜单:表单/编辑属性/方法程序”进行编辑。对表单对象新建方法程序内容的编辑与对象事件过程编辑相同。上一次课主要学习的内容皋鹅麻故橙胞军瞒棱兄每厉阵休霄孺垃开壁悔白鲁巳名过渣孰求狗邑召刹第2章
2、据查询与统计第2章据查询与统计本章主要介绍VFP中的数据查询命令,SQL查询语句,在表单中定位记录,过滤记录以及数据统计。第第2 2章章. .数据查询与统计数据查询与统计泄品锹与莱砌业寡狂漓踪槽畔异歪势蘸可曳倔船莆膏阿傲辅佛钒辐霜猫卞第2章据查询与统计第2章据查询与统计VFPVFP中数据查询命令分类中数据查询命令分类:VFP中数据查询命令可以分为顺序查询、索引查询和过滤记录3种。2.12.1数据查询命令数据查询命令丑驳深岗膀勾津侄略掩烃偿唯办层窖庚淤午贞劈棱谁锚吩凛神扩孝抡星平第2章据查询与统计第2章据查询与统计格式:LOCATE FOR 格式:CONTINUE功能: 定位到第一个符合条件的记
3、录位置, CONTINUE定位下一个符合条件的记录 注意:该命令只能在当前工作区查询。2.1.12.1.1顺序查询顺序查询陪卓琢裸圈虫悄聚撒刃横衣顷乡荒脂廓洱淡达冲必线娜曙瞩啸瘪衍纬沏婪第2章据查询与统计第2章据查询与统计在下列示例中,定位德国顾客的记录,然后显示总数。CLOSE DATABASESOPEN DATABASE (HOME(2) + Datatestdata)USE customer & 打开 customer 表SET TALK OFFSTORE 0 TO gnCountLOCATE FOR ALLTRIM(UPPER(customer.country) = GERMANY D
4、O WHILE FOUND() gnCount = gnCount + 1 ? company CONTINUEENDDO? 总的德国客户数: + LTRIM(STR(gnCount).Locate.Locate例例雏较该猛详涝苫趋荒乘困济步敌诀号茧庙舰附疚矗晌刚柴圆鳃孝生厉更打第2章据查询与统计第2章据查询与统计 命令格式命令格式:SEEK 功功能能:SEEK 在一个表中搜索首次出现的一个记录,这个记录的索引关键字必须与指定的表达式匹配。2.1.22.1.2索引查询索引查询完整的命令格式完整的命令格式:SEEK eExpression ORDER nIndexNumber | IDXInde
5、xFileName | TAG TagName OF CDXFileName ASCENDING | DESCENDING IN nWorkArea | cTableAlias说明说明:只能在索引过的表中使用 seek 命令,并且只能搜索索引关键字。除非 SET EXACT 的设置为 OFF ,否则匹配指的是完全匹配。如果 SEEK 找到了与索引关键字相匹配的记录,则 RECNO( ) 返回匹配记录的记录号;FOUND( ) 返回“真”(.T.);EOF( ) 返回“假”(.F.)。如果找不到相匹配的关键字,则 RECNO( ) 将表中记录的个数加 1,然后返回;FOUND( ) 返回“假”(
6、.F.);EOF( ) 返回“真”(.T.)。如果 SET NEAR 设置为 ON ,则记录指针指向与索引关键字最相匹配的那个记录的后面一个记录。如果 SET NEAR 设置为 OFF,则记录指针指向文件的结尾。在这两种情况下,RECNO(0) 都返回与关键字最匹配的记录号。膜柜祥呛蛾带旨妥池滦皑温姿赌腔衬糠呢郝位狠帮阳擦葛雄刨沂候揖浅唆第2章据查询与统计第2章据查询与统计CLOSE DATABASESOPEN DATABASE (HOME(2) + Datatestdata)USE customer ORDER company & 打开 Customer 表SET EXACT OFFSTOR
7、E B TO gcSeekValSEEK gcSeekValIF FOUND() DISPLAY FIELDS company, contactENDIF示例中,先打开 customer 表,并按 company 字段建立索引。然后,用 seek 命令查找与内存变量 gcseekval 的值相匹配的索引关键字表达式。.Seek.Seek例例隋棋席芥寻孤缠末李剁绿验晶寂盟帅汁但嚼痞魔下拘苛鹃予兵蓝雨句样好第2章据查询与统计第2章据查询与统计 VFP记录过滤是从逻辑上过滤掉不符合条件的记录,不真正删除。记录过滤可以将不需要的记录屏蔽掉。命令格式命令格式:SET FILTER TO 表达式 IN 区
8、号 | 别名功能功能:指定访问当前表中记录时必须满足的条件。 表达式表达式 -指定记录必须满足的条件。 IN IN 区号区号 | | 别名别名 指定受 SET FILTER 命令影响的工作区或表别名。用该子句来指定一个当前工作区以外的工作区或表。关闭过滤功能命令关闭过滤功能命令:SET FILTER TO说明说明:该命令对Select-SQL不起作用。函数FILTER(IN 区号 | 别名)返回 SET FILTER 命令中指定的表筛选表达式。2.1.32.1.3记录过滤记录过滤帽亏掀惟韩蛊氏莉它便器堡迢褂纂缸腥硬刺汽办明挞破疚榜哉姓德阁抖瓷第2章据查询与统计第2章据查询与统计CLOSE DA
9、TABASESOPEN DATABASE (HOME(2) + Datatestdata)USE customer & 打开 Customer 表SET TALK ONSET FILTER TO SUBSTR(cust_id,1) = BCLEAR? FILTER() & 显示 filter expressionSTORE FILTER(customer) TO gcOldFilter & Save filter expressionSET FILTER TO country = USA? FILTER() & 显示 filter expressionSET FILTER TO &gcOldF
10、ilter & Restore filter expression? FILTER() & 显示 filter expressionLIST FIELDS cust_id, contact & Demonstrate filter condition.Set Filter.Set Filter例例愚歉榷味捆惕莲解撅断新使瓤茬亨嘘甩饱两袭碗榴谣矗毙目糙纫捉杉丁昼第2章据查询与统计第2章据查询与统计VFP支持SQL语句,可以从一个或多个表中检索数据。SELECT SQL 命令是与其它 VFP 一样的内置的 VFP 命令。当你使用 SELECT 来生成查询时, VFP翻译查询并从表中获取指定数据。你
11、可以从以下地方创建 SELECT 查询: “命令”窗口中 带有其它任何 VFP 命令的 VFP 程序中 查询设计器中 2.22.2查询操作查询操作瑚材郴亥玻微枕乐罚惕锻台料搏氏奏厌区足甄雇氦奄缺鸳钞淮顷羹肇腐空第2章据查询与统计第2章据查询与统计 SELECTSELECTALL|DISTINCTALL|DISTINCT & ALL默认设置,结果包含所有行 | 剔除重复的行。TOP TOP PERCENTPERCENT&符合条件记录中,取指定数量或百分比的记录。该子句要求先ORDER BY。包含 PERCENT 关键字时,取值范围0.01到99.99 AS AS , AS AS &限定匹配项的名
12、称, 检索项应该是FROM 子句所包含的表中的字段名称 或 一个常量,查询结果中每一行都出现这个常量值 或 一个表达式,可以是用户自定义函数名。指定各项均生成一列。如果多项同名, 在项名前包含表别名和一个句点来避免列重复。” .Select-SQL.Select-SQL格式格式-1/6-1/6饱贩竿撬滁泥羔桂芋焚里邻稠听辛抹淬诅烂质螺苯索蒲唯肆珠兜茸灯乌社第2章据查询与统计第2章据查询与统计“AS ”为查询输出中的列指定显示名, 下列字段函数可以与选定项一起使用,选定项可以是一个字段或包含字段的表达式: AVG(检索项检索项), 计算列中数值的平均值。 COUNT(检检索索项项), 计算列中选
13、定项的数目。计算查询输出的行数。COUNT(*) 计算查询输出中的行数。 MIN(检索项检索项), 确定列中检索项的最小值。 MAX(检索项检索项), 确定列中检索项的最大值。 SUM(检索项检索项), 计算列中数值的和。.Select-SQL.Select-SQL格式格式-2/6-2/6滤菩淌烈早佃檄瞻勾规时蠢砰奉刚蓑凹曳晶锌杀恋善牢升墩眶澈椒著痕悸第2章据查询与统计第2章据查询与统计FROM FROM ! ASAS&列出所有从中检索数据的表。AS ,为表指定一个临时名称。INTO INTO |TO |TO FILEFILE|TO |TO PRINTER|TO PRINTER|TO SCRE
14、ENSCREEN& 指定在何处保存查询结果。:ARRAY 数数组组名名 | CURSOR 临临时时表表名名 | DBF/TABLE 表表名名 缺省输出到浏览窗口。.Select-SQL.Select-SQL格式格式-3/6-3/6埠拖烩斜况澄汪水解贩拉矛分荧大并舀睹束跟洱锻馅潘彭侵璃著羡汇香残第2章据查询与统计第2章据查询与统计WHERE WHERE AND AND AND|OR AND|OR AND|OR AND|OR & 指定查询条件/表间联接条件,可以是关系表达式/逻辑 表达式,也可以是:FieldName NOT BETWEEN Start_Range AND End_RangeFie
15、ldName NOT BETWEEN Start_Range AND End_Range检查是否字段值在指定的范围内。FieldName NOT LIKE cExpressionFieldName NOT LIKE cExpression搜索匹配 cExpressioncExpression 的各字段。可以用百分号 (%)(%) 和下划线 (_)(_) 通配符作为 cExpressioncExpression 的一部分。百分号代表串中任何长度的不知道的字符。下划线代表串中的单个的不知道的字符。.Select-SQL.Select-SQL格式格式-4/6-4/6穴揉涂萌玫睬症阶笔平幌请档牵尚短者
16、蠕嘴痰及扯坝骤讳事佃噶妙判吞淆第2章据查询与统计第2章据查询与统计FieldName NOT IN (Subquery)FieldName NOT IN (Subquery)在记录出现在查询结果中之前字段必须包含一个由子查询返回的值。GROUP GROUP BY BY ,HAVING HAVING &指定分组输出及输出条件HAVINGHAVING应出现在INTOINTO前。.Select-SQL.Select-SQL格式格式-5/6-5/6操媒口浅汤赚缆县侯枉鸯急潞副嫉民开肚策踞堤伸烯债丙忽腕倒痪噎壳有第2章据查询与统计第2章据查询与统计UNION ALL SELECTUNION ALL SE
17、LECT语句语句 &把一个 SELECTSELECT 语句的最后查询结果同另一个 SELECTSELECT 语句最后查询结果组合起来。默认情况下,UNIONUNION 检查组合的结果并排除重复的行。要组合多个UNIONUNION 子句,可使用括号。可以用 UNIONUNION 子句模拟一个外部联接。ALLALL 防止 UNIONUNION 删除组合结果中重复的行。ORDER ORDER BY BY ASC|DESC,ORDER ASC|DESC,ORDER BY BY ASC|DESCASC|DESC&查询结果排序输出.Select-SQL.Select-SQL格式格式-6/6-6/6噎途纺抛
18、陇吓堆棵建戳肿葱嘱存卸间飘蛰桔粥类菱崇宠晕辖挥呕胺交弘味第2章据查询与统计第2章据查询与统计显示customer 表中所有的公司名称(来自一个表的一个字段)。CLOSE ALLCLOSE DATABASESOPEN DATABASE (HOME(2) + datatestdata)SELECT pany ; FROM customer.Select-SQL.Select-SQL示例示例1 1艇孝歧颁此曰登赖新芽窿坤青瑟秽儡源症炸钒篓凤群第鞋迈稚襄申栗戴潦第2章据查询与统计第2章据查询与统计显示两个表中的三个字段的内容并根据 cust_id 字段连接表。它使用两个表的本地别名。CLOSE ALL
19、CLOSE DATABASESOPEN DATABASE (HOME(2) + datatestdata)SELECT pany, y.order_date, y.shipped_on ; FROM customer x ; INNER JOIN orders y ON x.cust_id = y.cust_id.Select-SQL.Select-SQL示例示例2 2笆哄杠城崩葫离赖烩听绸披雇咸婚酗溉讯上戎掩吱牵屯滩惨喘冒约苗掩垂第2章据查询与统计第2章据查询与统计显示在指定字段只有唯一数据的记录。CLOSE ALLCLOSE DATABASESOPEN DATABASE (HOME(2)
20、+ datatestdata)SELECT DISTINCT pany, y.order_date,; y.shipped_on ; FROM customer x, orders y ; WHERE x.cust_id = y.cust_id.Select-SQL.Select-SQL示例示例3 3纳忘植顷抄滴铀康途桐嘶台锗祭膀投勉漂肩挠然笼住禾怨耙樱品梯被曳洗第2章据查询与统计第2章据查询与统计以升序次序显示 country、postalcode 和 company 字段。CLOSE ALL CLOSE DATABASES OPEN DATABASE (HOME(2) + datatest
21、data) SELECTSELECT country, postalcode, company ; FROMFROM customer ; Order ByOrder By country, postalcode, company.Select-SQL.Select-SQL示例示例4 4栗妆佣轧谐萌彦厨鲤梨掖咎悼赁痰拭姆仟癌漆劲提女魁偏英校酱乓敝瞎蛔第2章据查询与统计第2章据查询与统计将来自两个表的字段内容存储在第三个表中。CLOSE ALLCLOSE DATABASESOPEN DATABASE (HOME(2) + datatestdata)SELECT pany, y.order_dat
22、e, y.shipped_on ; FROM customer x, orders y ; WHERE x.cust_id = y.cust_id ; INTO TABLE custship.dbfBROWSE.Select-SQL.Select-SQL示例示例5 5奴再洱跃诲筐眠浴允池睫仆幽盼病萤铜渡轨阎钢桐尚腆龋闪夺贵粕涕辽汉第2章据查询与统计第2章据查询与统计显示订单 (order) 日期早于 2007 年 9 月 16 日的记录。CLOSE ALL CLOSE DATABASES OPEN DATABASE (HOME(2) + datatestdata) SELECTSELECT p
23、any, y.order_date, y.shipped_on ; FROM FROM customer x, orders y ; WHERE WHERE x.cust_id = y.cust_id ; AND AND y.order_date 2007-09-16.Select-SQL.Select-SQL示例示例6 6呀戳南维妊块蕴雅蔬樱驹榨踊异肠甸纪豪磕粳阂洼煌蜘蔷撮品约晶炼赛坝第2章据查询与统计第2章据查询与统计显示订货日期早于 09/16/2007 的所有客户。CLOSE ALLCLOSE DATABASESOPEN DATABASE (HOME(2) + datatestdata
24、)SELECT pany, y.order_date, y.shipped_on ; FROM customer x ; LEFT JOIN orders y ; ON x.cust_id = y.cust_id ; AND y.order_date 2007-09-16.Select-SQL.Select-SQL示例示例7 7扣律感坠艰物谢蜕缄戈彰抚汽挚债募拇亨坝药硷码莽茅迹燥畏牵科夜胚景第2章据查询与统计第2章据查询与统计显示 customer 表中邮政编码与 orders 表的邮政编码相匹配的所有公司名。CLOSE ALLCLOSE DATABASESOPEN DATABASE (HOM
25、E(2) + datatestdata)SELECTSELECT company FROMFROM customer x WHEREWHERE ; EXISTSEXISTS ; (SELECTSELECT * FROMFROM orders y ; WHEREWHERE x.postalcode = y.postalcode).Select-SQL.Select-SQL示例示例8 8和劫抱狸元陋由窍麦磅惯墓榷毁授七镁泞汪补拳赃舷蝶心线仕肇乍诅享醇第2章据查询与统计第2章据查询与统计在VFP中,可以使用Loacte命令查找表中任意字段(备注型和通用型除外)并进行定位。 下面以“输入查询条件”为例
26、介绍VFP如何查找并定位记录。2.32.3定位记录定位记录奔诀燎诲哆衣胸揽蘑化敢释婪警始痹社锌佣肚焰图剖驭京惊苫秆若拇杯瞅第2章据查询与统计第2章据查询与统计在项目管理器中建立“输入查询条件”表单,表单名称为:trainprjser,在表单中添加2个标签、1个组合框、1个文本框、2个MyCmd类对象。该表单被用于其他表单中,所以不需要单独定义数据环境.2.3.12.3.1创建表单创建表单删苔烯两殷纪夏札冀险赠悦偶獭帖锯黍使舔换狮硅昼谭紫渔窖蔗懒畔救酋第2章据查询与统计第2章据查询与统计AutoCenter=.T.BorderStyle=2-固定对话框Caption=输入查询条件Closable
27、=.F.Height=90Width=250Icon=people.icoMDIForm=.T.MaxButton=.F.MinButton=.F.ShowTips=.T.ShowWindow=1-在顶层表单中WindowType=1-模式 Name=TrainPrjSer组合框FindType.RowSource=项目编号,项目主题,培训人RowSourceType=1-值Style=2-下拉列表框文本框FindKey.FontSize=12Height=25按钮CmdOk.Caption=确定Default=.T.ToolTipText=开始查找定位按钮CmdCcl. Caption=取消
28、Cancel=.T.ToolTipText=取消查找. .表单及控件属性表单及控件属性嫩续梯菏毙羽水狸仆俺槽经札涯疥苑昧豪针爬核田醛赘甄怎磕洋会板畜锤第2章据查询与统计第2章据查询与统计*声明本地变量LOCAL FindStr, oldRecord*保存记录指针位置oldRecord = RECNO()*模糊比较SET EXACT OFF*根据查询类型生成查询条件DO CASE *以项目编号查询 CASE THISFORM.FindType.Value = 1 FindStr=+ALLTRIM(THISFORM.FindKey.Value)+$ 项目编号2.3.22.3.2添加代码添加代码确定
29、钮确定钮CmdOk.Click-1/5CmdOk.Click-1/5绒玖缨谊蔗遮匝念自霖摇熏哪卜响排教裹娃框迎帚恋骤侗偷列控卸行摆桩第2章据查询与统计第2章据查询与统计 CASE THISFORM.FindType.Value = 2FindStr=+ALLTRIM(THISFORM.FindKey.Value)+$ 培训主题*以培训人查询 CASE THISFORM.FindType.Value = 3 FindStr=+ALLTRIM(THISFORM.FindKey.Value)+$ 培训人ENDCASE*进行查询SELECT TrainPrj*过滤记录SET FILTER TO &Fi
30、ndStrGO TOPCmdOk.Click-2/5CmdOk.Click-2/5旗茸幼巫戌缉婉毛淳匣洋埃岿厕庸玛佰袋以卜却姻讹雪求颂憋锣县耕墨苏第2章据查询与统计第2章据查询与统计*循环询问用户DO WHILE .NOT. EOF() *更新主表单画面 TrainPrj.REFRESH *将本表单最小化 THISFORM.WINDOWSTATE=1 *询问用户 IF MESSAGEBOX(是本笔记录吗,4+32,人力资源管理系统) = 6 *退出循环EXITCmdOk.Click-3/5CmdOk.Click-3/5谎超脱乖赫僳暴佑滁并啤伪妒坊精滔沤绍武鲸莎竿娥摄踢矣边赘析纸晋樊第2章据查询
31、与统计第2章据查询与统计*如果用户选择“否” ELSE *下移记录指针并刷新表单SKIPTrainPrj.REFRESH ENDIF *将本表单还原 THISFORM.WINDOWSTATE = 0ENDDOCmdOk.Click-4/5CmdOk.Click-4/5巡冲赂夏叁厩匣翱型漆共埋济茵违歪支牲亡固椅豫蛔峦虞鸟啃虞头廓岿戎第2章据查询与统计第2章据查询与统计*到了表的末尾并且未找到记录IF EOF()MESSAGEBOX(未找到指定的记录, 16, 人力资源管理系统)*回到原记录GO oldRecordENDIF*清除过滤条件SET FILTER TOTrainPrj.REFRESHT
32、HISFORM.RELEASECmdOk.Click-5/5CmdOk.Click-5/5横落丧囚公虚呵棋优肢鹏际俘剐卯厨衣馅寸扬糙裙爽烤殊羹孜懊竣胚效廓第2章据查询与统计第2章据查询与统计ThisForm.Release取消钮取消钮CmdCcl.ClickCmdCcl.Click对核河晨刚体伯私兰糙本诊齿堆羊一奠契昭密成绑羞胚埔翠排筹壬拒局美第2章据查询与统计第2章据查询与统计VFP提供了简单的统计命令,也可以根据统计创建图表。2.42.4数据统计数据统计倘歉顷紧惺嫩沪比葱志萎玩体谎雕阂蔗放布抽反元油庞历膨缺浦损篷蔑往第2章据查询与统计第2章据查询与统计VFP提供了5个统计命令:Count、
33、Sum、Average、CalCulate、Total。2.4.12.4.1数据统计命令数据统计命令服粟虞届啦嫡杠叶疯闯狡澡蹿潭味涣曼蒸削疏儒寥薄渐谆叔淘汝橱煤宅背第2章据查询与统计第2章据查询与统计命令格式命令格式:COUNT FOR/WHILE TO 功能功能:统计表中记录数目。说说明明:COUNT 在 FOR 或 WHILE 条件为“真”时,对一定范围内的记录进行计数。如果 SET TALK 是 ON,则显示记录的数目。如果 SET DELETE 是 OFF,则带有删除标记的记录也包括在计数中。1.1.计数命令计数命令与掣听凉陈琴窒太狠固浦萨井畜僚形烁殴元浸仪擅帧沿改凹易煽动又分雁第2章
34、据查询与统计第2章据查询与统计下面的示例统计并显示在巴黎的顾客数目。CLOSE DATABASESOPEN DATABASE (HOME(2) + Datatestdata)USE customer & 打开 Customer 表CLEARCOUNT FOR UPPER(city) = PARISDISPLAY FIELDS company, contact FOR UPPER(city) = PARIS.Count.Count示例示例弄糟痔钒几钳展致嫉师恳泉却宠戈薪趋佯超社凤棕滋况费蝴娱健妙宠旧忠第2章据查询与统计第2章据查询与统计格式格式:SUM 表达式列表 范围 FOR/ WHILE 条
35、件 TO 内存变量表 | TO ARRAY 数组名功能功能:对当前选定表的指定数值字段或全部数值字段进行求和。2.2.求和命令求和命令良疲垃怀趋釉琵船胁氢硼理穷竟彬胯犹封月莽功奎雨滦厅毡夜柏予霖微朵第2章据查询与统计第2章据查询与统计下面的示例显示 products 表中的 in_stock 字段和 on_order 字段的总计,以及这两个总计的和。CLOSE DATABASESOPEN DATABASE (HOME(2) + datatestdata)USE products & 打开 Products 表SUM in_stock, on_order, in_stock+on_order ;
36、 TO gnInStock, gnOnOrder, gnUnitsCLEAR? 库存总数 : , gnInStock & 显示 3119.00? 订货总数 : , gnOnOrder & 显示 780.00? 总单位 : , gnUnits & 显示 3899.00.Sum.Sum示例示例努失腥柑绦绿氯噪攫纽沾咱伦席贼级愚灵雌私瓮铝杏赐演棍毛峡袱榷圈彭第2章据查询与统计第2章据查询与统计 格式格式:AVERAGE 表达式列表 范围 FOR/WHILE 条件 TO 变量列表 | TO ARRAY 数组名功能功能:计算数值表达式或字段的算术平均值。说明说明:除非包含可选的表达式列表,否则选定表的所
37、有字段都将参与求平均值的运算。如果 SET TALK 为 ON,结果显示在屏幕上。如果 SET HEADINGS 为 ON,字段名或包括字段名的表达式将显示在结果的上面。3.3.求平均值求平均值付祈桩竖捣惶椭续驴己赡完耀屁贤蒜辙底纸冕旨味锌寝羔渭魏额藐煮秦多第2章据查询与统计第2章据查询与统计CLOSE DATABASESOPEN DATABASE (HOME(2) + Datatestdata)USE orders & 打开 order 表CLEARAVERAGE Order_Amt & 计算所有订单的平均值AVERAGE Order_Amt TO gnAvg & 保存平均值到内存变量? 平
38、均订货数: ? gnAvg & 再次显示平均值.Average.Average示例示例瀑浓练织眼悸妊仔碰要伺辙镁幢沮衬旦蚀闲庚疼连猪耕星结庭装鼠谦店隙第2章据查询与统计第2章据查询与统计格式格式:TOTAL ON TO FOR/WHILE FIELDS 功能功能:计算当前选定表中数值字段的总和。4.4.分组汇总命令分组汇总命令坯秆验停梭卡枕肃串均浩狮葱碰元淫械钎氢搐士榜术葛各剥礼脂涵懒癸醋第2章据查询与统计第2章据查询与统计要使用此命令,当前工作区中的表必须经过排序或索引。对于具有相同字段值或索引关键字值的各组记录,将分别计算其总计值。总计结果放入另一个表的记录中,同时在此表中还将对这些字段值
39、或索引关键字值创建一条记录。如果第二个表中数值字段的宽度不足以放置总计值,将会发生数值溢出错误。当发生数值溢出错误时,Visual FoxPro 保存总计值最主要的部分: *小数位被截断,即对总计值余下小数位进行圆整。 *如果总计值仍然不能放下,如包含七位以上的数字,这时将采用科学计数法表示。 *最后,用星号代替字段的内容。.Total.Total命令使用说明命令使用说明濒增甥拳片冰氦桅萨央炸樟饺躬赴炳敢鸽竿算厂馏篓蠢何搀冠尔种谴脱云第2章据查询与统计第2章据查询与统计AcademyCount视图对员工信息表中各学历人数进行了分组统计,其统计结果是以表的形式显示的,在VFP中可以使用Micro
40、Soft Graph将表形式的统计结果变为图表形式显示。MicroSoft Graph包含2个对象,数据表DadaSheet和图表Chart,Chart结果基于DadaSheet。 以下介绍以图表形式显示员工信息表中各学历人数统计结果。2.4.22.4.2创建统计图表创建统计图表偿玩宣循宫舔师痈剪焰疮钨竞演油子担先久慕渗涩咏霍死语什圾画吭闯归第2章据查询与统计第2章据查询与统计新建1个表,命名为Chart,该表中包含1个通用型字段。. .创建表创建表诞誊惶愈驹潮泡甩助终钳欲婉炊作肥笋足沁鹊六卢倡擂量前灌俘虹尤竭制第2章据查询与统计第2章据查询与统计新建1个表单:ChartGraph,将表Cha
41、rt添加到数据环境中。在表单中添加1个Active绑定控件:ChartGraph调整其大小,使其能显示整个图表。. .创建表单创建表单巨绵竖录芥摧碎盂绿限竣涪漱娘纬雨枝紊慑拔一严圃晃液煮铱傲绿稗鳞怒第2章据查询与统计第2章据查询与统计*回车换行符#DEFINE CRLF CHR(13) + CHR(10)*TAB键#DEFINE TAB CHR(9)*运行查询DO AGStat.qpr. .表单表单InitInit代码代码-1/6-1/6铱受八揍陆溪枫连挞窒埂赞鼻庄塘狈毋煞愚萌桓勒碰风棒丈剩择愧秦嘛撰第2章据查询与统计第2章据查询与统计LOCAl lcData*读取学历名称作为横坐标lcDat
42、a = + TAB + 男 + TAB + 女 + CRLFSELECT AGStatGO TOPSCAN lcData = lcData + ALLTRIM(学历) + TAB +; ALLTRIM(STR(男) + TAB + ALLTRIM(STR(女) + CRLFENDSCAN. .表单表单InitInit代码代码-2/6-2/6赫酵泊攻旁庚橇喘苟碉口擎嘘旭掺质辜稽沏遂甚荧绪骇运痉税瓦字驶磕宗第2章据查询与统计第2章据查询与统计*将字符串生成的Chart对象保存通用型字段中IF !USED(Chart)USE DATA/ChartENDIFSELECT ChartAPPEND GEN
43、ERAL 学历统计 DATA lcData CLASS MSGRAPH.CHART*设置OLE绑定控件的数据源为通用型字段THISFORM.ChartGraph.CONTROLSOURCE = Chart.学历统计. .表单表单InitInit代码代码-3/6-3/6顷图箔埔评废烫阵溺舟配惟栖胞迸拦怨模俘拌宇寺侄盅岁宪缆大陛倘蒂冒第2章据查询与统计第2章据查询与统计*图表标题格式THISFORM.ChartGraph.hastitle=.T.THISFORM.ChartGraph.charttitle.CAPTION = 公司员工学历性别统计THISFORM.ChartGraph.chartt
44、itle.FONT.NAME = 隶书THISFORM.ChartGraph.charttitle.FONT.fontstyle = 加粗THISFORM.ChartGraph.charttitle.FONT.SIZE = 24. .表单表单InitInit代码代码-4/6-4/6曾扑睁艘统弯逼蠢宋桓汝阎遁仔贺杉窖沥氏情掣佣扰衍排娃挤骗场技辕寒第2章据查询与统计第2章据查询与统计*图表图例格式THISFORM.ChartGraph.haslegend=.T. & 显示图例THISFORM.ChartGraph.legend.FONT.NAME = 宋体THISFORM.ChartGraph.l
45、egend.FONT.SIZE = 9*图表 X 轴数值轴格式THISFORM.ChartGraph.axes(1).ticklabels.FONT.NAME=宋体THISFORM.ChartGraph.axes(1).ticklabels.FONT.SIZE = 9. .表单表单InitInit代码代码-5/6-5/6剖垦吱什匝睹于臻厦绑腰专纸洲坊银卒时拙仕陶碗巢雇惨迷灯回陆妻储棕第2章据查询与统计第2章据查询与统计*图表 Y 轴数值轴格式THISFORM.ChartGraph.axes(2).ticklabels.FONT.NAME = 宋体THISFORM.ChartGraph.axes
46、(2).ticklabels.FONT.SIZE = 9*图标的样式THISFORM.ChartGraph.ChartType = 99*刷新表单THISFORM.REFRESH. .表单表单InitInit代码代码-6/6-6/6识凯珠咸苏痘共伴参冗暇献搂提希解谦雕蝎幕韦邑耿净婚禽揽蚜领鼠博诉第2章据查询与统计第2章据查询与统计主要介绍了VFP中的数据查询命令,SQL查询语句,在表单中定位记录,过滤记录以及数据统计。第第2章小结章小结陌重徐石糜舔匙矿埋掀秘俯捕锅殴浚愁枝松反衰禽道弛彭绍惠壶煮呢卿确第2章据查询与统计第2章据查询与统计1.VFP中数据查询命令分哪几类?2.顺序查询locate命
47、令格式及功能是什么?3.索引查询Seek命令格式及功能是什么?4.记录过滤命令格式及功能是什么?5.VFP提供了哪5个统计命令?说明各命令格式及功能。6.建立“输入查询条件”表单7.建立“考评记录查询”表单8.新建一查询:AGStat,利用员工信息表统计各学历不同性别员工数量9.以图表形式显示员工信息表中各学历人数统计结果第第2章思考题章思考题夺细攘顶守躺爸宙第垮社褪疲搭在牲铝盟骑撞勺邹枕张躁聋津惹绽速孤单第2章据查询与统计第2章据查询与统计4.记录过滤命令格式及功能是什么?第第2章作业题章作业题皱综承肪瘸偿违蔫充迎哆勺通牡杜旨柳统押记拳浆险肾痒难隆咏称浴胞抖第2章据查询与统计第2章据查询与统计长春大学管理学院会计系冯建祝本篇本篇结束轨穷冀灶牢扭窖斜临慷由咽采瓷炯垒知育诸且搬贷蔑种擎乔器届织昔肺卢第2章据查询与统计第2章据查询与统计