使用过滤器访问sql排名

时间:2016-02-02 20:06:28

标签: sql ms-access

大家好我有一个简单的asp / access sql脚本,我想从一个名为投影得分的表中读取。使用名为raceday的字段输入分数。我在这个网站上找到了以下sql并对其进行了调整以匹配我的字段/表名。

SELECT tid ,tots,raceday, 1+  (SELECT COUNT(T1.tots)
FROM rankings  AS T1
WHERE T1.tots >T2.tots) AS Rank   FROM  rankings AS T2
ORDER BY tid asc 

我需要找到一种通过raceday过滤的方法并计算返回记录的等级。 以下代码返回raceday = 4的记录,但它计算所有记录的排名。

SELECT tid ,tots, raceday, 1+ (SELECT COUNT(T1.tots)
FROM projections  AS T1
WHERE T1.tots >T2.tots) AS Rank   FROM projections AS T2
where raceday = '4'
ORDER BY tid asc

当按照4条记录返回排名时,排名将为2,12,5,22

我希望它们是1,2,3,4

我还尝试了>之后的raceday ='4'语句。 t2.tots部分,但它返回所有记录

非常感谢任何帮助

1 个答案:

答案 0 :(得分:0)

我找到了一个解决方案,我添加了raceday =?到主查询以及子查询

SELECT raceday,tid,tots,1 +(SELECT COUNT(T1.tots)
FROM投影AS T1
raceday =' 4'和T1.tots> T2.tots)AS排名来自预测AS T2
raceday =' 4'
ORDER BY raceday asc