teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

追記

2019/02/22 12:48

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -3,4 +3,30 @@
3
3
 
4
4
  [第34回 再帰クエリ(SQLServer)](https://scipio-afi.at.webry.info/201312/article_1.html)
5
5
  [[SQLServer]階層構造のデータを再帰クエリでフラットにするSQL](https://zero-config.com/windows/sqlserver_recursive.html)
6
- [【SQLServer】超シンプル!再帰CTE(共通テーブル式)で連続データを作成する。](http://plus-sys.jugem.jp/?eid=402)
6
+ [【SQLServer】超シンプル!再帰CTE(共通テーブル式)で連続データを作成する。](http://plus-sys.jugem.jp/?eid=402)
7
+
8
+ 追記
9
+ --
10
+ 求める結果は階層としてみなくても大丈夫ですね。
11
+ ```DATA
12
+ create table 案件一覧(id varchar(2), 親id varchar(2), No int, 状態 varchar(4));
13
+ insert into 案件一覧 values
14
+ ('A1' , 'A1' , 0 ,'完了')
15
+ ,('A2' , 'A1' , 1 ,'完了')
16
+ ,('B1' , 'B1' , 0 ,'完了')
17
+ ,('A3' , 'A1' , 2 ,'進行')
18
+ ,('B2' , 'B1' , 1 ,'進行')
19
+ ,('C1' , 'C1' , 1 ,'完了')
20
+ ,('C2' , 'C1' , 2 ,'進行')
21
+ ,('D1' , 'D1' , 0 ,'進行')
22
+ ,('E1' , 'E1' , 2 ,'進行')
23
+ ```
24
+ ```SQL
25
+ create view 状態確認 as
26
+ select 親ID
27
+ , (select 状態 from 案件一覧 where 親ID=t.親ID and No=0) as 状態0
28
+ , (select 状態 from 案件一覧 where 親ID=t.親ID and No=1) as 状態1
29
+ , (select 状態 from 案件一覧 where 親ID=t.親ID and No=2) as 状態2
30
+ from 案件一覧 t
31
+ where ID=親ID
32
+ ```