帮助访问查询

时间:2011-02-08 06:30:00

标签: ms-access

我有这张桌子折扣:

from | to | Dis
1    | 50 | 10
51   | 80 | 20
81   | 99 | 30
99   |120 | 40

我有这个工作表MyTable:

id | sum | dis
123| 22  | 
222| 85  |
131| 85  |

如何填写MyTable中的dis字段?表格看起来像这样:

(如果from和to之间的总和)

id | sum | dis
123| 22  | 10
222| 85  | 30
131| 95  | 40

我在访问中需要它

提前致谢

2 个答案:

答案 0 :(得分:1)

你必须使用一个不平等的联接,大多数人加入的东西必须是某个时候等于某些东西,但事实并非如此

SELECT tblMyTable.ID, tblMyTable.Sum, tblDiscount.Dis
FROM tblMyTable INNER JOIN tblDiscount ON tblMyTable.Sum <= tblDiscount.To AND tblMyTable.Sum >= tblDiscount.From

Access不支持在设计模式下查看它们,因此您必须自己编写SQL

编辑: 这是一个简单的不同版本,它是一个外部联接,所以如果你没有设置该值的折扣范围,它将默认为0

SELECT tblMyTable.ID, tblMyTable.Sum, NZ(tblDiscount.Dis,0) AS Discount
FROM tblMyTable LEFT OUTER JOIN tblDiscount ON tblMyTable.Sum <= tblDiscount.To AND tblMyTable.Sum >= tblDiscount.From

答案 1 :(得分:0)

您可以使用相当标准的解决方案,即:

SELECT MyTable.id, MyTable.sum, Discount.Dis
FROM Discount, MyTable
WHERE MyTable.sum Between [Discount].[From] And [Discount].[To]

这可以在查询设计窗口中设置。