Bonjour,
Je suis confronté à un obstacle que je pensais pouvoir résoudre.
J'ai 2 tables à joindre:
devis_voyages et devis_itineraire_version

Dans 'devis_voyages', j'ai plusieurs voyages et dans 'devis_itineraire_version' j'ai différentes versions de ces voyages.

Je veux lister par conseiller et noté envoyé

La colonne commune est code_circuit

Avec le code ci-dessous, ca fonctionne bien

Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
SELECT devis_itineraires_versions.code_circuit, devis_itineraires_versions.date, devis_itineraires_versions.date_envoi, devis_itineraires_versions.version, devis_voyages.code_circuit, devis_voyages.code_client, devis_voyages.nom_conseiller
FROM devis_itineraires_versions
INNER JOIN devis_voyages 
ON devis_itineraires_versions.code_circuit = devis_voyages.code_circuit 
 WHERE nom_conseiller ='$prenom' AND date_envoi IS NOT NULL 
  ORDER BY date DESC

Mais dans ma liste j'ai toutes les versions de chaque programme. Je ne veux seulement que les dernières versions de chaque programme.
Je rajoute alors une condition dans where pour ne retenir que les dernières versions avec MAX ()

Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
SELECT devis_itineraires_versions.code_circuit, devis_itineraires_versions.date, devis_itineraires_versions.date_envoi, devis_itineraires_versions.version, devis_voyages.code_circuit, devis_voyages.code_client, devis_voyages.nom_conseiller
FROM devis_itineraires_versions
INNER JOIN devis_voyages 
ON devis_itineraires_versions.code_circuit = devis_voyages.code_circuit 
 WHERE nom_conseiller ='$prenom' AND date_envoi IS NOT NULL  AND version = (SELECT MAX(version) FROM devis_itineraires_versions a WHERE a.code_circuit = devis_voyages.code_circuit)
  ORDER BY date DESC

Mais je n'ai pas le résultat voulu. Je n'ai pas les dernières versions et il manque aussi des versions.

Merci pour votre aide.