[英]MS Access 2003: Check if data is within range from another table
我有两个表,表A带有小时,表B带有成绩,并且要求最低小时数
我想要做的就是根据每个记录有多少小时将TableB.Grade分配给TableA。
例:
表A
Name Hours
Person A 205
Person B 105
Person C 400
表B
Grade HoursRequired
1 0
2 100
3 200
4 300
我的预期报告
Name Hours Grade
Person A 105 2
Person B 205 3
Person C 400 4
任何有关SQL编码或表重组的建议将不胜感激。
您可以使用子查询:
select A.Name
, A.Hours
, (
select top 1 grade
from TableB B
where B.HoursRequired <= A.Hours
order by
B.HoursRequired DESC
) as Grade
from TableA A
我喜欢@Andomar的建议。 但是,如果子查询使您感到困惑,则可以这样修改TableB:
Grade low_end high_end
1 0 99
2 100 199
3 200 299
4 300 2147483647
然后使用以下查询:
SELECT a.person_name, a.hours, b.Grade
FROM TableA AS a, TableB AS b
WHERE (((a.hours) Between [b].[low_end] And [b].[high_end]))
ORDER BY a.person_name;
名称是保留字,因此我将您的名称字段重命名为person_name。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.