Bonjour,
Je souhaite faire une requête SQL et la solution que j’ai trouvée ne me parait pas top. J’aimerai savoir si vous n’avez pas mieux à proposer.
J’ai renommé les tables, les champs et réduit le nombre de champs pour simplifier.
Je voudrais récupérer le code client, le nom du client, le nombre de numéros de téléphone de chaque client en sachant que les clients peuvent avoir 0 à n téléphones.
Voici les tables et les champs :
- CLIENT : CLI_CODE, CLI_NOM
- TELEPHONE_CLIENT : TCLI_CODE, TCLI_NUMERO_TEL
Voici la requête :
Ca semble fonctionner avec d’éditeur de requêtes de Visual Studio 2015 sur une base SQL Server Express.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT CLI_CODE, CLI_NOM, COUNT(*) AS NombreTel FROM CLIENT LEFT OUTER JOIN TELEPHONE_CLIENT ON CLI_CODE = TCLI_CODE WHERE CLI_CODE = 'CLT1' GROUP BY CLI_CODE, CLI_NOM
Mais je n'ai pas encore eu le temps de remplir correctement mon jeu de test (je vais le faire juste après l'envoi de cette question). J'ai juste un client avec plusieurs téléphones.
Mais pourquoi poser une question si ça fonctionne me direz vous ?
C'est que pour pouvoir récupérer le nom du client, j'ai dû ajouter le nom dans le group by. D'autant plus que je vais devoir récupérer environ une dizaine d'autres champs de la table client. Ca va faire un gros group by.
Merci d'avance pour vos suggestions.
Partager