1

特定の顧客の開始週と終了週があり、購読している週のパネル データを作成する必要があります。データを変換しやすい形式に操作しましたが、転置すると、開始と終了の間の週が入力されません。例が私の要求に光を当てることを願っています. 週は 0 で始まり 61 で終わるため、単純化のために 61 を超える週は強制的に 61 になります。まだ購読している場合は 1 を入力し、そうでない場合は空白を入力します。

ID  Start_week   End_week

1       6           61
2       0           46
3       45          61

私が欲しいもの

ID   week0  week1  ... week6 ... week45 week46  week47 ... week61
1      .      .    ...   1   ...    1      1       1   ...    1 
2      1      1    ...   1   ...    1      1       0   ...    0
3      0      0    ...   0   ...    1      1       1   ...    1 
4

3 に答える 3

0

実用的な構文はありませんが、ガイドラインがあります。

最初に CTE を使用してテーブルを作成するか、0 から 61 までの数字を行として物理的に作成します。次に、このテーブルをサブスクライブしたテーブルと結合します。何かのようなもの

FROM sub
INNER JOIN CTE 
ON CTE.week BETWEEN sub.Start_week AND sub.End_week

これで、顧客が購読している毎週の行が表示されます。それを転置すると、週の間も埋められます。

于 2013-09-25T13:17:02.203 に答える