Ste*_*hen 4 sql t-sql sql-server sql-server-2008 sql-server-2008-r2
我已经尝试了一段时间来解决这个问题,但是我缺乏更高级的SQL技能让我筋疲力尽.
Executions(TradeDate, Symbol, Side, Price, Under, Account)
TEMP DATA:
2012-06-20, AAPL 120716C00600000, BUY, 3.25, AAPL, XYZ123
2012-06-20, AAPL 120716C00600000, SELL, 3.30, AAPL, XYZ123
2012-06-20, AAPL 120716C00600000, BUY, 3.25, AAPL, XYZ123
2012-06-20, AAPL 120716C00600000, SELL, 3.30, AAPL, XYZ123
2012-06-20, GRPN 120716C00027000, BUY, 2.25, GRPN, XYZ123
2012-06-20, GRPN 120716C00027000, SELL, 2.30, GRPN, XYZ123
2012-06-20, GRPN 120716C00027000, SELL, 2.30, GRPN, XYZ123
2012-06-20, GRPN 120716C00027000, BUY, 2.25, GRPN, XYZ123
-UNDER----Side(Buy)----Side(Sell)
AAPL 6.50 6.60
GRPN 4.50 4.60
Run Code Online (Sandbox Code Playgroud)
正如你所看到的那样,我试图获得每一面价格的总和,然后按下.
用于GROUP BY按Under列分组并CASE关联SUM以获取所需的结果:
SELECT e.Under,
SUM(case when e.Side = 'BUY' them e.Price else 0 end) as 'Side(Buy)',
SUM(case when e.Side = 'SELL' them e.Price else 0 end) as 'Side(Sell)'
FROM Executions e
GROUP BY e.Under
Run Code Online (Sandbox Code Playgroud)