smallweba Posté 5 Janvier 2017 Partager Posté 5 Janvier 2017 Bonjour, j’ai un problème en sql . je rappelle que j'utilise mysql j'ai deux tables, la table agriculteur et la table permis agiculteur(idag,nom, prenoms, ...) permis (idpermis,idag, taille,...) en utilisant count , j'obtiens le nombre de permis que possède un agriculteur . SELECT idag,COUNT(*) as Nbrepermis FROM PERMIS GROUP BY idag ORDER BY idag Mais je veux que ma requête mette aussi la valeur 0 pour les agriculteurs qui n'ont pas encore eu de permis. j'ai vu des exemple de jointure, mais sincèrement je n'arrive pas à écrire la requête. Merci de donner un coup de main. Cordialement Lien vers le commentaire Partager sur d’autres sites More sharing options...
SStephane Posté 6 Janvier 2017 Partager Posté 6 Janvier 2017 SELECT agiculteur.*, count(permis.idpermis) AS nbre FROM agiculteur LEFT JOIN permis ON agiculteur.idag = permis.idag GROUP BY permis.idag ORDER BY nbre DESC (j'ai pas essayer mais ça doit ressembler à ça) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Portekoi Posté 6 Janvier 2017 Partager Posté 6 Janvier 2017 Sur une agrégation, il faut que tous les champs non "cumulés" soient dans un group by : SELECT agriculteur.nom, count(permis.idpermis) AS nbre FROM agriculteur LEFT JOIN permis ON agriculteur.idag = permis.idag GROUP BY agriculteur.nom ORDER BY nbre DESC Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant