三、綜合應用(1小題,計30分)
當order_detail表中的單價修改后,應該根據(jù)該表的"單價"和"數(shù)量"字段修改
order_list表的總金額字段,現(xiàn)在編寫程序?qū)崿F(xiàn)此功能,具體要求和注意事項
如下:
(1) 根據(jù)order_detail表中的記錄重新計算order_list表的總金額字段的值;
(2) 一條order_list記錄可以對應幾條order_detail記錄;
(3) 在編程前應保證在基礎(chǔ)操作中正確地建立了order_list表,在簡單應用中為該表追加了記錄(注意只能追加一次);
(4) 最后將order_list表中的記錄按總金額降序排序存儲到od_new表中(表結(jié)構(gòu)與order_list表完全相同);
(5) 將程序保存為prog1.prg文件。
本題主要考核點:
程序的建立方法、程序中循環(huán)結(jié)構(gòu)的使用、SQL查詢語句的使用、記錄的修改方法等知識點
本題解題思路:
第一步:打開項目客戶管理,在項目管理器中先選擇"代碼"標簽,再選擇"程序",最后點擊"新建"按鈕。
第二步:在彈出的窗中中輸入以下代碼:
SET TALK OFF &&在程序運行模式下關(guān)閉命令結(jié)果的顯示
SET SAFETY ON &&關(guān)閉文件重名時的提示
CLOSE ALL
SELECT 訂單號,SUM(數(shù)量*單價) AS 總金額;
FROM ORDER_DETAIL;
GROUP BY 訂單號;
INTO CURSOR CurTable
&&這里首先得到每一個訂單的總金額,由于每一個訂單對應有多項記錄,
&&所以我們要得到每一個訂單的總金額需要用到SUM函數(shù),SUM(數(shù)量*單價) AS 總金額
&&放在SELECT的后面,并和訂單號用逗號隔開;要以訂單號做為分組的依據(jù),將訂單號放在
&&ORDER BY 的后面;將結(jié)果集放入一個臨時表CurTable中用INTO CURSOR CurTable
OPEN DATABASE 訂貨管理
&&打開數(shù)據(jù)庫文件
SELECT 2
&&選擇工作區(qū)
USE ORDER_LIST
&&在新的工作區(qū)中打開表ORDER_LIST
DO WHILE NOT EOF() &&遍歷ORDER_LIST中的每一條記錄
SELECT CurTable.總金額 FROM CurTable;
WHERE CurTable.訂單號=order_list.訂單號;
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |