Ho una tabella in cui ho memorizzare un codice, un prezzo e una data.
Il codice è di tipo varchar, il prezzo è di tipo float (sì, lo so che è meglio conservare il Doppio), data tipo data
create table prices (
code varchar(15),
price float(5),
date date
)
così,
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')
Provo a fare questa selezione, ma non funziona molto bene, porta la data corretta, tuttavia mi porta a qualsiasi prezzo, non è quello corretto!!!!
SELECT
code, price, date
FROM
prices
WHERE
date = (SELECT MAX(date) FROM prices)
il risultato:
code price date
ADV000001 0.3 2021-11-23
Idealmente, si dovrebbe mostrare ogni codice con rispettivi prezzi e la data più recente.
code price date
ADV000001 20 2021-11-23
ADV000123 31.4 2017-04-21
ADV000991 242.66 2021-04-09
... ... ...
Tutte le idee? forse un sub-consultare? un gruppo da parte di frase che non funziona!
MYSQL funzione MAX() non sembra funzionare, non di gruppo da codici e solo mi porta un record. Ecco il link dove è possibile chiedere le vostre domande, vi sarei grato. dbfiddle.regno unito