三、綜合應(yīng)用(1小題,計(jì)30分)
在考生文件夾下有工資數(shù)據(jù)庫(kù)WAGE3,包括數(shù)據(jù)表文件:ZG(倉(cāng)庫(kù)號(hào)C(4),
職工號(hào)C(4),工資N(4))
設(shè)計(jì)一個(gè)名為T(mén)J3的菜單,菜單中有兩個(gè)菜單項(xiàng)"統(tǒng)計(jì)"和"退出"。
程序運(yùn)行時(shí),單擊"統(tǒng)計(jì)"菜單項(xiàng)應(yīng)完成下列操作:檢索出工資小于或等于本倉(cāng)庫(kù)職工平均工資的職工信息,并將這些職工信息按照倉(cāng)庫(kù)號(hào)升序,在倉(cāng)庫(kù)號(hào)相同的情況下再按職工號(hào)升序存放到EMP1(EMP1為自由表)文件中,該數(shù)據(jù)表文件和ZG數(shù)據(jù)表文件具有相同的結(jié)構(gòu)。單擊"退出"菜單項(xiàng),程序終止運(yùn)行。
(注:相關(guān)數(shù)據(jù)表文件存在于考生文件夾下)
本題主要考核點(diǎn):
菜單的建立、結(jié)構(gòu)化查詢(xún)語(yǔ)言(SQL)中的聯(lián)接查詢(xún)、查詢(xún)的排序、臨時(shí)表的概念、查詢(xún)結(jié)果的去向等知識(shí)。
解題思路:
利用菜單設(shè)計(jì)器定義兩個(gè)菜單項(xiàng),在菜單名稱(chēng)為"統(tǒng)計(jì)"的菜單項(xiàng)的結(jié)果列中選擇"過(guò)程",并通過(guò)單擊"編輯"按鈕打開(kāi)一個(gè)窗中來(lái)添加"統(tǒng)計(jì)"菜單項(xiàng)要執(zhí)行的命令。在菜單名稱(chēng)為"退出"的菜單項(xiàng)的結(jié)果列中選擇"命令",并在后面的"選項(xiàng)"列中輸入以下退出菜單的命令:SET SYSMENU TO DEFAULT
"統(tǒng)計(jì)"菜單項(xiàng)要執(zhí)行的程序:
首先是打開(kāi)數(shù)據(jù)庫(kù)文件OPNE DATABASE WAGE3.DBC我們應(yīng)該得到每一個(gè)倉(cāng)庫(kù)的職工平均工資,并將結(jié)果放在一個(gè)臨時(shí)的表CurTable中.利用以下語(yǔ)句可以實(shí)現(xiàn):SELECT 倉(cāng)庫(kù)號(hào),AVG(工資) AS AvgGZ FROM ZG GROUP BY 倉(cāng)庫(kù)號(hào) INTO CURSOR CurTable.這樣就生成了一個(gè)表名為CurTable的臨時(shí)表。表中有兩個(gè)字段:倉(cāng)庫(kù)號(hào),AvgGZ,內(nèi)容為每一個(gè)倉(cāng)庫(kù)的倉(cāng)庫(kù)號(hào)和所對(duì)應(yīng)的職工的平均工資。
有了臨時(shí)表CurTable后我們可以將其與ZG進(jìn)行聯(lián)接查詢(xún),我們這里聯(lián)接查詢(xún)的目的不是為了得到臨時(shí)表中的內(nèi)容做為結(jié)果的一部分,而是要用其中的字段AvgGZ做為查詢(xún)的條件.我們便可以得到"工資小于或低于本倉(cāng)庫(kù)職工平均工資的職工信息"的查詢(xún):SELECT ZG.* FROM ZG,CurTable WHERE ZG.倉(cāng)庫(kù)號(hào)=CurTable.倉(cāng)庫(kù)號(hào) AND ZG.工資
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |