SQL Query根据范围中的数据返回值

时间:2011-11-09 12:51:35

标签: sql ms-access

我有两个表 - 客户列表旁边有一个总计,他们还有一个类型列和一个状态记录。

例如

CustomerName, TotalOR, Type, Status
Customer 1, 205, P, Maint
Customer 2, 199, S, Maint

以及第二个表格,其中包含服务范围内的详细信息。

Band, Type, Status, TotalORFrom, TotalORTo
B1, P, Maint, 1, 199
B2, P, Maint, 199, 300
B3, S, Maint, 1, 199

我希望能够根据客户的TotalOR,Type和Status为每位客户退回。

我试图创建多个查询,我可以让它返回所有可能的频段,但不是特定的频段。非常感谢任何帮助。

由于

1 个答案:

答案 0 :(得分:0)

假设第一个表是customer而第二个表是band

SELECT band
FROM customer c
JOIN band b ON c.Type = b.Type
AND c.Status = b.Status
AND (c.TotalOR = b.TotalORFrom OR c.TotalOR = b.TotalORTo)

修改:我无法判断您是否尝试基于TotalORFromTotalORTo加入,因此此查询会根据任何一个相同而加入。

修改2 :根据您的评论,这是一个新查询,可确保customer.TotalOR大于或等于band.TotalORFrom和{{1} }小于或等于customer.TotalOR

band.TotalORTo

更新:以上情况似乎导致SELECT band FROM customer c JOIN band b ON c.Type = b.Type AND c.Status = b.Status AND c.TotalOR BETWEEN b.TotalORFrom AND b.TotalORTo B1B2重叠199。考虑这种替代方法来消除重叠:

P, Maint