Ramener la derniere etape des commandes
Bonjour,
J'ai quelques difficultés à faire une requête SQL qui parrait pourtant facile.
J'ai 2 tables "etape" et "commande_has_etape".
Commande_has_etape (#id_commande, #id_etape, date)
Etape (id_etape, typedetape)
Mon objectif est de ramener pour chaque commande le typedetape dont l'id_etape est le plus grand.
Exemple avec des jeux d'essais:
Lignes de la table:
Code:
1 2 3 4 5 6
|
id_commande id_etape typedetape
1 1 envoi
1 2 reception
1 3 validation
2 2 reception |
Résultat voulu:
Code:
1 2 3 4
|
id_commande id_etape typedetape
1 3 validation
2 2 reception |
Résultat actuel...
Code:
1 2 3 4
|
id_commande id_etape typedetape
1 3 envoi
2 2 reception |
...avec cette requete:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
SELECT
COMMANDE_HAS_ETAPE.id_commande,
MAX(COMMANDE_HAS_ETAPE.id_etape),
ETAPE.id_etape,
ETAPE.typedetape
FROM
COMMANDE_HAS_ETAPE,
ETAPE
WHERE
ETAPE.id_etape = COMMANDE_HAS_ETAPE.id_etape
GROUP BY
COMMANDE_HAS_ETAPE.id_commande |
En faite il ne fait plus le lien entre la description et le max (ce qui me parait un peu normal puisque il ne pourrait pas le faire avec une fonction autre de groupe)
Savez vous comment résoudre ce pb?
Merci d'avance.