在MySQL中根据独立条件选择记录



请在下面的示例数据库中找到:

CREATE TABLE ipay
(Ticket int(11) Primary Key,Login int(11), Profit double, opentime datetime);
INSERT INTO ipay
(Ticket,Login,Profit,opentime)
VALUES
(1,100,100,'2020-01-01 00:00:00'),
(2,100,100,'2020-02-01 00:00:00'),
(3,100,-200,'2019-01-01 00:00:00'),
(4,100,-50,'2020-01-02 00:00:00'),
(5,101,200,'2020-02-02 00:00:00'),
(6,101,200,'2020-03-02 00:00:00'),
(7,101,-10,'2020-04-02 00:00:00'),
(8,101,-200,'2020-05-02 00:00:00')

当利润>0,您可以将该记录视为存款;当利润<0,您可以将该记录视为提款。

我需要获得第一次存款后发生的所有提款,每次登录。因此,预期输出将是:

利润-50//tr>-10-200
票证登录开放时间
41002020-01-02 00:00:00
71012020-04-02 00:00:00
81012020-05-02 00:00:00

请尝试此

select * from ipay as a left join 
(select login,min(opentime) as firsttime 
from ipay  where profit>0 
group by login 
order by opentime) as b 
on a.login=b.login 
where a.opentime>firsttime and profit<0

请参阅此处的操作:sqlfiddle

最新更新