3.綜合應(yīng)用題
首先將order_detail表全部內(nèi)容復(fù)制到od_bak表,然后對od_bak表編寫完成如下功能的程序:
(1)把“訂單號”尾部字母相同并且訂貨相同(“器件號”相同)的訂單合并為一張訂單,新的“訂單號”就取原來的尾部字母,“單價”取最低價,“數(shù)量”取合計。
(2)結(jié)果先按新的“訂單號”升序排序,再按“器件號”升序排序。
(3)最終記錄的處理結(jié)果保存在od_new表中。
(4)最后將程序保存為prog1.prg,并執(zhí)行該程序。
【參考答案】
具體步驟如下:
、 根據(jù)題意,在“命令”窗口輸入命令:
USE order_detail &&打開表order_detail
COPY TO od_bak &&復(fù)制order_detail表全部內(nèi)容到od_bak表中
、 再次在“命令”窗口輸入命令:MODIFY COMMAND prog1,在程序編輯窗口中輸入如下程序段:
********** “prog1.prg”文件中程序段**********
SET TALK OFF
SET SAFETY OFF
&&復(fù)制一個表用來存放結(jié)果
USE od_bak
COPY STRUCTURE TO od_new
&&首先得到所有的新訂單號和器件號;
SELECT RIGHT(訂單號,1)AS新訂單號,器件名,器件號,;
RIGHT(訂單號,1)+器件號AS newnum;
FROM od_bak;
GROUP BY newnum;
ORDER BY新訂單號,器件號;
INTO CURSOR curtable
DO WHILE NOT EOF()
&&得到單價和數(shù)量
SELECT MIN(單價)AS最低價,SUM(數(shù)量)AS數(shù)量合計;
FROM od_bak;
WHERE RIGHT(訂單號,1)=curtable.新訂單號AND器件號=curtable.器件號;
INTO ARRAY AFieldsValue
INSERT INTO od_new VALUES;
(curtable.新訂單號,curtable.器件號,;
curtable.器件名,AFieldsValue(1,1),AFieldsValue(1,2))
SKIP
ENDDO
CLOSE ALL
SET SAFETY ON
SET TALK ON
********************************************
、 保存設(shè)計結(jié)果,在“命令”窗口輸入命令:DO prog1,執(zhí)行程序文件。
【試題解析】
本試題考查的主要是SQL語句的應(yīng)用,包括數(shù)據(jù)查詢、數(shù)據(jù)修改(插入語句INSERT)等,程序設(shè)計過程要注意函數(shù)的使用,注意部分復(fù)制表和復(fù)制結(jié)果的命令語句,復(fù)制表使用COPY TO命令,復(fù)制表結(jié)構(gòu)使用COPY STRUCTURE命令。
相關(guān)推薦:2010年9月計算機(jī)等級考試沖刺備考指導(dǎo)專題北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |