2011-09-21 122 views
0

我在我的數據庫中的兩個表的第一saveimage包含其中包含ID和每個圖像的得分這個分數不是唯一的每個圖像第二score的標識和網址 - 在得分表中每一行是用戶等級的圖像所以一個圖像可能有幾個分數的行。問題查詢

現在我想找到得分最高的圖像數據庫

我試圖

select * from saveimage 
where saveimage.id in (select top 100 id,SUM(avgscore) 
         from score 
         group by id 
         order by SUM(avgscore) desc) 

這是不工作,因爲

只有一個表達式可以在選擇列表中指定

那麼我該怎麼辦?

回答

2

這應該工作:

SELECT TOP 100 img.id, 
     img.url, 
     SUM(sc.avgscore) as totalScore 
FROM saveimage img 
INNER JOIN score sc 
ON img.id = sc.id 
GROUP BY img.id, img.url 
ORDER BY SUM(sc.avgscore) DESC 
+0

這工作太! – MattW

+0

thx工作很好 –

1

你的子查詢中不能有2列(你有id和sum(avgscore))。

如果你正在努力尋找每幅圖像的頂部100分,嘗試這樣的事情:

select * 
from saveimage 
where saveimage.id in 
    (select top 100 id 
    from score 
    group by id 
    order by SUM(avgscore) desc)