質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

Q&A

解決済

1回答

906閲覧

SQLServerのビューの作成について

syun_0818

総合スコア11

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

0グッド

0クリップ

投稿2019/02/22 10:11

下記のようなテーブルがあります。
Table名:案件一覧Table
|ID(キー)|親ID|No|状態|
|:--|:--:|--:|
|A1|A1|0|完了|
|A2|A1|1|完了|
|B1|B1|0|完了|
|A3|A1|2|進行|
|B2|B1|1|進行|
|C1|C1|1|完了|
|C2|C1|2|進行|
|D1|D1|0|進行|
|E1|E1|2|進行|

このテーブルを親IDを元に下記のようなビューを作りたいと考えています。
View名:状態確認View
|親ID|0|1|2|
|:--|:--:|--:|
|A1|完了|完了|進行
|B1|完了|進行|
|C1||完了|進行
|D1|進行||
|E1|||進行

先人が作ったテーブルでデータ量が多いためテーブルの変更は難しく
Viewを触ったことが無かったため初歩的なこととなりますが
お教えいただけますと幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sazi

2019/02/22 10:32

その階層の上限は3ですか?
syun_0818

2019/02/22 10:34

上限は3になります
sazi

2019/02/22 11:11

SQLserverのバージョンは何ですか?
guest

回答1

0

ベストアンサー

階層を辿ること自体は再帰を用いれば可能です。
階層の深さが固定という事なら、動的にする必要はないのでviewには出来そうですね。

第34回 再帰クエリ(SQLServer)
[SQLServer]階層構造のデータを再帰クエリでフラットにするSQL
【SQLServer】超シンプル!再帰CTE(共通テーブル式)で連続データを作成する。

追記

求める結果は階層としてみなくても大丈夫ですね。

DATA

1create table 案件一覧(id varchar(2), 親id varchar(2), No int, 状態 varchar(4)); 2insert into 案件一覧 values 3 ('A1' , 'A1' , 0 ,'完了') 4,('A2' , 'A1' , 1 ,'完了') 5,('B1' , 'B1' , 0 ,'完了') 6,('A3' , 'A1' , 2 ,'進行') 7,('B2' , 'B1' , 1 ,'進行') 8,('C1' , 'C1' , 1 ,'完了') 9,('C2' , 'C1' , 2 ,'進行') 10,('D1' , 'D1' , 0 ,'進行') 11,('E1' , 'E1' , 2 ,'進行')

SQL

1create view 状態確認 as 2select 親ID 3 , (select 状態 from 案件一覧 where 親ID=t.親ID and No=0) as 状態0 4 , (select 状態 from 案件一覧 where 親ID=t.親ID and No=1) as 状態1 5 , (select 状態 from 案件一覧 where 親ID=t.親ID and No=2) as 状態2 6from 案件一覧 t 7where ID=親ID

投稿2019/02/22 10:42

編集2019/02/22 12:48
sazi

総合スコア25173

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

syun_0818

2019/02/26 10:26

表示したいビューになりました!ありがとうございます!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問