100年升等考 資料庫應用 - 考試

Table of Contents

一、假設某金融關連式資料庫(Relational Database),有三個 Tables:
Customer(SID,CName)
Deposit(BankName, SID, Balance)
Loan(BankName, SID, Amount)
分別代表:
顧客(身分證字號,姓名)
存款(銀行名稱,客戶身分證字號,存款餘額)
借款(銀行名稱,客戶身分證字號,借款總額)
存款餘額為 0,不會留在存款表格;借款總額為0,亦不會留在借款表格。
請寫出下列SQL:
請列出所有銀行名稱(相同銀行名稱只能列出一筆)。(10分)
堦請列出有在中華銀行的存款,但沒在中華銀行借款的客戶姓名。(10分)
壜請列出一份統計:銀行名稱、其存戶最高存款金額。(10分)


請問一下這題..是需要用到集合論方法嗎?

--

All Comments

Iris avatarIris2014-05-11
個人認為第一題可以用UNION其他就正常解 有錯請告知
Hedy avatarHedy2014-05-13
交集差集可以用IN NOT IN解
Genevieve avatarGenevieve2014-05-16
SELECT DISTINCT 銀行名稱 FROM存款 UNION
SELECT DISTINCT 銀行名稱FROM 借款 WHERE
Eartha avatarEartha2014-05-18
借款.銀行名稱 NOT IN (SELECT銀行名稱FROM存款)
David avatarDavid2014-05-22
第2題 一解
SELECT 姓名 FROM 存款 顧客
John avatarJohn2014-05-26
WHERE
存款.銀行名稱 =中華銀行
and 存款.銀行名稱 not in (SELECT銀行名稱FROM借款)
Bethany avatarBethany2014-05-29
and 顧客.身分證字號=存款.客戶身分證字號
第二種
Ursula avatarUrsula2014-06-01
SELECT 姓名 FROM 存款 顧客 借款 WHERE
存款.銀行名稱 =中華銀行
and 顧客.身分證字號=存款.客戶身分證字號
Olive avatarOlive2014-06-04
and 存款.銀行名稱=借款.銀行名稱
and 借款.銀行名稱 !=中華銀行
第3題 一個 group by+MAX就可解了吧