繁体   English   中英

MS Access 2003:检查数据是否在另一个表的范围内

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM