2012計(jì)算機(jī)等級(jí)考試VFP上機(jī)典型試題三
題型2查詢(xún)
查詢(xún)時(shí)最終要看查詢(xún)的生成命令是否與標(biāo)準(zhǔn)答案一致
例題:已知js表存儲(chǔ)了每名教師的基本信息, 包含文化程度代碼(whcd,c),出生日期(csrq,D),工作日期(gzrq,D)等字段,視圖whcd為文化程度代碼與名稱(chēng)對(duì)照表,含文化程度代碼(dm,c)和文化程度名稱(chēng)(mc,c)等字段,按如下要求修改jxgl項(xiàng)目中的查詢(xún)chaxun:
基于js表和whcd試圖,統(tǒng)計(jì)各類(lèi)文化程度的男性人數(shù)和工作時(shí)的平均年齡,要求:輸出文化程度代碼、文化程度名稱(chēng)、人數(shù)和工作時(shí)的平均年齡(字段名依次分別為dm,mc,rs和pjnl),查詢(xún)結(jié)果按平均年齡降序排序輸出前3條數(shù)據(jù),且僅輸出人數(shù)大于等于2個(gè)人的,輸出去向?yàn)楸砦募⺶emp,(注:教師工作時(shí)的年齡為工作日期的年份減去出生日期的年份)
操作:
(1)選中項(xiàng)目管理器中的chaxun,點(diǎn)擊”修改”,打開(kāi)添加”表或試圖”,將js與視圖whcd(在右下方有視圖選項(xiàng))加入到查詢(xún)?cè)O(shè)計(jì)器中,這時(shí)會(huì)彈出”聯(lián)接條件”,因?yàn)閖s表與whcd視圖都有文化程度代碼,所以要依次選中js表中的whcd和whcd視圖中的dm,類(lèi)型為”內(nèi)部聯(lián)接”,單擊”確定”
(2)在”字段”選項(xiàng)卡中的”可用字段”依次選中whcd.dm whcd.mcà添加至”選定字段”
因?yàn)槿藬?shù)要通過(guò)函數(shù)生成,所以在”函數(shù)和表達(dá)式”中輸入Count(*) as rs添加至”選定字段”
平均年齡也要通過(guò)函數(shù)生成,在”函數(shù)和表達(dá)式”中輸入Avg(year(gzrq)-year(csrq)) as pjnl添加至”選定字段”
(3)在”聯(lián)接”選項(xiàng)卡中前面已經(jīng)設(shè)置了js表與whcd聯(lián)接起來(lái)的條件,所以無(wú)需再設(shè)置,如果在(1)中沒(méi)有設(shè)置”聯(lián)接條件”,那么就要進(jìn)行設(shè)置,在類(lèi)型中選中Inner join,字段名輸入js.whcd,條件輸入”=”,值輸入whcd.dm
(4)在”篩選”選項(xiàng)卡中選擇js.xb,條件”=”,實(shí)例”男”
(5)在”排序依據(jù)”選項(xiàng)卡中選擇pjnl添加至”選定字段”,在排序選項(xiàng)中選擇”降序”
(6)在”分組依據(jù)”選項(xiàng)卡中選擇whcd.dm,因?yàn)橐笕藬?shù)大于2的顯示,在”滿(mǎn)足條件”中選擇rs 》=,實(shí)例中輸入2
(7)”雜項(xiàng)”選項(xiàng)卡,將”列在前面的記錄”中的對(duì)號(hào)去掉,然后在記錄個(gè)數(shù)中輸入3
(8)右擊查詢(xún)?cè)O(shè)計(jì)器空白區(qū),選擇”輸出設(shè)置”,選中表,輸入temp, (注:有時(shí)候輸出文本文件,選擇”屏幕”à文本文件à輸入文件名)
(9)右擊查詢(xún)?cè)O(shè)計(jì)器空白區(qū),選擇”查看SQL語(yǔ)句”,比對(duì)生成的語(yǔ)句是否與標(biāo)準(zhǔn)答案一樣
SELECT TOP 3 Whcd.*, count(*) as rs,;
avg(year(gzrq)-year(csrq)) as pjnl
FROM jxsj!js INNER JOIN jxsj!whcd
ON Js.whcd = Whcd.dm;
WHERE Js.xb = “男”;
GROUP BY Whcd.dm;
HAVING rs 》= 2;
ORDER BY 4 DESC;
INTO TABLE temp.dbf
編輯推薦:
歷年全國(guó)計(jì)算機(jī)二級(jí)VF語(yǔ)言真題及答案匯總
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |