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