Bonjour à tous et toutes!

J'ai une base de données (SQL MANAGER) avec plusieurs tables "principale" (contacts, société, etc...) dans laquelle chaque entrée peut-être reliée à x autres, du coup des tables de relations existent entre chacune d'entre elle (contact-contact, contact-société, contacts-..., ...).

Je voudrais une requête qui me permet de voir à combien d'autre enregistrement de chaque type est relié chaque contact. Voilà la requête que j'ai faite :
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
SELECT Cont.NAME AS Nom
      ,Cont.FIRSTNAME AS Prenom
      ,Count(ContCont.K_CONTACT) AS Contacts
      ,Count(ContDocu.K_CONTACT) AS Documents
      ,Count(ContActi.K_CONTACT) AS Actions
      ,Count(ContPubl.K_CONTACT) AS Publications
      ,Count(ContOppo.K_CONTACT) AS Opportunities
      ,Count(ContMail.K_CONTACT) AS Mails
      ,Count(ContProd.K_CONTACT) AS Products
      ,Count(ContProj.K_CONTACT) AS Projects
      ,Count(ContProf.K_CONTACT) AS Profiles
      ,Count(ContTmpl.K_CONTACT) AS Templates
        FROM CONTACTS Cont
        LEFT JOIN CONT_COMP ContComp ON ContComp.K_CONTACT=Cont.K_CONTACT
        LEFT JOIN COMPANIES Comp ON ContComp.K_COMPANY=Comp.K_COMPANY
        LEFT JOIN CONT_CONT ContCont ON ContCont.K_CONTACT=Cont.K_CONTACT
        LEFT JOIN DOCU_CONT ContDocu ON ContDocu.K_CONTACT=Cont.K_CONTACT
        LEFT JOIN ACTI_CONT ContActi ON ContActi.K_CONTACT=Cont.K_CONTACT
        LEFT JOIN PUBL_CONT ContPubl ON ContPubl.K_CONTACT=Cont.K_CONTACT
        LEFT JOIN OPPO_CONT ContOppo ON ContOppo.K_CONTACT=Cont.K_CONTACT
        LEFT JOIN MAIL_CONT ContMail ON ContMail.K_CONTACT=Cont.K_CONTACT
        LEFT JOIN PROD_CONT ContProd ON ContProd.K_CONTACT=Cont.K_CONTACT
        LEFT JOIN PROJ_CONT ContProj ON ContProj.K_CONTACT=Cont.K_CONTACT
        LEFT JOIN PROF_CONT ContProf ON ContProf.K_CONTACT=Cont.K_CONTACT
        LEFT JOIN TMPL_CONT ContTmpl ON ContTmpl.K_CONTACT=Cont.K_CONTACT
          WHERE Comp.KIND=12
          GROUP BY Cont.NAME, Cont.FIRSTNAME
          ORDER BY Cont.NAME, Cont.FIRSTNAME


Dès que plusieurs Count à une valeur supérieur à 0 un produit cartésien est fait entre ceux-ci...
Par exemple ci-dessous, la 2ème ligne est correcte, mais pas la 1ère: les 0 sont corrects mais normalement: Actions=6, Publications=13 et Profiles=5 (6X13X5=390)
Nom : SQLTriage.PNG
Affichages : 373
Taille : 5,4 Ko
Quelqu'un peut-il m'aider svp ? Plus tard j'exporterais ces données dans un fichier Excel

Merci à d'avance!^^

PS: la structure de la base de données n'est pas modifiable, elle vient d'un crm.

J'ai également essayé avec cette requête, j'ai exactement le même résultat
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
SELECT Cont.NAME AS Nom
      ,Cont.FIRSTNAME AS Prenom
      ,Count(ContComp.K_CONTACT) AS Companies
      ,Count(ContCont.K_CONTACT2) AS Contacts
      ,Count(ContDocu.K_DOCUMENT) AS Documents
      ,Count(ContActi.K_ACTION) AS Actions
      ,Count(ContPubl.K_PUBLICATION) AS Publications
      ,Count(ContOppo.K_OPPORTUNITY) AS Opportunities
      ,Count(ContMail.K_MAIL) AS Mails
      ,Count(ContProd.K_PRODUCT) AS Products
      ,Count(ContProj.K_PROJECT) AS Projects
      ,Count(ContProf.K_PROFILE) AS Profiles
      ,Count(ContTmpl.K_TEMPLATE) AS Templates
        FROM Actilan.adminactilan.CONTACTS Cont
        LEFT JOIN CONT_COMP ContComp ON ContComp.K_CONTACT=Cont.K_CONTACT
	LEFT JOIN COMPANIES Comp ON ContComp.K_COMPANY=Comp.K_COMPANY
        LEFT JOIN CONT_CONT ContCont ON ContCont.K_CONTACT=Cont.K_CONTACT
        LEFT JOIN DOCU_CONT ContDocu ON ContDocu.K_CONTACT=Cont.K_CONTACT
        LEFT JOIN ACTI_CONT ContActi ON ContActi.K_CONTACT=Cont.K_CONTACT
        LEFT JOIN PUBL_CONT ContPubl ON ContPubl.K_CONTACT=Cont.K_CONTACT
        LEFT JOIN OPPO_CONT ContOppo ON ContOppo.K_CONTACT=Cont.K_CONTACT
        LEFT JOIN MAIL_CONT ContMail ON ContMail.K_CONTACT=Cont.K_CONTACT
        LEFT JOIN PROD_CONT ContProd ON ContProd.K_CONTACT=Cont.K_CONTACT
        LEFT JOIN PROJ_CONT ContProj ON ContProj.K_CONTACT=Cont.K_CONTACT
        LEFT JOIN PROF_CONT ContProf ON ContProf.K_CONTACT=Cont.K_CONTACT
        LEFT JOIN TMPL_CONT ContTmpl ON ContTmpl.K_CONTACT=Cont.K_CONTACT
	  WHERE Comp.KIND=12
          GROUP BY Cont.NAME, Cont.FIRSTNAME
	  ORDER BY Cont.NAME, Cont.FIRSTNAME