par
Ryle » 22 mars 2007, 00:16
Dans le group by il faut mettre
tous les éléments du select auxquels aucune fonction de groupe n'a été appliquée :
S'il n'y a que le champ code dans les [...], tu auras effectivement chaque code regroupé (comme un distinct), associé a sa version max. Le problème c'est que si tu ajoutes le champ detail, comme il semble en avoir besoin, il te faut grouper par code et detail. Et comme la majorité des couples code/détail seront différents, il se retrouvera avec tous les enregistrements
En y réflechissant, mysql permet peut être de ne pas mettre tous les champs dans le group by, mais ce serait vraiment spécifique à cette base, et j'ai pas la moindre idée du résultat que cela pourrait produire

Dans le group by il faut mettre [u]tous[/u] les éléments du select auxquels aucune fonction de groupe n'a été appliquée :
[code]SELECT MAX(version), [...] FROM table GROUP BY [...][/code]
S'il n'y a que le champ code dans les [...], tu auras effectivement chaque code regroupé (comme un distinct), associé a sa version max. Le problème c'est que si tu ajoutes le champ detail, comme il semble en avoir besoin, il te faut grouper par code et detail. Et comme la majorité des couples code/détail seront différents, il se retrouvera avec tous les enregistrements
En y réflechissant, mysql permet peut être de ne pas mettre tous les champs dans le group by, mais ce serait vraiment spécifique à cette base, et j'ai pas la moindre idée du résultat que cela pourrait produire :)