根据数值范围创建连接

时间:2017-01-09 14:23:02

标签: ms-access ms-access-2010

你们能告诉我下面的情况吗? 我有2张桌子。

表1如下所示: enter image description here

同时,这是表2:

enter image description here

我想将表2连接到表1,根据上限和下限列查找每个作业的成绩。

通过概念化一些可爱的答案,我设法提出一个看起来像这样的声明:

FROM table2 LEFT JOIN table1 ON (table2.[score] >= table1.[lower limit]) AND (table2.[score] <= table1.[upper limit])

上面的声明设法根据范围加入它们,但是,由于某些未知的原因,左表中的某些行丢失了,我无法确定它是什么。例如(表2中的2000行,但查询中只有1800行)

我确定连接是原因,就好像我将连接更改为相等的左连接一样,查询中出现了2000行。

有人可以就此提出建议吗?

此致 光勇

1 个答案:

答案 0 :(得分:0)

创建一个包含1-100值的表并在每个类别中分配它们并基本上镜像表1可能会更加清晰。 然后你可以做表2

SELECT Table1.Grade, Table2.Score
FROM Table2 LEFT JOIN Table1 ON Table2.Score = Table1.Score

这肯定会覆盖0到100之间的所有整数。

如果您手动输入分数,您还可以使用数据宏,如下所示: 转到表格工具&gt;&gt;表&gt;变更前

然后使用设置字段操作,并设置

姓名 = Table2.Grade

= IIf([Score]>=70,"Good",IIf([Score]<=59,"bad","so so"))

使用此^每次输入分数时,它都会自动填充成绩列。

另一个选项是按如下方式创建一个查询,它将评估每一行并指定适当的等级:

SELECT Table2.Score, 
IIf([Score]>=70,"Good",IIf([Score]<=59,"bad","so so")) AS Grade
FROM Table2;
祝你好运!