希望是一个直截了当的问题(但我怀疑答案很困难)。我有 2 个日期范围涵盖相同“整体”范围的表,但 TABLE_A 的范围最初细分得更多,而 TABLE_B 稍后将其细分:
CREATE TABLE #TABLE_A (
START_DT datetime,
END_DT datetime)
INSERT INTO #TABLE_A VALUES ('4/1/1993', '4/29/1993');
INSERT INTO #TABLE_A VALUES ('4/29/1993', '5/12/1993');
INSERT INTO #TABLE_A VALUES ('5/13/1993', '5/26/1993');
INSERT INTO #TABLE_A VALUES ('5/27/1993', '8/18/1993');
INSERT INTO #TABLE_A VALUES ('2/10/1994', '2/23/1994');
INSERT INTO #TABLE_A VALUES ('2/25/1994', '3/9/1994');
INSERT INTO #TABLE_A VALUES ('3/10/1994', '5/5/1994');
CREATE TABLE #TABLE_B (
START_DT datetime,
END_DT datetime)
INSERT INTO #TABLE_B VALUES ('4/1/1993', '5/12/1993');
INSERT INTO #TABLE_B VALUES ('5/13/1993', '8/18/1993');
INSERT INTO #TABLE_B VALUES ('2/10/1994', '2/22/1994');
INSERT INTO #TABLE_B VALUES ('2/24/1994', '3/23/1994');
INSERT INTO #TABLE_B VALUES ('3/24/1994', '4/20/1994');
INSERT INTO #TABLE_B VALUES ('4/21/1994', '5/5/1994');
我想要的是一个结合了这些范围的 TABLE_C:
START DT END DT
4/1/1993 4/29/1993 FROM TABLE A
4/29/1993 5/12/1993 FROM TABLE A
5/13/1993 5/26/1993 FROM TABLE A
5/27/1993 8/18/1993 FROM TABLE A
2/10/1994 2/22/1994 FROM TABLE A or TABLE B
2/23/1994 3/9/1994 FROM TABLE A
3/10/1994 3/23/1994 START DT FROM TABLE A, END DT FROM TABLE B
3/24/1994 4/20/1994 FROM TABLE B
4/21/1994 5/5/1994 FROM TABLE B
我愿意接受有关如何创建 TABLE_C 的任何建议。我曾尝试使用 MERGE、SSIS、游标等,但一直陷入困境或认为必须有更简单的方法。关于如何解决这个问题的任何建议?我查看了“类似问题”,但似乎找不到我的特定问题。如果这基本上已经被问到,我很抱歉。
谢谢