我有一张账单表,每个账单可以有 20 个子寄存器。
示例(每张账单前 5 名,最多可达 60,000 张账单)
(表一)
Bill | SubRow |
-----+------------+
1000 | 1 |
1000 | 2 |
1000 | 3 |
1000 | 4 |
1000 | 5 |
1001 | 1 |
1001 | 2 |
1001 | 3 |
1001 | 4 |
1001 | 5 |
在另一个表中,我有账单编号和子行范围
示例:(表二)
Bill | InitialRange | Final Range|
-----+--------------+------------+
1000 | 1 | 2 |
1000 | 4 | 5 |
1001 | 3 | 5 |
在查询中,我想实现以下目标:
为了显示,从表一中,所有记录不在表 2 中的范围之间。
这意味着我应该得到以下集合:
Bill | SubRow |
-----+------------+
1000 | 3 |
1001 | 1 |
1001 | 2 |
到目前为止我所拥有的:
Select Bill,SubRow
from TABLE ONE
LEFT join TABLE TWO ON TABLEONE.Bill= TABLETWO.bill
where Subrow < InitialRange and Subrow > FinalRange
但是 TABLETWO 中第二行的第二个条件覆盖了 1000 钞票的第一个条件。
关于如何实现这一目标的任何想法?
注意(我的表格看起来很乱,我会尝试修复它)
带有示例的图像: