Tengo una tabla donde guardo un código, un precio y una fecha.
El código es de tipo varchar, el precio es de tipo float (sí, sé que es mejor para guardarlo como Doble), fecha tipo de fecha
create table prices (
code varchar(15),
price float(5),
date date
)
así,
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')
Yo trate de hacer esta selección, pero no funciona muy bien, trae la fecha correcta, sin embargo me trae cualquier precio, no es el correcto!!!!
SELECT
code, price, date
FROM
prices
WHERE
date = (SELECT MAX(date) FROM prices)
el resultado:
code price date
ADV000001 0.3 2021-11-23
Idealmente, se debe mostrar cada uno de los códigos con sus respectivos precios y la fecha más reciente.
code price date
ADV000001 20 2021-11-23
ADV000123 31.4 2017-04-21
ADV000991 242.66 2021-04-09
... ... ...
Alguna idea? tal vez un sub-consultar? un grupo de oración no funciona!
El MYSQL función MAX() no parece funcionar, no grupo de códigos y sólo me lleva un registro. Aquí está el enlace donde usted puede pedir a sus consultas, le agradecería. dbfiddle.reino unido