У меня есть таблица mysql, подобная этой:
CREATE TABLE prelevement (
line int,
facture varchar(30),
date_op varchar(30),
code_op varchar(30)
);
insert into prelevement
(line,facture,date_op,code_op)
values
(1,'F1','2019-02-20','PREL'),
(2,'F1','2019-02-20','CART'),
(3,'F1','2019-02-20','REJE'),
(8,'F1','2019-02-19','PREL'),
(2,'F2','2019-02-15','PREL'),
(1,'F2','2017-01-25','PREL'),
(1,'F3','2018-02-25','REJ'),
(2,'F3','2018-02-25','CART');
Для каждой фактуры я пытаюсь выбрать строку с самой большой «строкой» из последнего «date_op».Итак, из этого:
| line | facture | date_op | code_op |
| ---- | ------- | ---------- | ------- |
| 1 | F1 | 2019-02-20 | PREL |
| 2 | F1 | 2019-02-20 | CART |
| 3 | F1 | 2019-02-20 | REJE |
| 8 | F1 | 2019-02-19 | PREL |
| 2 | F2 | 2019-02-15 | PREL |
| 1 | F2 | 2017-01-25 | PREL |
| 1 | F3 | 2018-02-25 | REJ |
| 2 | F3 | 2018-02-25 | CART |
Я пытаюсь получить такой результат:
| line | facture | date_op | code_op |
| ---- | ------- | ---------- | ------- |
| 3 | F1 | 2019-02-20 | REJE |
| 2 | F2 | 2019-02-15 | PREL |
| 2 | F3 | 2018-02-25 | CART |
Я пришел к этому, но я не уверен, куда идти дальше:
select p.*
from prelevement p inner join(
select facture, max(date_op) as 'date'
from prelevement
group by facture) p1 on p.facture=p1.facture and p.date_op=p1.date;