CTEを使用して難しい再帰であると私が信じていることを実行しようとしています。SQLServer2008です。これに頭を悩ませているようには見えません。
以下の例では、3の固定深度を想定できます...それよりも低くなることはありません。実生活では、深さは「より深い」ですが、それでも固定されています。例では、それをいくつか単純化しようとしました。
私の入力データは以下のようなものです。
ID PARENT_ID NAME DEPTH
------------------------------------------
1 NULL A 1
2 1 B 2
3 2 C 3
4 1 D 2
私のCTEの出力は次の表になります。
LEVEL1_ID LEVEL2_ID LEVEL3_ID LEVEL1_NAME LEVEL2_NAME LEVEL3_NAME
--------------------------------------------------------------------------------
1 NULL NULL A NULL NULL
1 2 NULL A B NULL
1 2 3 A B C
1 4 NULL A D NULL
出力でID列を取得できれば、ルックアップテーブルの名前に確実にマップできます。
私は、SSISの使用を含め、これを達成する他の方法にもオープンです。