2011-05-08 150 views
2

這裏有關聯的表:需要幫助與SQL查詢

movie 
(
    mvnumb int, 
    mvtitle char(100), 
    yrmde int, 
    mvtype char(9), 
    crit int, 
    mpaa char(6), 
    noms int, 
    awrd int, 
    dirnumb int 
) 


director 
( 
    dirnumb int, 
    dirname char(36), 
    dirborn int, 
    dirdied int 
) 

我的目標是構建一個SQL查詢,列出誰收到的獎勵(awrd)的最大數量的主管的名字。我似乎無法得到這個工作...任何幫助將不勝感激..非常感謝。

回答

3

像這樣的東西(SQL服務器):

select top 1 d.dirname,sum(awrd) awrd 
from director d 
inner join movie m 
on m.dirnumb=d.dirnumb 
group by d.dirname 
order by sum(awrd) desc 

或者,在Oracle:

select * from (
select d.dirname, sum(awrd) awards 
from director d 
inner join movie m 
on m.dirnumb=d.dirnumb 
group by d.dirname 
order by sum(awrd) desc) 
where rownum<2; 

編輯:修改Oracle查詢,爲@pilcrow建議。

+0

不完全確定,它託管在我學校的網絡上。我早些時候嘗試使用TOP 1,但總是會導致: 錯誤在第1行: ORA-00923:FROM關鍵字找不到預期的地方 – mike 2011-05-08 17:06:39

+0

那麼它就是Oracle。 – magma 2011-05-08 17:08:14

+0

錯誤在第7行: ORA-00935:組函數嵌套得太深 使用上面的oracle代碼時。 – mike 2011-05-08 17:11:09