moea_joint_essay
110年
[資訊] 資訊管理、程式設計
第 二 題
📖 題組:
某書局採會員制販售各式國、高中參考書,系統的關聯式資料庫(Relational Database)包含 4 個資料表(table)如下,有底線者為主鍵: 參考書(書籍編號、書籍名稱、出版商編號、單價、會員折扣數) 出版商(出版商編號、出版商名稱、聯絡人) 銷售(銷售編號、會員編號、銷售日期、書籍編號、數量、售價、購買總額) 會員(會員編號、名字、入會日期、聯絡電話) 若非會員,銷售資料表之欄位(會員編號)紀錄為 N99,書籍之售價採參考書資料表的欄位(單價)販售;反之,若為會員,則採參考書資料表的欄位(單價)乘以欄位(會員折扣數)販售。 針對下列問題,請分別寫出 SQL 指令來進行查詢。(3 題,每題 5 分,共 15 分)
某書局採會員制販售各式國、高中參考書,系統的關聯式資料庫(Relational Database)包含 4 個資料表(table)如下,有底線者為主鍵: 參考書(書籍編號、書籍名稱、出版商編號、單價、會員折扣數) 出版商(出版商編號、出版商名稱、聯絡人) 銷售(銷售編號、會員編號、銷售日期、書籍編號、數量、售價、購買總額) 會員(會員編號、名字、入會日期、聯絡電話) 若非會員,銷售資料表之欄位(會員編號)紀錄為 N99,書籍之售價採參考書資料表的欄位(單價)販售;反之,若為會員,則採參考書資料表的欄位(單價)乘以欄位(會員折扣數)販售。 針對下列問題,請分別寫出 SQL 指令來進行查詢。(3 題,每題 5 分,共 15 分)
📝 此題為申論題,共 3 小題
小題 (二)
若書籍編號 B3169 的銷售量為最好,請列出會員與非會員的購買總額,各是多少?
思路引導 VIP
透過 CASE WHEN 判斷會員編號是否為 'N99',區分為會員與非會員,篩選指定書籍編號,再加總購買總額並依會員類型進行群組 (GROUP BY)。
小題 (一)
請列出每本參考書的銷售數量,並按書籍編號由小到大排序。
思路引導 VIP
使用 SELECT 查詢銷售資料表,利用 SUM 函數加總數量,搭配 GROUP BY 對書籍編號進行群組,最後以 ORDER BY 進行遞增排序。
小題 (三)
書籍編號 B6188 為新出版上架之參考書,店員第一天將會員折扣數由 92 折誤輸入為 82 折,直到當天盤點結帳才發現,請問當天書局少收了多少錢?
思路引導 VIP
將銷售表與參考書表連接 (JOIN),過濾特定書籍且排除非會員 (N99),計算每筆少收的金額:數量 × 單價 × (正確折扣0.92 - 錯誤折扣0.82),最後使用 SUM 加總。