【发布时间】:2020-03-25 08:02:17
【问题描述】:
我有一个表 (A),其中 PK 是一个 int:
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 中的每个 [Entry No.] 找到表 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...
然后我可以在 [Table A].[Entry No.] = [Table B].[Entry.No.] 上将它加入到表 A
我的未透视代码:
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