質問: sql文がわからない 在庫テーブル・入庫テーブル・出庫テーブルがあります。 指定期間内の入庫テーブル・出庫テーブルの数量と在庫テーブルを結合させたいが、どうすればいいでしょうか? 2日ほど悩みましたがどうしても分かりませんでした。 よろしくお願いします <在庫テーブル> コード 個数 aaa 10 bbb 10 ccc 10 <入庫テーブル> コード 個数 日付 aaa 1 1/1 aaa 1 1/2 bbb 1 1/2 aaa 1 1/3 aaa 1 1/4 bbb 1 1/4 ccc 1 1/5 <出庫テーブル> コード 個数 日付 bbb 2 1/2 aaa 2 1/3 bbb 2 1/4 ccc 2 1/4 aaa 2 1/5 <結果(1/2~1/3)> コード 個数 入庫 出庫 aaa 10 2 2 bbb 10 1 4 ccc 10 0 2
回答: 索引の持ち方やデータ量に対する対象の比率によっては、 結合するよりも、テーブルを統合する方が効率が良いことも あるので、色々試してみると良いかも知れません。 (サブクエリの使えるバージョンでないとダメですが・・) select コード,sum(個数),sum(入庫),sum(出庫) from ( select コード,個数,0 as 入庫,0 as 出庫 from 在庫テーブル union all select コード,0 as 個数,個数 as 入庫,0 as 出庫 from 入庫テーブル where 期間条件 union all select コード,0 as 個数,0 as 入庫,個数 as 出庫 from 出庫テーブル where 期間条件 ) group by コード