Bonjour,
J'ai actuellement un problème lors d'une jointure externe. La jointure retourne bien un résultat et fonctionne mais ce n'est pas le résultat que j'attends et je ne vois pas comment l'obtenir.
Je cherche à obtenir le nombre d'accident pour un client, pour cela j'ai une table répertoriant tout les accidents des contrats.
Ex : table accident
id_accident | id_contrat
1 | 1
2 | 1
3 | 1
4 | 1
Et une autre table avec mes clients et les différents contrats qu'ils ont.
Ex : table client
id_client | id_contrat
1 | 1
1 | 2
1 | 3
2 | 4
Pour effectuer ma jointure j'effectue actuellement :
Le résultat est donc
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 create table machin as select t1.id_client, t1.id_contrat as idcontrat, t2.id_accident, t2.id_contrat -- pour effectuer des vérifications par la suite from client t1 left join accident t2 on t1.id_contrat = t2.id_contrat
id_client | idcontrat | id_accident | id_contrat
1 | 1 | 1 | 1
1 | 1 | 2 | 1
1 | 1 | 3 | 1
1 | 1 | 4 | 1
1 | 2 | null | null
1 | 3 | null | null
2 | 4 | null | null
En soit je ne veux pas perdre le client 2 c'est pour ça que j'effectue une left join, mais pour le client 1 les contrat 2 et 3 ne m'intéresse pas car ils n'ont pas d'accident.
Y a t'il un moyen d'exclure ces contrats ?
Ou faut t'il que je compte le nombre de contrat où l'id_accident est non null par client et si ce nombre est supérieur à 0 alors supprimer les lignes avec un id_accident null ?
Cordialement,
Partager