2015-11-05 94 views
0

我有一張表格,內容如下:http://i.stack.imgur.com/zH2zz.png
此表適用於曲棍球聯盟(Link Here)。這是統計數據將在數據庫中保存的第二個賽季。如果您選擇鏈接中的下拉菜單,您會看到我可以在兩個季節中生成前20個列表(1個季節除1個測試程序外沒有數據)。目標是總計兩個賽季,並有一個歷史排名前20的名單。我曾嘗試使用總和功能,但確實將每一行添加到1.
添加2個或更多不同行的列值。 SQL

我只想總結重複玩家ID的行。例如,我是玩家ID#2,我需要每個目標並協助添加包含我的PID的每行,但是我需要爲1個查詢中的所有前20位玩家提供此信息。以下是我目前使用的一些查詢。

SELECT Rosters.PID, Rosters.Goals, Rosters.Assists, Rosters.PIM, Rosters.Num, Rosters.TID, Players.pid, Players.firstname, Players.lastname, 
     (Rosters.Goals + Rosters.Assists) AS Points 
     FROM Rosters 
     INNER JOIN Players 
     ON Rosters.PID = Players.pid 
     WHERE Rosters.TID BETWEEN $parameter 
     ORDER BY Points DESC, Goals DESC 
     LIMIT 0,20 

$parameter是基於團隊的ID(TID)有16個工業貿易署(8每個季節)。這個查詢獲取所有的記錄,當參數是1-16時,它只是不通過PID加上非獨特的行(這最終是我想要學的)。這倒說明如何查詢被實例化

<div class="ddstyle"> 
    <select name="DropDownTeams" id="DDTeams"> 
     <option>Select a Season</option> 
     <option value="stats2.php?tid=9 AND 16">2015-2016</option> 
     <option value="stats2.php?tid=1 AND 8">2014-2015</option> 
     <option value="stats2.php?tid=1 AND 16">All Time</option> 
    </select> 
</div> 

我試圖做的下降:

SELECT Rosters.PID, SUM(Rosters.Goals) Goals, SUM(Rosters.Assists) Assists, SUM(Rosters.PIM) PIM, Rosters.Num, Rosters.TID, Players.pid, Players.firstname, Players.lastname, 
    SUM((Rosters.Goals + Rosters.Assists)) AS Points 
    FROM Rosters 
    INNER JOIN Players 
    ON Rosters.PID = Players.pid 
    WHERE Rosters.TID BETWEEN 1 AND 16 
    ORDER BY Points DESC, Goals DESC 
    LIMIT 0,20; 

但是,這只是增加了每個記錄成一排。當使用SUM()函數時,Where子句顯然不像我想要的那樣工作。

回答

1

附上Group BY部分http://www.w3schools.com/sql/sql_groupby.asp

SELECT Rosters.PID 
    ,SUM(Rosters.Goals) Goals 
    ,SUM(Rosters.Assists) Assists 
    ,SUM(Rosters.PIM) PIM 
    ,Players.pid 
    ,SUM((Rosters.Goals + Rosters.Assists)) AS Points 
FROM Rosters 
INNER JOIN Players ON Rosters.PID = Players.pid 
WHERE Rosters.TID BETWEEN 1 
     AND 16 
GROUP BY 
    Players.pid 
ORDER BY Points DESC 
    ,Goals DESC 
LIMIT 0 
    ,20; 
+0

我只是給它一個鏡頭,但它沒有加起來重複PID的。我在2014年達到19個進球14次助攻。我在2015年有2次助攻。所有時間應該有19個進球和16次助攻。 –

+0

如果沒有真實數據,這件事很難去嘗試。你可以在http://sqlfiddle.com/準備你的模式嗎? –

+0

是的,我從來沒有這樣做過,所以它可能需要我一點。 –