SQL - Select from a table from other query
SELECT
sell_table.stock_name,(sell_table.total_sell - buy_table.total_buy) AS capital_gain_loss
FROM
(SELECT SUM(price)as total_sell,stock_name
FROM Stocks
WHERE operation = 'Sell'
GROUP BY stock_name) sell_table ,
(SELECT SUM(price)as total_buy ,stock_name
FROM Stocks
WHERE operation = 'Buy'
GROUP BY stock_name) buy_table
WHERE sell_table.stock_name = buy_table.stock_name
GROUP BY stock_name;
Input: Stocks table: +---------------+-----------+---------------+--------+ | stock_name | operation | operation_day | price | +---------------+-----------+---------------+--------+ | Leetcode | Buy | 1 | 1000 | | Corona Masks | Buy | 2 | 10 | | Leetcode | Sell | 5 | 9000 | | Handbags | Buy | 17 | 30000 | | Corona Masks | Sell | 3 | 1010 | | Corona Masks | Buy | 4 | 1000 | | Corona Masks | Sell | 5 | 500 | | Corona Masks | Buy | 6 | 1000 | | Handbags | Sell | 29 | 7000 | | Corona Masks | Sell | 10 | 10000 | +---------------+-----------+---------------+--------+ Output: +---------------+-------------------+ | stock_name | capital_gain_loss | +---------------+-------------------+ | Corona Masks | 9500 | | Leetcode | 8000 | | Handbags | -23000 |
+---------------+-------------------+
留言
發佈留言