复杂的MySQL语句列出钓鱼排名?

复杂的MySQL语句列出钓鱼排名?,mysql,field,addition,Mysql,Field,Addition,我正在尝试使用多个表格制作排名表。其中一个表记录参加的会议,每次会议计5分,另一个表记录比赛结果。这是一个钓鱼俱乐部 到目前为止,我有以下内容,可以按顺序显示集合点,但锦标赛结果与此不同。我想找到一个简单但复杂的SQL语句来列出当前的排名 我需要显示垂钓者的名字,我可以从不同的表格中单独抓取,然后每个月的5分与结果表中的比赛结果一起列出,这些加起来,最终列出所有比赛和会议的总数 SELECT aid, sum(here*5) as total FROM rollcall GROUP BY ai

我正在尝试使用多个表格制作排名表。其中一个表记录参加的会议,每次会议计5分,另一个表记录比赛结果。这是一个钓鱼俱乐部

到目前为止,我有以下内容,可以按顺序显示集合点,但锦标赛结果与此不同。我想找到一个简单但复杂的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


这清楚吗?

如果您构建这样的查询会怎么样

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
是包含会议日期和时间等的列的名称

最后一个占了一年的全部


这能帮你吗?

那不行。现在,在编辑结果表之后,我为每个垂钓者的设置点添加了另一个表。它记录每次锦标赛所获得的积分。现在我的问题是将点名表与积分表连接起来,以显示排名的总积分。我的两个表格中有以下内容:rollcall表格中的aid和points表格中的aid、points、tid。当我使用“select points.aid,sum(points)as total from points group by aid order by total desc”时,它按从高到低的顺序给出每个垂钓者的总积分。我还使用“选择rollcall.aid,sum(此处*5)作为rollcall group by aid order by mtgs desc中的MTG”来显示会议点。我想合并2,这样它就可以按照排名页面的描述顺序将积分添加到会议点。当我合并它们时,它会使用“选择points.aid,sum(points.points)作为总计,sum(rollcall.here*5)作为MTG FROM
points
,得到奇怪的数学结果,
rollcall
其中rollcall.aid=points.aid按rollcall分组。aid按总描述排序。