Bonjour,

J'ai 3 tables (très grossièrement ) :



Les idprobe de la table probe peuvent être regroupés via les infos de la table autres_infos_probe (elles appartiennent à des groupes consensus d'une autre table).

Je souhaite faire une mise à jour de la table de statistiques stats qui regroupe également les id de probe :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
UPDATE stats SET moyenne = 'mon_calcul'
 WHERE probe_idprobe IN 
(SELECT idprobe from probe 
NATURAL JOIN autres_infos_probe 
WHERE is_master = 1)
Le problème est que je voudrais effectuer une moyenne en regroupant l'idprobe commun avec les idprobe associés, et en se basant sur valeur qui appartient à la table stats que je dois metter à jour.

ex:
Code : 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
UPDATE stats SET moyenne = 
-- calcul moyenne
SELECT AVG(
-- tentative de sélection de l'idprobe courant
-- et jonction avec les idprobe associés
-- via idconsensus dans la table des infos
SELECT valeur FROM probe 
NATURAL JOIN autres_infos_probe 
JOIN stats ON (idprobe = probe_idprobe)
WHERE idconsensus = 
(SELECT idconsensus FROM probe 
NATURAL JOIN autres_infos_probe
 WHERE idprobe_courant (je ne sais pas comment le noter)
) 
-- fin calcul moyenne
WHERE probe_idprobe IN 
(SELECT idprobe from probe NATURAL JOIN autres_infos_probe
 WHERE is_master = 1)

Ca ne fonctionne pas, je ne sais pas si et comment effctuer une mise à jour de ce type. Je sais en revanche qu'il faudra que je passe par une sous-requête pour lire et écrire sur la table courante.

Merci si vous avez une idée sur ce problème,

C. Tobini