Bonjour, je n'arrive pas =E0 formuler une requ=EAte UPDATE qui=20
renseigne un champs d'une table A avec la somme de=20
plusieurs lignes d'un champs d'une table B - A et B etant=20
li=E9es par le champs [num]. Merci
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Michel Walsh
Salut,
On ne peut pas utiliser SUM, en effet.
Trois solutions.
- passer par une table. C'est à dire, de faire les SUM requires avec une requête SELECT, transformer la requête de type select en Make Table. Une fois la table crée, l'utiliser.
- utiliser DSum.
- Utiliser une sommation, +, sur un joint, après intiialisation du résultat.
Un exemple est plus approprié, je crois.
TableB num, valeur ' champs
TableA num, sonTotal ' champs
Méthode1 .
3 requêtes
"SELECT num, SUM(valeur) As tot INTO temp FROM tableB GROUP BY num"
"UPDATE tableA INNER JOIN temp ON tableA.num=temp.num SET tableA.sonTotal=temp.tot"
"DROP TABLE temp"
Méthode2.
1 requête, mais probablement lente si la table A est grande
"UPDATE tableA SET tableA.sonTotal= DSum('Valeur' , 'TableB', 'num=' & num )"
Méthode3.
2 requêtes.
"UPDATE tableA SET sonTotal = 0" ' initialisation
"UPDATE tableA INNER JOIN tableB ON tableA.Num = TableB.Num SET tableA.sonTotal = tableA.sonTotal + tableB.Valeur" ' sommation
Espérant être utile, Vanderghast, Access MVP
"cyberjc" wrote in message news:04f901c3c9ed$d6810e40$ Bonjour, je n'arrive pas à formuler une requête UPDATE qui renseigne un champs d'une table A avec la somme de plusieurs lignes d'un champs d'une table B - A et B etant liées par le champs [num]. Merci
Salut,
On ne peut pas utiliser SUM, en effet.
Trois solutions.
- passer par une table. C'est à dire, de faire les SUM requires avec
une requête SELECT, transformer la requête de type select en Make Table. Une
fois la table crée, l'utiliser.
- utiliser DSum.
- Utiliser une sommation, +, sur un joint, après intiialisation du
résultat.
Un exemple est plus approprié, je crois.
TableB
num, valeur ' champs
TableA
num, sonTotal ' champs
Méthode1 .
3 requêtes
"SELECT num, SUM(valeur) As tot INTO temp FROM tableB GROUP BY num"
"UPDATE tableA INNER JOIN temp ON tableA.num=temp.num
SET tableA.sonTotal=temp.tot"
"DROP TABLE temp"
Méthode2.
1 requête, mais probablement lente si la table A est grande
"UPDATE tableA SET tableA.sonTotal= DSum('Valeur' , 'TableB', 'num='
& num )"
Méthode3.
2 requêtes.
"UPDATE tableA SET sonTotal = 0" '
initialisation
"UPDATE tableA INNER JOIN tableB ON tableA.Num = TableB.Num
SET tableA.sonTotal = tableA.sonTotal + tableB.Valeur" '
sommation
Espérant être utile,
Vanderghast, Access MVP
"cyberjc" <jc.etienne@free.fr> wrote in message
news:04f901c3c9ed$d6810e40$a601280a@phx.gbl...
Bonjour, je n'arrive pas à formuler une requête UPDATE qui
renseigne un champs d'une table A avec la somme de
plusieurs lignes d'un champs d'une table B - A et B etant
liées par le champs [num]. Merci
- passer par une table. C'est à dire, de faire les SUM requires avec une requête SELECT, transformer la requête de type select en Make Table. Une fois la table crée, l'utiliser.
- utiliser DSum.
- Utiliser une sommation, +, sur un joint, après intiialisation du résultat.
Un exemple est plus approprié, je crois.
TableB num, valeur ' champs
TableA num, sonTotal ' champs
Méthode1 .
3 requêtes
"SELECT num, SUM(valeur) As tot INTO temp FROM tableB GROUP BY num"
"UPDATE tableA INNER JOIN temp ON tableA.num=temp.num SET tableA.sonTotal=temp.tot"
"DROP TABLE temp"
Méthode2.
1 requête, mais probablement lente si la table A est grande
"UPDATE tableA SET tableA.sonTotal= DSum('Valeur' , 'TableB', 'num=' & num )"
Méthode3.
2 requêtes.
"UPDATE tableA SET sonTotal = 0" ' initialisation
"UPDATE tableA INNER JOIN tableB ON tableA.Num = TableB.Num SET tableA.sonTotal = tableA.sonTotal + tableB.Valeur" ' sommation
Espérant être utile, Vanderghast, Access MVP
"cyberjc" wrote in message news:04f901c3c9ed$d6810e40$ Bonjour, je n'arrive pas à formuler une requête UPDATE qui renseigne un champs d'une table A avec la somme de plusieurs lignes d'un champs d'une table B - A et B etant liées par le champs [num]. Merci