Am un tabel in care am stoca un cod, un pret si o data.
Codul este de tip varchar, pretul este de tip float (da, știu că este mai bine să depozitați-l ca Dublu), data este data de tipul de
create table prices (
code varchar(15),
price float(5),
date date
)
deci,
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')
Încerc să fac acest selectați, dar nu merge foarte bine, aduce data corectă, cu toate acestea mi-aduce orice preț, nu cel corect!!!!
SELECT
code, price, date
FROM
prices
WHERE
date = (SELECT MAX(date) FROM prices)
rezultatul:
code price date
ADV000001 0.3 2021-11-23
În mod ideal, acesta ar trebui să arate fiecare cod cu prețurile respective și data cea mai recentă.
code price date
ADV000001 20 2021-11-23
ADV000123 31.4 2017-04-21
ADV000991 242.66 2021-04-09
... ... ...
Orice idei? poate un sub-consult? un grup de condamnare să nu funcționeze!
MYSQL MAX() funcția nu pare să funcționeze, nu grup de coduri și numai ce mă aduce un record. Aici este link-ul unde puteți cere rapid la întrebările dumneavoastră, aș aprecia. dbfiddle.marea britanie