用于brooker的Sql存储过程计数权益营业额
我在计算布鲁克斯的成交量,总买入金额,总卖出金额。 问题是,当买方同时也是卖方时,布鲁克在买方和卖方各有一次股票交易。因此,如果布鲁克向自己出售150只股票,该交易的成交额应该是300 表:用于brooker的Sql存储过程计数权益营业额,sql,sql-server,stored-procedures,Sql,Sql Server,Stored Procedures,我在计算布鲁克斯的成交量,总买入金额,总卖出金额。 问题是,当买方同时也是卖方时,布鲁克在买方和卖方各有一次股票交易。因此,如果布鲁克向自己出售150只股票,该交易的成交额应该是300 表: | InstrumentId | Price | Qty | Buyer | Seller | Date ----------------------------------------------------- | 265 | 22 | 100 | A | B
| InstrumentId | Price | Qty | Buyer | Seller | Date
-----------------------------------------------------
| 265 | 22 | 100 | A | B | ----
-------------------------------------------------------
| 265 | 23 | 150 | A | A | ----
-------------------------------------------------------
| 265 | 21 | 75 | C | A | ----
----------------------------------------------------
Expected result: turnover 475.
Buy total: 250.
Sell total: 225.
一种方法是:
select broker, sum(qty)
from ((select buyer as broker, qty from sales) union all
(select seller, qty from sales)
) b
group by broker;