【问题标题】:SQL complex calculationSQL复杂计算
【发布时间】:2018-10-11 23:49:10
【问题描述】:

在 SQL 中计算每个证券的损益

security side   quantity price
AAPL     BUY   2000     110.00
MSFT    BUY   1000      40.00
MSFT    SELL   500      38.00

结果应如下所示:

security realized_p&l
MSFT      -1000.00
AAPL

【问题讨论】:

  • 这有多复杂?
  • 我很想回答SELECT 'MSFT' security, -1000.00 realized_p&l UNION ALL SELECT 'AAPL', NULL; 之类的问题。说真的,试着描述你想要什么,而不是仅仅抛只是一个例子。示例很好,欢迎说明连同解释。没有任何解释,他们充其量是模棱两可的,如果一个人甚至可以想出一个(而不是)想法背后是什么。换句话说:没用。

标签: mysql sql conditional aggregation


【解决方案1】:

P&LRealized 是卖出价减去买入价乘以卖出数量。

select a.`security`,
case when b.side is not null
then (b.price-a.price) * b.quantity
else '' end "realized_p&l"
from tbl a
left join tbl b
on a.`security`=b.`security` and b.side='SELL'
where a.side='BUY' 

result: 
security    realized_p&l
MSFT    -1000
AAPL

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-04
    • 2012-12-31
    • 2019-03-11
    • 1970-01-01
    • 2013-11-01
    • 2013-04-30
    相关资源
    最近更新 更多