我有一张表格,内容如下: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子句显然不像我想要的那样工作。
我只是给它一个镜头,但它没有加起来重复PID的。我在2014年达到19个进球14次助攻。我在2015年有2次助攻。所有时间应该有19个进球和16次助攻。 –
如果没有真实数据,这件事很难去尝试。你可以在http://sqlfiddle.com/准备你的模式吗? –
是的,我从来没有这样做过,所以它可能需要我一点。 –