SQL扩展范围以包括缺少的行

问题描述 投票:0回答:1

我有一个表(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吗?

sql sql-server tsql join ssms
1个回答
1
投票

使用JOIN

select a.*, b.*
from a join
     b
     on a.entry_no between b.begin_entry and b.end_entry
© www.soinside.com 2019 - 2024. All rights reserved.