J'ai une table dans laquelle je stocke un code, un prix et une date.
Le Code est de type varchar, le prix est de type float (oui, je sais, il est préférable de le stocker en tant que Double), la date est de type date
create table prices (
code varchar(15),
price float(5),
date date
)
donc,
insert into prices (code,price,date) values
('ADV000001','2.1','2021-02-03'),
('ADV000001','0.3','2021-11-22'),
('ADV000001','20.0','2021-11-23'),
('ADV000001','31.4','2017-01-11'),
('ADV000001','99.99','2012-12-09'),
('ADV000123','31.4','2017-04-21'),
('ADV000123','0.4','2016-12-02'),
('ADV000123','31','2012-11-06'),
('ADV000991','3','2000-01-15'),
('ADV000991','1.4','2004-01-13'),
('ADV000991','0.9','2011-01-30'),
('ADV000991','12','2017-01-23'),
('ADV000991','854.82','2004-04-30'),
('ADV000991','231.11','2009-04-15'),
('ADV000991','242.66','2021-04-09'),
('ADV000912','111.1','2021-01-11'),
('ADV000912','1.4','2020-01-11'),
('ADV031242','75.48','2019-03-11'),
('ADV031242','231.42','2019-07-11'),
('ADV011912','1324.11','1994-11-11'),
('ADV000112','685.04','1993-06-11'),
('ADV000777','757.54','2001-06-11'),
('ADV000777','221.74','2002-09-11'),
('ADV000777','1352.12','2012-04-11'),
('ADV000215','856.81','2011-12-11'),
('ADV000202','511.99','2011-11-11')
J'ai essayer de faire cette sélection, mais il ne fonctionne pas très bien, il apporte la bonne date, cependant il m'apporte tout prix, pas la bonne!!!!
SELECT
code, price, date
FROM
prices
WHERE
date = (SELECT MAX(date) FROM prices)
le résultat:
code price date
ADV000001 0.3 2021-11-23
Idéalement, il devrait afficher chaque code avec son prix et la date la plus récente.
code price date
ADV000001 20 2021-11-23
ADV000123 31.4 2017-04-21
ADV000991 242.66 2021-04-09
... ... ...
Des idées? peut-être un sous-consulter? un groupe par phrase, pas de travail!
MYSQL MAX() la fonction ne semble pas fonctionner, il n'a pas de groupe par les codes et n'apporte-moi un seul enregistrement. Voici le lien où vous pouvez poser vos questions, je vous en serais reconnaissant. dbfiddle.royaume-uni