前提条件
select x1,x2 from XYZ
------------- x1 x2 ------------- X100 XYZ100 X200 XYZ200 X300 XYZ300
select a1,a2,,x1 from ABC (10万件ぐらいある)
------------------------------------------ a1 a2 x1 ------------------------------------------ A001 AAA X100 A002 BBB X100 A003 CCC X200 A004 DDD X200 A005 EEE X100 A006 FFF X200 A007 GGG X100
実現したいこと
XYZテーブルを複数件取得した結果を
ABCテーブルに横持ちにしたいです。
------------------------------------------ a1 a2 (X100がある場合1、ない場合は0) (X200がある場合1、ない場合は0) (X300がある場合1、ない場合は0) ------------------------------------------ A001 AAA 1 0 0 A002 BBB 1 0 0 A003 CCC 0 1 0 A004 DDD 0 1 0 A005 EEE 1 0 0 A006 FFF 0 1 0 A007 GGG 1 0 0
ただしXYZテーブルは3件ではなく10件の場合もあります(可変)
その場合は10件を横持ちにしたいです。
そのようなときはどのようにすればいいでしょうか。
XYZテーブルが固定の件数ならば、↓のサイトのように出来ることはわかりましたが。
https://dev.classmethod.jp/etc/sql-data-horizontal-vertical/
さらに、列名をXYZテーブルのx2の値にしたい場合はどうすればよろしいでしょうか。
もし、viewで難しいならストアドでも構いませんが
そもそも、このようなことが出来るのでしょうか。
------------------------------------------ a1 a2 XYZ100 XYZ200 XYZ300 ------------------------------------------ A001 AAA 1 0 0 A002 BBB 1 0 0 A003 CCC 0 1 0 A004 DDD 0 1 0 A005 EEE 1 0 0 A006 FFF 0 1 0 A007 GGG 1 0 0
回答2件
あなたの回答
tips
プレビュー