回答編集履歴

1

追記

2019/02/22 12:48

投稿

sazi
sazi

スコア25195

test CHANGED
@@ -9,3 +9,55 @@
9
9
  [[SQLServer]階層構造のデータを再帰クエリでフラットにするSQL](https://zero-config.com/windows/sqlserver_recursive.html)
10
10
 
11
11
  [【SQLServer】超シンプル!再帰CTE(共通テーブル式)で連続データを作成する。](http://plus-sys.jugem.jp/?eid=402)
12
+
13
+
14
+
15
+ 追記
16
+
17
+ --
18
+
19
+ 求める結果は階層としてみなくても大丈夫ですね。
20
+
21
+ ```DATA
22
+
23
+ create table 案件一覧(id varchar(2), 親id varchar(2), No int, 状態 varchar(4));
24
+
25
+ insert into 案件一覧 values
26
+
27
+ ('A1' , 'A1' , 0 ,'完了')
28
+
29
+ ,('A2' , 'A1' , 1 ,'完了')
30
+
31
+ ,('B1' , 'B1' , 0 ,'完了')
32
+
33
+ ,('A3' , 'A1' , 2 ,'進行')
34
+
35
+ ,('B2' , 'B1' , 1 ,'進行')
36
+
37
+ ,('C1' , 'C1' , 1 ,'完了')
38
+
39
+ ,('C2' , 'C1' , 2 ,'進行')
40
+
41
+ ,('D1' , 'D1' , 0 ,'進行')
42
+
43
+ ,('E1' , 'E1' , 2 ,'進行')
44
+
45
+ ```
46
+
47
+ ```SQL
48
+
49
+ create view 状態確認 as
50
+
51
+ select 親ID
52
+
53
+ , (select 状態 from 案件一覧 where 親ID=t.親ID and No=0) as 状態0
54
+
55
+ , (select 状態 from 案件一覧 where 親ID=t.親ID and No=1) as 状態1
56
+
57
+ , (select 状態 from 案件一覧 where 親ID=t.親ID and No=2) as 状態2
58
+
59
+ from 案件一覧 t
60
+
61
+ where ID=親ID
62
+
63
+ ```