[考題] 100普考資料處理

看板Examination作者 (媽媽咪阿)時間12年前 (2013/06/21 21:44), 編輯推噓10(10014)
留言24則, 4人參與, 最新討論串1/1
[考題] 國考歷屆考題與考題觀念討論(書裡看到的選這個)請附上想法、出處 五、假設某圖書館之關聯資料庫中有七個關聯資料表,其資料綱要(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.可能有書圖書館沒有收藏但把書的資料先建到資料庫中 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 120.114.181.74

06/21 22:02, , 1F
看起來大致都沒問題 只是為什麼最後一題要選BOOK_COPIES?
06/21 22:02, 1F

06/21 22:07, , 2F
其實老師講義有類似題 第一題是寫SUM(No_Of_Copies)
06/21 22:07, 2F

06/21 22:09, , 3F
但是我覺得應該不用加看法跟你一樣 補充一下那題是96高考三
06/21 22:09, 3F
※ 編輯: smalldulan 來自: 111.242.170.165 (06/21 22:19)

06/21 22:23, , 4F
我是假設可能有書的資料有在資料庫中但圖書館中並沒有
06/21 22:23, 4F

06/21 22:23, , 5F
收藏此書
06/21 22:23, 5F
※ 編輯: smalldulan 來自: 111.242.170.165 (06/21 22:25)

06/21 22:26, , 6F
二)這樣寫要預設不同館相同書名的ID不一樣吧?
06/21 22:26, 6F

06/21 22:27, , 7F
假設相同書名不同館的話你用distinct會少列
06/21 22:27, 7F

06/21 22:27, , 8F
應該是這樣吧?
06/21 22:27, 8F

06/21 22:31, , 9F
然後(四)要用書名區分吧?不同館相同書名算一種書...
06/21 22:31, 9F

06/21 22:32, , 10F
如果依照你現在的寫法,不同館相同書名會全部分開計算
06/21 22:32, 10F

06/21 22:33, , 11F
結果相同的書籍也會被認為是不同書籍
06/21 22:33, 11F

06/21 22:37, , 12F
第二題應該是少一個LIBRARY_BRANCH的table
06/21 22:37, 12F

06/21 22:40, , 13F
樓上沒錯 然後我寫會把distinct拿掉換group by
06/21 22:40, 13F

06/21 22:40, , 14F
四要用BOOK不可以用BOOK_COPIES如果某本沒COPY就不會出現
06/21 22:40, 14F

06/21 22:40, , 15F
針對卡號 人名 分館來做分類
06/21 22:40, 15F

06/21 22:40, , 16F
這樣就少算了
06/21 22:40, 16F

06/21 22:44, , 17F
二分館也要進來不同分館會有不同人借三國都要算進去
06/21 22:44, 17F

06/21 22:47, , 18F
沒注意看二這樣可以不用分館
06/21 22:47, 18F

06/21 22:52, , 19F
分館是copy的部份主鍵 加進去比較好吧 頂多就是跑慢點
06/21 22:52, 19F

06/21 22:54, , 20F
寫錯 不是copy 我是說loans table的 抱歉
06/21 22:54, 20F

06/21 22:57, , 21F
沒考上就只能半工半讀了~
06/21 22:57, 21F

06/21 22:59, , 22F
以上推文的都要上 大家一起加油 XD~~
06/21 22:59, 22F

06/21 23:03, , 23F
別未戰先怯阿!加油!
06/21 23:03, 23F

06/21 23:04, , 24F
嗯嗯~大家一起加油!!
06/21 23:04, 24F
文章代碼(AID): #1Hn5YsLt (Examination)