我正在试着用多个表做一个排行榜。一张表记录参加的会议,每次会议计分为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
..。
这一点很清楚吗?
发布于 2014-01-14 07:27:53
如果您构建的查询是这样的,那会怎么样呢?
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
是您的列的名称,其中包含会议等的日期和时间。
最后一个是这一年的全部。
这对你有帮助吗?
https://stackoverflow.com/questions/21107599
复制相似问题