Bonjour,
J'ai un problème pour effectuer deux sommes des minutes de deux bases indépendantes en fonction du id_projet de ces deux bases.
Voici ci-dessous la présentation de mes bases de données SQL
Base1: "pointage_projet"
+----+------------+---------------+----------------+------------------+
| id | initiale | date | id_projet | minutes |
+----+------------+---------------+----------------+------------------+
| 1 | MC | 2016-12-01 | 2 | 12 |
| 2 | STS | 2016-11-30 | 1 | 50 |
| 3 | MC | 2016-11-30 | 1 | 20 |
| 4 | DC | 2016-11-29 | 3 | 30 |
Base2: "pointage_projet_2"
+----+------------+---------------+----------------+------------------+
| id | id_ouv | date | id_projet | minutes |
+----+------------+---------------+----------------+------------------+
| 1 | 3 | 2016-12-02 | 1 | 10 |
| 2 | 2 | 2016-12-01 | 1 | 5 |
| 3 | 3 | 2016-11-29 | 2 | 25 |
| 4 | 5 | 2016-11-29 | 3 | 50 |
Base3: "projet"
+----+----------------+-------------------------+----------------+
| id | numprojet | description | id_client |
+----+----------------+-------------------------+----------------+
| 1 | AAA1 | Description projet 1 | 1 |
| 2 | BBB2 | Description projet 2 | 1 |
| 3 | CCC3 | Description projet 3 | 2 |
Base4: "client"
+----+-------------------+
| id | nomclient |
+----+-------------------+
| 1 | Client 1 |
| 2 | Client 2 |
| 3 | Client 3 |
Voici actuellement ma requête:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 SELECT p.id_projet, j.id_client, j.numprojet, j.description, c.nomclient, SUM(p.minutes) AS SommeMinutesBE, SUM(o.minutes) AS SommeMinutesAT FROM pointage_projet as p LEFT JOIN pointage_projet_2 as o ON o.id_projet = p.id_projet LEFT JOIN projets as j ON j.id = p.id_projet LEFT JOIN clients as c ON c.id = j.id_client WHERE numprojet = 'AAA1' GROUP BY j.numprojet
Je souhaiterais avoir dans "SommeMinutesBE" la valeur 70 (minutes) et dans "SommeMinutesAT" la valeur 15 (minutes) mais ce n'est pas le cas.
La valeur dans SommeMinutesBE est multipliée par le nombre de id_projet identique qu'il à trouver dans la 2e base. Donc cette requête n'est pas correcte, pouvez-vous m'aider ?
Comment faire dans ce cas ?
D'avance merci
Steph
Partager