2012-04-13 45 views
0

我想寫一個查詢來獲得一個報告,顯示哪本書已經被借出最多。我有一個查詢來獲取最實際的圖書,但我需要能夠顯示該書的標題,該書位於另一個表中。SQL查詢 - 需要從不同的表中獲取信息

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; 

結果:

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

現在我需要BkTitle從書籍表。

任何人都可以協助嗎?

+0

歡迎StackOverflow上:如果您發佈的代碼,XML或數據樣本,** **請在高亮文本編輯器的線,然後單擊「代碼示例」按鈕('{} ')在編輯器工具欄上進行恰當的格式化和語法突出顯示! – 2012-04-13 20:28:41

+0

您使用的是哪種數據庫引擎? – 2012-04-13 20:32:56

回答

0

嘗試

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。上面的代碼也沒有工作, – 2012-04-13 20:38:47

+0

ORA-00923:在預期的地方找不到FROM關鍵字 – 2012-04-13 20:39:47

+0

@ReneCanter:如果您使用的是Oracle,那麼請嘗試更新的答案。 – 2012-04-13 20:42:48

相關問題