gpt4 book ai didi

mysql - 如何从数据库中读取哪些股票已买入但尚未卖出?

转载 作者:可可西里 更新时间:2023-11-01 08:06:46 25 4
gpt4 key购买 nike

考虑下表(portfolio)。它是股票市场投资者的交易日志。每天,他要么买入卖出,要么持有(之前买入但尚未卖出的股票)股票(由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,我想知道: - 投资组合中还剩下哪些股票 - 最初购买这些股票的价格和日期

如果我们手动执行此操作: - 股票 112011-03-21 买入,在 2011-03-22 卖出,但在 2011- 再次买入3-25 代表 8.90,从那以后我们就没有卖过它,所以它仍在 2011-03-26 的投资组合中 - 股票 552011-03-21 买入并在 2011-03-22 卖出所以不再在投资组合中 - 股票 99 是在 2011-03-21 买入的,我们一直持有它,从未卖出,所以它仍在 2011-03-26 的投资组合中code> 价格为 5.15 - 股票 12 均在 2011-03-26

之前买卖

因此 2011-03-26 的投资组合包括:

sp100_id  buy_date    buy_price
-------------------------------
11 2011-03-25 8.90
99 2011-03-21 5.15

我的问题是:通过什么查询可以从表中返回上述输出?

SQLFiddle here

最佳答案

select t1.sp100_id, t1._date as buy_date, t1.price
from (select * from portfolio where action='buy') t1
left join (select * from portfolio where action='sell') t2
on t1.sp100_id=t2.sp100_id
and t1._date<t2._date
where t2.sp100_id is null

关于mysql - 如何从数据库中读取哪些股票已买入但尚未卖出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12213379/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com