Mysql 拾取某列的下一个值,其中某个特定值的最后一次出现在SQL中的另一列中
我需要有最后的购买日期后,最近的全部售罄的数量状态 在上述情况下,它在19年9月13日售出两次,第二次在19年9月29日售出,作为输出,我需要将其值设置为19年9月26日,因为这是最近售出状态之前的最新购买 预期结果:Mysql 拾取某列的下一个值,其中某个特定值的最后一次出现在SQL中的另一列中,mysql,sql,oracle,Mysql,Sql,Oracle,我需要有最后的购买日期后,最近的全部售罄的数量状态 在上述情况下,它在19年9月13日售出两次,第二次在19年9月29日售出,作为输出,我需要将其值设置为19年9月26日,因为这是最近售出状态之前的最新购买 预期结果: date buys/ quantity Rolling Sum sell 08-AUG-19 BUY 100 - 13-SEP-19 SELL -100 0 26-SEP-19 B
date buys/ quantity Rolling Sum
sell
08-AUG-19 BUY 100 -
13-SEP-19 SELL -100 0
26-SEP-19 BUY 200 200
28-SEP-19 SELL -50 150
29-SEP-19 SELL -150 0
在最近的售罄状态之前获取最新购买信息
这里有一个选择:
26-sep-19
这与您的示例数据一起返回:
select max(date)
from mytable t
where
buy_sell = 'BUY'
and date < (
select max(date)
from mytable
where rolling_sum = 0 and buy_sell = 'SELL'
)
注:这假设
1您正在将日期存储为类似日期的数据类型,而不是字符串
2滚动求和是表中的实际列指定预期结果集。c/c是从哪里来的?您使用的是MySQL还是Oracle?请参阅19年9月26日的输出我也假设了这一点,但我怀疑滚动求和不是OP表中的实际列table@Pepper:啊,你也许是对的。我在答复中提到了这一点。 | max(date) | | :--------- | | 2019-09-26 |