質問: sqlがわかりません。その2 vb2010とsql server2008 r2 でwindowsアプリを作っている新米です。 下のような表(datadridview)で表示したいと考えています。(本当は月曜から金曜までの 5日間ですが、便宜上4日間で表現しました。) 品名id 月曜 入荷 出荷 火曜 入荷 出荷 水曜 入荷 出荷 木曜 入荷 出荷 aaaaaa 6/12 2000 1500 6/13 1000 1000 6/14 1300 2000 6/15 3300 2000 bbbbbb 6/12 1000 2500 6/13 3000 4500 6/14 4200 3000 6/15 2000 1000 cccccc 6/12 1000 1500 6/13 1000 3400 6/14 1700 2600 6/15 3500 1000 dddddd 6/12 1500 1800 6/13 2200 1000 6/14 3300 1000 6/15 4100 2200 ・ ・ テーブル(table_meisai)はこのように構成されています。 meisai_id hinmei_id date in_suryo out_suryo したがって select hinmei_id,date,in_suryo,out_suryo from table_meisai where date between 6/12 and 6/16 とすると、当然のことながら aaaaaa 6/12 2000 1500 aaaaaa 6/13 1000 1000 aaaaaa 6/14 1300 2000 aaaaaa 6/15 3300 2000 aaaaaa 6/16 3200 3500 bbbbbb 6/12 1000 2500 bbbbbb 6/13 3000 4500 ・ ・ と出てきてしまうわけです。 で、これを上記のような「hinmei_id」単位で1行にした「表」にしたいと考えているのですが、 そのsqlがわからないという状況です。 sqlの組立て方法を教えて下さい。 よろしくお願いします。
回答: 出力形式に問題があると思われますが、 下記内容で表示は可能と思います。(未確認) select hinmei_id, '6/12' as 月曜, sum(case when date = '2011/06/12 00:00:00' then in_suryo else 0 end) as 入荷, sum(case when date = '2011/06/12 00:00:00' then out_suryo else 0 end) as 出荷, '6/13' as 火曜, sum(case when date = '2011/06/12 00:00:00' then in_suryo else 0 end) as 入荷, sum(case when date = '2011/06/12 00:00:00' then out_suryo else 0 end) as 出荷 from table group by hinmei_id 日付に関してはsql文を発行するときに動的に変更する必要があります。