Bonjour
J'utilise MySQL 4.1.12
J'ai une table avec des documents avec 1 id et 1 numero d'edition.
1 document (id) peut avoir plusieurs editions (ed).
l'example est tres simplifie mais il suffit pour expliquer mon pb.
Avec cette req je "matche" tous les documents qui correspondent a un certains id
SELECT id, ed, max(ed)FROM doc WHERE
(status = 'VALIDATED') AND ( doc.id LIKE '00%1%')
GROUP BY id,ed
===============================================================
ID ed max(ed)
0016 1 1 #a
0018 1 1
0018 2 2 #c
0019 1 1
0019 2 2 #d
Pour certaines doc j'ai toutes les editions (1 et 2 pour les docs 18 et 19)
Ce que je veux : ne garder que les documents avec l'edition la plus elevee
(donc a c et d)
J'ai essaye en supprimant ed ds le GROUP BY
Ca ne marche pas : il reste effecivement une ligne par documentation
mais pas systematiquement l'edition la plus elevee
J'ai ensuite chercher sur le web et tenter bcp de choses sans succes
(utilisation du max ds le GROUP BY => erreur de syntaxe)
(Plusieurs SELECT)
(table temporaire)
(clause HAVING)
J'en suis a envisager 2 requetes ds 1 script PHP
Si quelqu 'un a une solution SQL qui marche avec cette version de MYSQL ...ca me depannerait bien !
Cordialement
Antoine
Partager