【发布时间】:2012-08-31 18:45:53
【问题描述】:
考虑下表 (portfolio)。它是股票市场投资者的交易日志。每天,他要么buys,要么sells要么holds(以前买的股票还没有卖)股票(标识为sp100_id):
_date sp100_id action price
-----------------------------------
2011-03-21 11 buy 10.50
2011-03-21 55 buy 60.00
2011-03-21 99 buy 5.15
2011-03-22 11 sell 9.80
2011-03-22 55 sell 61.50
2011-03-22 99 hold 5.60
2011-03-23 1 buy 95.00
2011-03-23 2 buy 25.60
2011-03-23 99 hold
2011-03-24 1 sell 96.00
2011-03-24 2 hold
2011-03-24 99 hold
2011-03-25 11 buy 8.90
2011-03-25 2 sell 28.00
2011-03-25 99 hold
日志停在2011-03-25。对于2011-03-26,我想知道:
- 投资组合中还剩下哪些股票
- 最初购买这些股票的价格和日期
如果我们手动执行此操作:
- 股票11 在2011-03-21 上购买,在2011-03-22 上出售,但在2011-3-25 上以8.90 再次购买,从那以后我们没有出售它,所以它仍然在2011-03-26 的投资组合中
- 股票55 在2011-03-21 上购买并在2011-03-22 上出售,因此不再在投资组合中
- 股票99 是在2011-03-21 上购买的,我们持有它并且从未出售过,所以它仍然在2011-03-26 的投资组合中,价格为5.15
- 股票1 和2 均在2011-03-26 之前买卖
所以2011-03-26 的投资组合包括:
sp100_id buy_date buy_price
-------------------------------
11 2011-03-25 8.90
99 2011-03-21 5.15
我的问题是:通过什么查询可以从表中返回上述输出?
【问题讨论】: