商品(item)
id | name | cost |
---|---|---|
1 | りんご | 100 |
2 | みかん | 70 |
3 | バナナ | 200 |
4 | メロン | 1000 |
仕入れ(purchase)
id | item_id | count |
---|---|---|
1 | 1 | 10 |
2 | 4 | 1 |
3 | 2 | 6 |
4 | 1 | 5 |
5 | 3 | 8 |
売上(sales)
id | item_id | count |
---|---|---|
1 | 2 | 3 |
2 | 1 | 4 |
3 | 1 | 6 |
4 | 3 | 6 |
というデータベースがあるとして
仕入れた商品から売上で減った分の現在の在庫の合計価格を求めたいのですが
これをサブクエリなしでTEMPORARY TABLEを使って書く方法が知りたいです。
自分で考えて書いたところこんな感じになってしまったのですが
もっとスマートな書き方があるのではないかと思い質問させていただきました。
SQL
create temporary table tmp1( select purchase.item_id, sum(purchase.count) * item.cost costs from purchase, item where item.id = purchase.item_id group by purchase.item_id ); create temporary table tmp2( select sales.item_id, sum(sales.count) * item.cost costs from sales , item where item.id = sales.item_id group by sales.item_id ); select sum(tmp1.costs) - sum(tmp2.costs) from tmp1 left join tmp2 on tmp1.item_id = tmp2.item_id;
まだ回答がついていません
会員登録して回答してみよう