Ciao a tutti. Lo so che l'argomento è stato trattato diverse volte però io ho un "piccolo" problema.
Tabella maggiori
Questa la query che eseguocodice:id_prog id datas 1 1 2006-01-01 3 1 2005-10-10 5 1 2005-12-12 2 2 2006-02-03 4 2 2006-01-01 6 2 2006-10-10
SELECT *
FROM
(select max(datas) as datas from maggiori
group by id) as tab1
left join maggiori as tab2 ON tab1.datas = tab2.datas
La data maggiore per id 1 è 2006-01-01
La data maggiore per id 2 è 2006-10-10
Al che mi aspetterei di avere come risultato della query i record con id _prog 1 e 6.
Invece ottengo 3 record, i due precedenti più quello con id_prog 4 appartenente al gruppo (id) 2 perchè la data 2006-01-01, pur non essendo la maggiore del gruppo 2, coincide con la maggiore dell'altro gruppo.
Ovviamente se modifico la data a 2006-01-02 ad esempio, allora il risultato della query è giusto. Come risolvo?
Questo è il dump nel caso qualcuno avesse la pazienza di provarlo.
CREATE TABLE `maggiori` (
`id_prog` tinyint(4) NOT NULL auto_increment,
`id` tinyint(4) default NULL,
`datas` date default NULL,
PRIMARY KEY (`id_prog`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
/*Data for the table `maggiori` */
insert into `maggiori` (`id_prog`,`id`,`datas`)
values
(1,1,'2006-01-01'),
(2,2,'2006-02-03'),
(3,1,'2005-10-10'),
(4,2,'2006-01-01'),
(5,1,'2005-12-12'),
(6,2,'2006-10-10');
Grazie.![]()