對於每一位總借閱次數超過10(含)次的讀者,列出其讀者編號和2009年的借閱總次數
Book(callNo. isbn, title, subject)
//分類號,ISBN,書名,主題
Patron(pId, name, startDate)
//讀者編號,讀者姓名,開始日期
BorrowRecord(pId, callNo. borrowDate, returnData)
//讀者編號,分類號,借閱日期,歸還日期
對於每一位總借閱次數超過10(含)次的讀者,列出其讀者編號和2009年的借閱總次數
解答:
SELECT C.pId,IFNULL(Q2009,0)
2009borrow
FROM
(
SELECT B.pId,COUNT(*) Q2009 /*借閱超過10(含)次 AND 2009年,的借閱的讀者人數*/
FROM
(SELECT * ,COUNT(*)
FROM BorrowRecord
GROUP BY pId
HAVING COUNT(*)>=10
)AS A JOIN BorrowRecord B
ON A.pId=B.pId
WHERE B.borrowDate LIKE '%2009%'
GROUP BY B.pId
) AS P
RIGHT JOIN
(SELECT * ,COUNT(*) total /*符合借閱次數超過10(含)次的讀者人數*/
FROM BorrowRecord
GROUP BY pId
HAVING COUNT(*)>=10
)AS C
ON P.pId=C.pId
留言
張貼留言