2012計算機等級考試VFP上機典型試題三
題型2查詢
查詢時最終要看查詢的生成命令是否與標準答案一致
例題:已知js表存儲了每名教師的基本信息, 包含文化程度代碼(whcd,c),出生日期(csrq,D),工作日期(gzrq,D)等字段,視圖whcd為文化程度代碼與名稱對照表,含文化程度代碼(dm,c)和文化程度名稱(mc,c)等字段,按如下要求修改jxgl項目中的查詢chaxun:
基于js表和whcd試圖,統(tǒng)計各類文化程度的男性人數(shù)和工作時的平均年齡,要求:輸出文化程度代碼、文化程度名稱、人數(shù)和工作時的平均年齡(字段名依次分別為dm,mc,rs和pjnl),查詢結(jié)果按平均年齡降序排序輸出前3條數(shù)據(jù),且僅輸出人數(shù)大于等于2個人的,輸出去向為表文件temp,(注:教師工作時的年齡為工作日期的年份減去出生日期的年份)
操作:
(1)選中項目管理器中的chaxun,點擊”修改”,打開添加”表或試圖”,將js與視圖whcd(在右下方有視圖選項)加入到查詢設計器中,這時會彈出”聯(lián)接條件”,因為js表與whcd視圖都有文化程度代碼,所以要依次選中js表中的whcd和whcd視圖中的dm,類型為”內(nèi)部聯(lián)接”,單擊”確定”
(2)在”字段”選項卡中的”可用字段”依次選中whcd.dm whcd.mcà添加至”選定字段”
因為人數(shù)要通過函數(shù)生成,所以在”函數(shù)和表達式”中輸入Count(*) as rs添加至”選定字段”
平均年齡也要通過函數(shù)生成,在”函數(shù)和表達式”中輸入Avg(year(gzrq)-year(csrq)) as pjnl添加至”選定字段”
(3)在”聯(lián)接”選項卡中前面已經(jīng)設置了js表與whcd聯(lián)接起來的條件,所以無需再設置,如果在(1)中沒有設置”聯(lián)接條件”,那么就要進行設置,在類型中選中Inner join,字段名輸入js.whcd,條件輸入”=”,值輸入whcd.dm
(4)在”篩選”選項卡中選擇js.xb,條件”=”,實例”男”
(5)在”排序依據(jù)”選項卡中選擇pjnl添加至”選定字段”,在排序選項中選擇”降序”
(6)在”分組依據(jù)”選項卡中選擇whcd.dm,因為要求人數(shù)大于2的顯示,在”滿足條件”中選擇rs 》=,實例中輸入2
(7)”雜項”選項卡,將”列在前面的記錄”中的對號去掉,然后在記錄個數(shù)中輸入3
(8)右擊查詢設計器空白區(qū),選擇”輸出設置”,選中表,輸入temp, (注:有時候輸出文本文件,選擇”屏幕”à文本文件à輸入文件名)
(9)右擊查詢設計器空白區(qū),選擇”查看SQL語句”,比對生成的語句是否與標準答案一樣
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
編輯推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |