對於每一位總借閱次數超過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
留言
張貼留言