三、綜合應(yīng)用(1小題,計(jì)30分)
在考生文件夾下有倉庫數(shù)據(jù)庫GZ3包括兩個(gè)表文件:
ZG(倉庫號C(4),職工號C(4),工資N(4))
DGD(職工號C(4),供應(yīng)商號C(4),訂購單號 C(4),訂購日期D,總金額N(10))
首先在GZ3庫中建立工資文件數(shù)據(jù)表:GJ3(職工號C(4),工資N(4))設(shè)計(jì)一個(gè)名為YEWU3的菜單,菜單中有兩個(gè)菜單項(xiàng)"查詢"和"退出"。
程序運(yùn)行時(shí),單擊"查詢"應(yīng)完成下列操作:檢索出與供應(yīng)商S7、S4和S6都有業(yè)務(wù)聯(lián)系的職工的職工號和工資,并按工資降序存放到所建立的GJ3文件中。單擊"退出"菜單項(xiàng),程序終止運(yùn)行。
(注:相關(guān)數(shù)據(jù)表文件存在于考生文件夾下)
本題主要考核點(diǎn):
表結(jié)構(gòu)的建立、菜單的建立、結(jié)構(gòu)化查詢語言(SQL)中的聯(lián)接查詢、查詢的排序、臨時(shí)表的概念、查詢結(jié)果的去向、HAVING子句、聚合函數(shù)COUNT()等的使用等知識。
解題思路:
第一步:利用菜單設(shè)計(jì)器定義兩個(gè)菜單項(xiàng),在菜單名稱為"查詢"的菜單項(xiàng)的結(jié)果列中選擇"過程",并通過單擊"編輯"按鈕打開一個(gè)窗口來添加"查詢"菜單項(xiàng)要執(zhí)行的命令。在菜單名稱為"退出"的菜單項(xiàng)的結(jié)果列中選擇"命令",并在后面的"選項(xiàng)"列中輸入以下退出菜單的命令:SET SYSMENU TO DEFAULT
第二步:在單擊"計(jì)算"菜單項(xiàng)后面的"編輯"按鈕所打開的窗口中添加如下的過程代碼:
SET TALK OFF &&在程序運(yùn)行時(shí)關(guān)閉命令結(jié)果的顯示
OPEN DATABASE GZ3 &&打開數(shù)據(jù)庫文件GZ3
USE DGD &&打開表DGD
CREATE TABLE GJ3(職工號 C(4),工資 N(4))
SELECT 職工號 FROM DGD WHERE 供應(yīng)商號 IN ("S4","S6","S7");
GROUP BY 職工號;
HAVING COUNT(DISTINCT 供應(yīng)商號)=3;
INTO CURSOR CurTable
&&SELECT SQL語句中的GROUP BY 子句可以用來指定結(jié)果集的組,
&&要得到"供應(yīng)商號"是 "S4"、"S6"或"S7"的訂購單,同時(shí)以訂購單所在的職工員進(jìn)行分組
&&并且保證每個(gè)分組里面供應(yīng)商號有三個(gè)(也就是三個(gè)供應(yīng)商都應(yīng)有訂購單);這樣就得到了滿
&&足條件的職工號,將返回的結(jié)果集放于一個(gè)臨時(shí)表CurTable中:INTO CURSOR CurTable
SELECT ZG.職工號,工資 FROM ZG,CurTable WHERE ZG.職工號=CurTable.職工號;
ORDER BY 工資 DESC;
INTO ARRAY AFieldsValue
&&將生成的臨時(shí)表與DGD表進(jìn)行聯(lián)接查詢,便可以得到滿足條件的職工號和工資
&&返回的結(jié)果集放入數(shù)組AFieldsValue中:INTO ARRAY AFieldsValue
INSERT INTO GJS FROM ARRAY AFieldsValue
&&在新建的表中追加記錄
CLOSE ALL
&&關(guān)閉打開的文件
SET TALK ON
&&恢復(fù)命令結(jié)果的顯示設(shè)置
第三步:以文件名YEWU3.MNX保存菜單源文件,并生成菜單,運(yùn)行菜單。
相關(guān)推薦:2010年9月計(jì)算機(jī)等級考試沖刺備考指導(dǎo)專題北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |