J'ai besoin d'aide pour une requête.trouver la dernière ligne consécutive
Je possède ce tableau simple:
CREATE TABLE `consecutiv` (
`id` int(11) NOT NULL auto_increment,
`readVal` int(11) default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=16 DEFAULT CHARSET=latin1;
insert into `consecutiv`(`id`,`readVal`) values (1,2),(2,2),(3,2),(5,3),(6,3),(7,3),(8,3),(9,4),(10,5),(11,6),(12,6),(13,2),(14,2),(15,6);
ressemble à ceci:
id readVal
1 2
2 2
3 2
5 3
6 3
7 3
8 3
9 4
10 5
11 6
12 6
13 2
14 2
15 6
Je veux obtenir un readVal donné la dernière ligne consécutive:
Dans l'exemple ci-dessus serait:
id: 3 pour readVal = 2
id: 8 pour readVal = 3
...
J'ai essayé avec cette requête:
SELECT consecutiv.id, consecutiv.readVal, c.id, c.readVal FROM consecutiv
JOIN consecutiv c ON consecutiv.id = c.id-1
WHERE consecutiv.readVal!=c.readVal ORDER BY consecutiv.id ASC
Et ça marche aussi longtemps que il n'y a pas ids manquantes dans la série. Dans l'exemple ci-dessus, l'identifiant n ° 4 est manquant et la requête ne renverra pas le résultat attendu.
Merci!
Vous dites que vous attendez 'id: 3 pour readVal = 2' sûrement la dernière consécutive pour ceci est 13/14? –