Bonjour à tous,
J'essai de faire la somme de deux champs (se trouvant sur deux tables) pour un même utilisateurs.
J'ai la structure suivante :
Une table "users" :
Une table "taches" , contenant des taches à effectuer. Une tache est associé à un utilisateur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 +--------------+------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------------+------------------+------+-----+---------+----------------+ | id | int(10) unsigned | NO | PRI | NULL | auto_increment | | nom | varchar(100) | NO | | NULL | | | prenom | varchar(100) | NO | | NULL | | +--------------+------------------+------+-----+---------+----------------+
Une table taches_users qui permet d'associer des utilisateurs "secondaire" à une tache.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 +-------------+----------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+----------------------+------+-----+---------+----------------+ | id | int(10) unsigned | NO | PRI | NULL | auto_increment | | idUser | int(10) unsigned | NO | MUL | NULL | | | titre | varchar(255) | NO | | NULL | | | occupation | int(11) | NO | | 0 | | +-------------+----------------------+------+-----+---------+----------------+
J'arrive évidemment à récupérer le total d'occupation par utilisateur pour les taches :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 +------------+------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +------------+------------------+------+-----+---------+----------------+ | id | int(10) unsigned | NO | PRI | NULL | auto_increment | | idUser | int(10) unsigned | NO | MUL | NULL | | | idTache | int(10) unsigned | NO | MUL | NULL | | | occupation | int(11) | NO | | 0 | | +------------+------------------+------+-----+---------+----------------+
Un utilisateur étant soit directement attaché à une tache soit utilisateur secondaire d'une tache (via la table taches_users) j'aimerais arriver à faire le total de son occupation (en gros faire un SUM général de "occupation" quelque soit la table).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SELECT SUM(t.occupation), u.prenom,u.nom FROM taches t INNER JOIN users u ON u.id = t.idUser GROUP BY u.id
Le but final étant d'obtenir la liste des utilisateurs avec leur occupations totale.
Est ce possible avec une seule requête ou dois je forcément passer par deux petite requêtes comme celle présentée précedemment ?
Note : j'ai pas la main sur la structure de la table qui ne me semble pas idéale.
Merci
Partager