获取按另一列分组的列的总和,然后将其分组到另一列

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)

正如你所看到的那样,我试图获得每一面价格的总和,然后按下.

aF.*_*aF. 6

用于GROUP BYUnder列分组并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)