質問: 店テーブル 店コード 店名 1 A店 2 B店 売上テーブル 年度 店コード C商品売上高 C商品回収高 D商品売上高 D商品回収高 2015 1 5000 9000 5000 80000 2015 2 8000 12000 1000 30000 2016 1 7000 11000 6000 10000 2016 2 7000 13000 5000 10000 上記のテーブルを結合した場合の結果が、 商品 店コード 2015年度売上 2015年度回収 2016年度売上 2016年度回収 C商品 1 5000 9000 7000 11000 D商品 1 5000 8000 6000 10000 上記のように、一つの店に絞っての摘出を考えております。 商品名の行固定の名前の付け方や、列管理していたデータを行で表示する方法がわかりません。 ご教示の程、よろしくお願い致します。
回答: こうですかね? * 元データ ``` create table uriage(y int,shop int,c1 int,c2 int,d1 int,d2 int); insert into uriage values (2015,1,5000,9000,5000,80000), (2015,2,8000,12000,1000,30000), (2016,1,7000,11000,6000,10000), (2016,2,7000,13000,5000,10000); ``` * 集計 ``` select item,shop ,sum((y=2015)*uriage) as u2015 ,sum((y=2015)*kaishu) as k2015 ,sum((y=2016)*uriage) as u2016 ,sum((y=2016)*kaishu) as k2016 from ( select y,shop,'c' as item,c1 as uriage,c2 as kaishu from uriage union all select y,shop,'d',d1,d2 from uriage ) as temp where shop=1 group by item,shop; ```