3

うまくいけば、簡単な質問です(しかし、難しい答えがあると思います)。同じ「全体」の範囲をカバーする日付範囲を持つ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、カーソルなどを使用することを検討しましたが、行き詰まってしまうか、もっと簡単な方法があるはずだと考えています。これにアプローチする方法について何か提案はありますか?「同様の質問」を調べましたが、特定の問題が解決されていないようです。これが基本的に尋ねられた場合、私の謝罪。

ありがとう

4

2 に答える 2

1

You are not going to find a simple answer. You are going to have to make a custom function or procedure which incorporates the exact logic you want. Sorry. Imagine some soft of iteration based on start_dt and length of time for each tuple.

于 2013-01-24T22:12:22.173 に答える
0

個別の START_DT、END_DT を選択 ( #TABLE_A から START_DT、END_DT を選択 #TABLE_b から START_DT、END_DT を選択 )b

必要に応じて日付形式を変更し、選択したデータをテーブルに挿入できます。マージされたデータを表示しています。

于 2013-01-25T03:08:04.787 に答える