100普考資料處理 - 普考

Table of Contents

[考題] 國考歷屆考題與考題觀念討論(書裡看到的選這個)請附上想法、出處

五、假設某圖書館之關聯資料庫中有七個關聯資料表,其資料綱要(data schema)如下,
底線代表主要鍵。
BOOK(BookId, Title, PublisherName)
BOOK_AUTHORS(BookId, AuthorName)
PUBLISHER(Name, Address, Phone)
BOOK_COPIES(BookId, BranchId, No_Of_Copies)
BOOK_LOANS(BookId, BranchId, CardNo, DataOut, DueDate)
LIBRARY_BRANCH(BranchId, BranchName, Address)
BORROWER(CardNo, Name, Address, Phone)
寫出以下查詢之 SQL:(40分)
(一)該圖書館的所有分館各擁有多少本書名為“三國演義”的書?
(二)現在那些借閱人在各分館借出“三國演義”這本書?
(三)現在那些借閱人在各分館有逾期未還的書?
(四)該圖書館擁有多少不同的書籍?

這題小弟在對某補習班的答案時發現補習班的答案跟我的有很大的落差

不知道是小弟我自己觀念不清楚還是補習班答案錯了,所以PO上來與各位

高手們討論~希望各位高手們賜教~謝謝~

以下是小弟的寫法:

------------------------------------------------------------------

(一) SELECT LI.BookId,LI.BranchName,No_Of_Copies
FROM BOOK,BOOK_COPIES AS CP,LIBRARY_BRANCH AS LI
WHERE BOOK.BookId=CP.BookId AND
CP.BranchId=LI_BRANCH.BranchId AND
Title="三國演義"
GROUP BY LI.BranchId,LI.BranchName;

[註]假設No_Of_Copies是重複書的數量

(二) SELECT DISTINCT CardNo,Name
FROM BOOK,BOOK_LOANS,BORROWER
WHERE BOOK.BookId=BOOK_LOANS.BookId AND
BOOK_LOANS.CardNo=BORRPW.CardNo AND
Title="三國演義";

[註]假設可能有借閱者在不同分館借閱相同的書

(三) 此小題使用SQL SERVER語法查詢:
SELECT CardNo,Name
FROM BOOK_LOANS,BORROWER
WHERE BOOK_LOANS.CardNo=BORROWER.CardNo AND
GETDATE() > DueDate;

(四) SELECT COUNT(BookId)
FROM BOOK_COPIES;

[註]假設1.不同的書會有不同的BookId
假設2.可能有書圖書館沒有收藏但把書的資料先建到資料庫中
--

All Comments

Tracy avatarTracy2013-06-25
看起來大致都沒問題 只是為什麼最後一題要選BOOK_COPIES?
Anonymous avatarAnonymous2013-06-28
其實老師講義有類似題 第一題是寫SUM(No_Of_Copies)
Jacob avatarJacob2013-07-02
但是我覺得應該不用加看法跟你一樣 補充一下那題是96高考三
Brianna avatarBrianna2013-07-07
我是假設可能有書的資料有在資料庫中但圖書館中並沒有
收藏此書
Quintina avatarQuintina2013-07-12
二)這樣寫要預設不同館相同書名的ID不一樣吧?
Caitlin avatarCaitlin2013-07-12
假設相同書名不同館的話你用distinct會少列
應該是這樣吧?
Todd Johnson avatarTodd Johnson2013-07-17
然後(四)要用書名區分吧?不同館相同書名算一種書...
Rae avatarRae2013-07-18
如果依照你現在的寫法,不同館相同書名會全部分開計算
Queena avatarQueena2013-07-22
結果相同的書籍也會被認為是不同書籍
Kyle avatarKyle2013-07-22
第二題應該是少一個LIBRARY_BRANCH的table
Kyle avatarKyle2013-07-24
樓上沒錯 然後我寫會把distinct拿掉換group by
針對卡號 人名 分館來做分類
Freda avatarFreda2013-07-25
四要用BOOK不可以用BOOK_COPIES如果某本沒COPY就不會出現
這樣就少算了
Jack avatarJack2013-07-27
二分館也要進來不同分館會有不同人借三國都要算進去
Kama avatarKama2013-07-29
沒注意看二這樣可以不用分館
Lucy avatarLucy2013-08-03
分館是copy的部份主鍵 加進去比較好吧 頂多就是跑慢點
Wallis avatarWallis2013-08-06
寫錯 不是copy 我是說loans table的 抱歉
Ingrid avatarIngrid2013-08-09
沒考上就只能半工半讀了~
Tracy avatarTracy2013-08-13
以上推文的都要上 大家一起加油 XD~~
Isla avatarIsla2013-08-18
別未戰先怯阿!加油!
Aaliyah avatarAaliyah2013-08-22
嗯嗯~大家一起加油!!