使用筛选器在access中进行sql排序

使用筛选器在access中进行sql排序,sql,ms-access,Sql,Ms Access,大家好,我有一个简单的asp/access sql脚本,我想从一个名为projections for scores的表中读取它。分数通过名为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

大家好,我有一个简单的asp/access sql脚本,我想从一个名为projections for scores的表中读取它。分数通过名为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

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


任何帮助都将不胜感激

我找到了一个解决方案,我添加了raceday=?到主查询以及子查询 选择比赛日、tid、tots、1+选择计数1.tots 从作为T1的投影 其中raceday='4'和T1.tots>T2.tots作为预测值排名为T2 其中raceday='4'
ORDER BY raceday asc

您需要在子查询中包含where raceday='4'。谢谢@Mark C。为此,我尝试了where raceday='4'和T1.tots>T2.tots作为排名,我正在按raceday获得排名,但仍然会得到返回的其他raceday的结果。我已尝试将不同的racedays添加到sql中,但它仍然返回所有记录。我们必须查看模式和一些用于排名和预测的样本数据。我在您的问题中看到了两个不同的表抱歉,我可能因为一个表的输入错误而错过了潜在客户。实际的表是投影。我在这里放置了一个结果页,以演示SQL的数据输出,其中子查询中的where raceday='4'