我有两个表 - 客户列表旁边有一个总计,他们还有一个类型列和一个状态记录。
例如
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为每位客户退回。
我试图创建多个查询,我可以让它返回所有可能的频段,但不是特定的频段。非常感谢任何帮助。
由于
答案 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)
修改:我无法判断您是否尝试基于TotalORFrom
或TotalORTo
加入,因此此查询会根据任何一个相同而加入。
修改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
B1
与B2
重叠199
。考虑这种替代方法来消除重叠:
P, Maint