2012-04-13 3 views
0

어떤 책이 가장 많이 대여되었는지를 보여주는 보고서를 얻기 위해 쿼리를 작성하려고합니다. 실제 도서를 가장 많이 빌려 오는 쿼리가 있지만 다른 테이블에있는 해당 도서의 제목을 표시 할 수 있어야합니다. SQL 쿼리 - 다른 테이블에서 정보를 가져와야합니다.

BOOKID BOOK_COUNT 
---------- ---------- 
     387   3 

가 지금은 책 테이블에서 BkTitle 필요합니다

SELECT * FROM LOAN; 

LOANID  BOOKID  CUSTID OUTDATE INDATE DUEDATE 

SELECT * FROM BOOK; 

AUTHORID  BOOKID BKISBN BKSTATUS BKTITLE BKSERIES BKTYPE BKNUMBER 

다음 쿼리는 지금까지이 있고 bookID로서 :

SELECT Q1.* FROM 
(SELECT BOOKID, COUNT(*) 
    AS BOOK_COUNT 
    FROM LOAN 
    GROUP BY LOAN.BOOKID) Q1, 
(SELECT MAX(Q2.BOOK_COUNT) 
    AS HIGH_COUNT 
    FROM (SELECT BOOKID, COUNT(*) 
    AS BOOK_COUNT 
    FROM LOAN 
    GROUP BY LOAN.BOOKID) Q2) Q3 
WHERE Q1.BOOK_COUNT = Q3.HIGH_COUNT; 

결과를 받고있는 것이다.

누구든지 도와 줄 수 있습니까?

+0

환영을보십시오 : 당신은 코드, XML 또는 데이터 샘플을 게시 할 경우, ** 텍스트 편집기에서 그 라인을 선택하고 버튼을 "코드 샘플"를 클릭하십시오 ('{} ')을 사용하여 멋지게 형식을 지정하고 구문을 강조 표시합니다. –

+0

어떤 DB 엔진을 사용하고 있습니까? –

답변

0

에 StackOverflow에

select b.bookid, b.BKTITLE , count(l.loanid) as cnt_loan 
from book b 
inner join loan l on l.bookid = b.bookid 
WHERE ROWNUM < 2 
group by b.bookid 
order by cnt_loan desc 
+0

Oracle SQL Plus를 사용하고 있습니다. 위의 코드도 작동하지 않았습니다. –

+0

ORA-00923 : FROM 키워드를 찾을 수 없습니다. –

+0

@ReneCanter : Oracle을 사용하는 경우 업데이트 된 답변을 시도하십시오. –

관련 문제