我有一个表(A),其中PK是一个整数:
Entry No. Date Product
-------------------------------
10001 1/1/19 Jeans
10002 1/1/19 Shoes
10003 2/1/19 Jeans...
我还有另一个表(B),下面有示例数据(所有值都是int):
ID Begin End
-------------------
1 10001 10003
2 10004 10007
3 10008 10019...
我需要为表A中的每个[条目号]在表B中找到[ID]。
我相信这需要取消表B的位置,因此[Begin]和[End]在同一列中,然后“扩展”行,因此每个int都有一行:
ID Entry No.
-------------
1 10001
1 10002
1 10003
2 10004
2 10005
2 10006
2 10007
3 10008...
然后我可以将其加入到[表A]上的表A。[条目号] = [表B]。[条目号]
我的验证码:
SELECT
ID, [Entry No.]
FROM
(SELECT * FROM [Table B]) AS piv
UNPIVOT
([Entry No.] FOR values IN (Begin, End)) AS unpvt
是否有更好的方法?如果没有,您能帮我如何“扩展”表B吗?
使用JOIN
:
select a.*, b.*
from a join
b
on a.entry_no between b.begin_entry and b.end_entry