商品(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
1create temporary table tmp1( 2 select purchase.item_id, sum(purchase.count) * item.cost costs 3 from purchase, item 4 where item.id = purchase.item_id 5 group by purchase.item_id 6); 7 8create temporary table tmp2( 9 select sales.item_id, sum(sales.count) * item.cost costs 10 from sales 11, item 12 where item.id = sales.item_id 13 group by sales.item_id 14); 15 16select sum(tmp1.costs) - sum(tmp2.costs) 17 from tmp1 18 left join tmp2 19 on tmp1.item_id = tmp2.item_id; 20

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/01/27 13:56
2019/01/27 14:30 編集
2019/01/27 23:22