Access中的查询两个数据最接近
Access中的查询两个数据最接近
4:0这种格式的比分不好识别,解决问题的关键是算出比赛的分差,否则就真的是要用眼睛看了。
下面提供一种或许是更好的面向“甲方分数:乙方分数”分数格式,求分差的表达式
Abs(Val([比分]) - StrReverse(Mid(Val(StrReverse([比分] & 1)), 2)))
它不受比分位数多少的影响,例如1:4;10:5 ;100:21等比分位数不固定也不成问题。

另外比分最接近、最悬殊和夺冠次数最多的球队都存在超过一支球队的可能,这也是我们需要考虑的因素。
NBA历年总冠军表:
1)比分最接近的比赛:
select t.年份, t.冠军, t.冠军教练, t.亚军, t.亚军教练, t.比分
from (select *,Abs(Val([比分]) - StrReverse(Mid(Val(StrReverse([比分] & 1)), 2))) as 分差 from NBA历年总冠军表)t
where t.分差=(select min(Abs(Val([比分]) - StrReverse(Mid(Val(StrReverse([比分] & 1)), 2)))) from NBA历年总冠军表);
2)比分最悬殊的比赛:
select t.年份, t.冠军, t.冠军教练, t.亚军, t.亚军教练, t.比分
from (select *,Abs(Val([比分]) - StrReverse(Mid(Val(StrReverse([比分] & 1)), 2))) as 分差 from NBA历年总冠军表)t
where t.分差=(select max(Abs(Val([比分]) - StrReverse(Mid(Val(StrReverse([比分] & 1)), 2)))) from NBA历年总冠军表);
3)夺冠次数最多的球队:
select t.冠军,t.wins as 夺冠次数 from
(select 冠军,count(*) as wins from NBA历年总冠军表 group by 冠军)t
where t.wins=(select max(wins) from
(select 冠军,count(*) as wins from NBA历年总冠军表 group by 冠军));