2014-01-14 56 views
0

我想使用多個表格製作榜單圖表。一個會保持跟蹤會議的會議,每個會議計爲5分,另一個會跟蹤比賽結果。這是一個釣魚俱樂部網站。複雜的MySQL語句列出捕魚排名?

到目前爲止,我有以下幾點,可以按順序顯示會議積分,但比賽結果與此不同。我想找到一個儘管複雜的SQL語句來列出當前排名。

我需要顯示可以從不同表格中分離出來的釣魚者名字,然後每個月的5分與結果表中的錦標賽結果數量一起列出,這些全部加起來以最後列出來自所有錦標賽和會議。

SELECT aid, sum(here*5) as total 
FROM rollcall GROUP BY aid ORDER BY total DESC 

SELECT aid, weight, weight-penalty as fweight 
FROM `results` where tid=2 order by fweight desc 

因此,一個例子是:

place angler JAN FEB MARCH ... Total Points 

    1 name1 5 50 5 45 0 38  143 

    2 name2 5 49 5 47 5 31  142 

...

清楚了呢?

+0

這不會做到這一點。現在,我編輯結果表後,我添加了另一張表來爲每個垂釣者設置點數。它會記錄每場比賽獲得的積分。現在我的問題是加入積分表和積分表來顯示積分總積分。我的2個表格有以下內容。 – user3192916

+0

援助,這裏在rolall表和援助,點,tid爲點表。當我使用'選擇points.aid,總分(總分)作爲總分,按照總分類的援助順序,它給出了每個垂釣者的總分數,從高到低排序。我還使用'select rollcall.aid,sum(here * 5)作爲來自rollcall組的mtgs,通過mtgs desc的幫助命令'來顯示會議點。我想將2合併,以便按照排名頁面的desc順序將點添加到會議點。 – user3192916

+0

當我將它們結合起來時,它會使用'SELECT points.aid,sum(points.points)AS total,sum(rollcall.here * 5)AS mtgs FROM'points','rollcall'來產生奇怪的數學WHERE rollcall.aid = points.aid GROUP BY rollcall.aid ORDER BY total DESC'。 – user3192916

回答

0

如果你建立你的查詢是這樣的?

SELECT aid, 
sum(SELECT count(1) from meetings WHERE MONTH(columndatetime) = 1 * 5) AS JAN, 
sum(SELECT count(1) from meetings WHERE MONTH(columndatetime) = 2 * 5) AS FEB, 
/
-- add same logic to the rest of the months 
/
sum(SELECT count(1) from meetings WHERE YEAR(columndatetime) = 2013 * 5) as total 
FROM rollcall GROUP BY aid ORDER BY total DESC 

哪裏columndatetime是你的列有會議等的日期和時間的名稱...

最後一個通吃的一年。

這能幫助你嗎?