Bonjour tout le monde,
Je dois faire une requête pour laquelle il me manque quelques (pas mal si je suis honnête) notions..
Voici les 3 tables utilisée :
Agent
idAgent
Client
idClient
idAgent
RendezVous
idRDV
idClient
idAgent
Je veux lister TOUS les Agents (facile)
je veux le nombre de RendezVous pour chaque Agent pour le mois courant.
J'ai réussi en faisant une sous requête :
Je n'arrive pas à faire ça via une jointure, je pense que c'est plus propre (à tort ou à raison je ne sais pas), mais je n'arrive pas à utiliser le COUNT avec le JOIN.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT agent.*; (SELECT count(*) FROM rendezvous rdv WHERE rdv.dateDebutPrevue > "2017-06-01 00:00:00" AND rdv.dateDebutPrevue < "2017-06-31 00:00:00" AND rdv.idAgent = ag.idAgent) as nb FROM agent ag
Là où ça se complique vraiment et où je bloque : je dois avoir, pour chaque Agent , le pourcentage de Client associés pour lesquels il y a eu au moins 2 RendezVous
J'ai tester avec des sous requête, je pensais faire quelque chose du genre
( requete1 ) / (requete2) * 100 AS taux
avec requete1 pour avoir le nombre de clients :
et requete2 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 select count(*) from Client client WHERE Client.idClient = Agent.idAgent
mais c'est de la **** pour être poli,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 select count(*) from Client client , rendezvous rdv , agent ag WHERE client.idClient = agent.idAgent AND rdv.idClient = client.idClient AND client.idAgent=ag.idAgent HAVING COUNT(rdv.idRDV) > 1
Bref si quelqu'un à des pistes ça serait super.
Merci beaucoup
Nico
Partager