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