テーブルの生データは、次のように、ID 列と 1 または 0 の「IsFolder」列で構成されます。
ID IsFolder
1 1
2 0
3 0
4 1
5 0
6 0
7 0
8 0
9 0
10 0
11 1
12 0
13 0
14 0
15 1
16 0
17 0
コードがこれを解釈する方法は、行に 'IsFolder' の 1 がある場合、それはフォルダーであり、その下のすべてのタスク (次のフォルダーに到達するまで) はそのフォルダーの子であるということです。
私がしたいのは、フォルダー以外のすべてのタスクの親フォルダーの ID を返すだけの Select ステートメントです。次のようなものです:
ID ParentFolder
2 1
3 1
5 4
6 4
7 4
8 4
9 4
10 4
12 11
13 11
14 11
16 15
17 15
私は MS SQL Server Management Studio 2005 を使用しています。これは、カーソルの使用に精通している (私はそうではありません) 人にとっては簡単な答えだと思います。他の方法は考えられませんが、他の誰かができるかもしれません。とにかく、何か間違ったことをした場合は申し訳ありませんが、これが私の最初の投稿です。