題組內容
三、根據下列客戶訂單資料回答相關查詢SQL敘述,資料表格為:Customer(CID, Name), Orders(OID, CID, TotalAmount, OrderDate), Payment(PID, OID, AmountPaid)。(每小題 10 分,共 30 分)
(三)所有訂單但付款金額(AmountPaid)總和不足訂單金額(TotalAmount) 的客戶名稱與欠款金額,並以欠款金額由高至低排序。
申論題作答 (共 3 筆)
依時間顯示最近 3 筆。
熊貓狗
申論題作答 #83767
74 分
74
總分
43秒 總時間
0 人解鎖
2026.06
正文
SELECT c.Name, SUM(o.TotalAmount) SUM(p.AmountPaid) AS OutstandingAmount...
Fisher
申論題作答 #67072
28 分
28
總分
7分5秒 總時間
1 人解鎖
2026.06
正文
SELECT C.Name AS 客戶姓名,(O.TotalAmountSUM(P.AmountPaid)) AS 欠款金額 F...
Fisher
申論題作答 #3332
83 分
83
總分
25秒 總時間
3 人解鎖
2026.02
正文
select c.NAMEE, sum(o.TotalAmount) coalesce(( SELECT SUM(p.AmountPaid) F...
詳解 (共 2 筆)
小艾
詳解 #7405882
SELECT c.Name, (SUM(...
(共 402 字,隱藏中)
前往觀看
Yuchang Wu
詳解 #6560179
SELECT
c.Name,
SUM(o.TotalAmount) - IFNULL(SUM(p.AmountPaid), 0) AS OutstandingAmount
FROM
Customer c
JOIN
Orders o ON c.CID = o.CID
LEFT JOIN
Payment p ON o.OID = p.OID
GROUP BY
o.OID, c.Name
HAVING
OutstandingAmount > 0
ORDER BY
OutstandingAmount DESC;
說明:
• 使用左外連接 (LEFT JOIN) 將訂單與付款資料連結,確保即使沒有付款也會列出。
• 計算每筆訂單的欠款:訂單金額總和減去付款金額總和。
• 欠款金額大於零即表示尚未付清。
• 按欠款金額從高到低排序。
如果要以客戶整體欠款(所有訂單加總後)來排序,可以改成下面的版本:
• 使用左外連接 (LEFT JOIN) 將訂單與付款資料連結,確保即使沒有付款也會列出。
• 計算每筆訂單的欠款:訂單金額總和減去付款金額總和。
• 欠款金額大於零即表示尚未付清。
• 按欠款金額從高到低排序。
如果要以客戶整體欠款(所有訂單加總後)來排序,可以改成下面的版本:
SELECT
c.Name,
SUM(o.TotalAmount) - IFNULL(SUM(p.AmountPaid), 0) AS OutstandingAmount
FROM
Customer c
JOIN
Orders o ON c.CID = o.CID
LEFT JOIN
Payment p ON o.OID = p.OID
GROUP BY
c.CID, c.Name
HAVING
OutstandingAmount > 0
ORDER BY
OutstandingAmount DESC;
c.Name,
SUM(o.TotalAmount) - IFNULL(SUM(p.AmountPaid), 0) AS OutstandingAmount
FROM
Customer c
JOIN
Orders o ON c.CID = o.CID
LEFT JOIN
Payment p ON o.OID = p.OID
GROUP BY
c.CID, c.Name
HAVING
OutstandingAmount > 0
ORDER BY
OutstandingAmount DESC;