Bonjour,
Voici une requête typique SQL que je n'arrive jamais a faire.
Je prend un exemple au hasard afin d'en discuter.
J'ai une table VOITURE(id, nom, couleur, prix)
Et j'ai une table REPARATION(id,idVoiture, dateReparation, raisonReparation, prixReparation)
Je souhaite afficher pour chaque voiture la réparation la plus ancienne avec la dateReparation, la raisonReparation.
Si je fais:
j'ai bien pour chaque voiture la date de reparation la plus ancienne.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT voiture.id, min(dateReparation) FROM VOITURE LEFT JOIN REPARATION on voiture.id = reparation.idVoiture group by voiture.id
Maintenant je veux la emme chose en ayant seulement en plus la raisonReparation
Je suis donc obligé de la rajouter dans le group by et du coup j'ai plus seulement la réparation la plus ancienne mais les réparation les plus ancienne pour chaque raisonReparation différentes. Ce qui veut dire que si j'ai 2 raison différentes j'ai 2 lignes. Or moi je ne veux que la raison de la réparation la plus ancienne.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT voiture.id, min(dateReparation), raisonReparation FROM VOITURE LEFT JOIN REPARATION on voiture.id = reparation.idVoiture group by voiture.id, raisonReparation
Comment faut-il procéder?
Merci,
Partager