Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

requet de mise a jour et somme conditionnelle d'enregistrements

4 réponses
Avatar
lmigozzi
Bsr a tous

je souhaite ds une requete de mise jour faire une somme de=20
valeur d'enregistremnt presents ds une autre table de=20
detail

exemple
j'ai une base de client avec 3 champs
* n=B2 client
* valo des commandes vendeur A
* valo des commandes vendeur B ou C
* valo des commandes autres vendeurs

j'ai une base de commandes avec=20
* valo de la commande
* vendeur (de A a Z)

est il possible d'alimenter la 1er a partir de la 2em d'un=20
seul coup ?
pb: ds les requetes de mise a jour pas de 'sigma'
peut etre qlqch via le generateur d'expression ds le style=20
DSUM ??)

au pire avec 2 requetes (une de somme, une de mise a=20
jour...)

Merci

4 réponses

Avatar
Raymond [mvp]
Bonjour.

le plus simple serait de faire un dsum (s'il n'y a pas trop
d'enregistrements, car dsum est long) avec une clause where. exemple:
UPDATE table1 SET table1.Total = DSum("Montant","table2","[vendeur] = " &
[Vendeur]);

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"" a écrit dans le
message de news:219ff01c45c7a$c9cf7b80$
Bsr a tous

je souhaite ds une requete de mise jour faire une somme de
valeur d'enregistremnt presents ds une autre table de
detail

exemple
j'ai une base de client avec 3 champs
* n² client
* valo des commandes vendeur A
* valo des commandes vendeur B ou C
* valo des commandes autres vendeurs

j'ai une base de commandes avec
* valo de la commande
* vendeur (de A a Z)

est il possible d'alimenter la 1er a partir de la 2em d'un
seul coup ?
pb: ds les requetes de mise a jour pas de 'sigma'
peut etre qlqch via le generateur d'expression ds le style
DSUM ??)

au pire avec 2 requetes (une de somme, une de mise a
jour...)

Merci
Avatar
lmigozzi
Merci de ton aide. j'ai toutefois encore un pb qui
m'echappe

a. table1 (commandes)
num_cli vend valeur
1 A 1
1 A 2
1 B 3
1 B 7
2 B 2
2 B 3
2 A 9
1 C 10
3 A 1
3 B 11
3 C 5
3 C 1

b. recap
A BC
1
2
3

c. requete pour le champ A
UPDATE RECAP INNER JOIN Tabla1 ON RECAP.num_cli =
Tabla1.num_cli SET RECAP.A = DSum(Tabla1!
valeur,"Tabla1",RECAP!num_cli=Tabla1!num_cli)
WHERE (((Tabla1.vend)="A"));

d. resultat
num_cli A
1 24
2 108
3 12

mystere, mystere....

-----Message d'origine-----
Bonjour.

le plus simple serait de faire un dsum (s'il n'y a pas
trop

d'enregistrements, car dsum est long) avec une clause
where. exemple:

UPDATE table1 SET table1.Total = DSum
("Montant","table2","[vendeur] = " &

[Vendeur]);

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


""
a écrit dans le

message de news:219ff01c45c7a$c9cf7b80$
Bsr a tous

je souhaite ds une requete de mise jour faire une somme de
valeur d'enregistremnt presents ds une autre table de
detail

exemple
j'ai une base de client avec 3 champs
* n² client
* valo des commandes vendeur A
* valo des commandes vendeur B ou C
* valo des commandes autres vendeurs

j'ai une base de commandes avec
* valo de la commande
* vendeur (de A a Z)

est il possible d'alimenter la 1er a partir de la 2em d'un
seul coup ?
pb: ds les requetes de mise a jour pas de 'sigma'
peut etre qlqch via le generateur d'expression ds le style
DSUM ??)

au pire avec 2 requetes (une de somme, une de mise a
jour...)

Merci


.



Avatar
Raymond [mvp]
Bonjour.

tu ne devais avoir qu'une seule ligne par vendeur et il faut faire un
regroupement par vendeur. Apparemment tu veux faire un regroupement par
client et par vendeur donc il faut regrouper sur ces deux champs.
Si tu veux faire ceci, il ne faut pas passer par un dsum mais une simple
requête regroupement avec opération somme des colonnes A B et C, plus une
colonne calculée avec l'addition de B+C.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"" a écrit dans le
message de news:2290701c45d55$2ef8ff10$
Merci de ton aide. j'ai toutefois encore un pb qui
m'echappe

a. table1 (commandes)
num_cli vend valeur
1 A 1
1 A 2
1 B 3
1 B 7
2 B 2
2 B 3
2 A 9
1 C 10
3 A 1
3 B 11
3 C 5
3 C 1

b. recap
A BC
1
2
3

c. requete pour le champ A
UPDATE RECAP INNER JOIN Tabla1 ON RECAP.num_cli Tabla1.num_cli SET RECAP.A = DSum(Tabla1!
valeur,"Tabla1",RECAP!num_cli=Tabla1!num_cli)
WHERE (((Tabla1.vend)="A"));

d. resultat
num_cli A
1 24
2 108
3 12

mystere, mystere....

-----Message d'origine-----
Bonjour.

le plus simple serait de faire un dsum (s'il n'y a pas
trop

d'enregistrements, car dsum est long) avec une clause
where. exemple:

UPDATE table1 SET table1.Total = DSum
("Montant","table2","[vendeur] = " &

[Vendeur]);

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


""
a écrit dans le

message de news:219ff01c45c7a$c9cf7b80$
Bsr a tous

je souhaite ds une requete de mise jour faire une somme de
valeur d'enregistremnt presents ds une autre table de
detail

exemple
j'ai une base de client avec 3 champs
* n² client
* valo des commandes vendeur A
* valo des commandes vendeur B ou C
* valo des commandes autres vendeurs

j'ai une base de commandes avec
* valo de la commande
* vendeur (de A a Z)

est il possible d'alimenter la 1er a partir de la 2em d'un
seul coup ?
pb: ds les requetes de mise a jour pas de 'sigma'
peut etre qlqch via le generateur d'expression ds le style
DSUM ??)

au pire avec 2 requetes (une de somme, une de mise a
jour...)

Merci


.



Avatar
lmigozzi
OK
je l'avais imagine mais pour la "beaute" du jeu j'aurais
bien aime faire un "tout en un"
encore merci

-----Message d'origine-----
Bonjour.

tu ne devais avoir qu'une seule ligne par vendeur et il
faut faire un

regroupement par vendeur. Apparemment tu veux faire un
regroupement par

client et par vendeur donc il faut regrouper sur ces deux
champs.

Si tu veux faire ceci, il ne faut pas passer par un dsum
mais une simple

requête regroupement avec opération somme des colonnes A
B et C, plus une

colonne calculée avec l'addition de B+C.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


""
a écrit dans le

message de news:2290701c45d55$2ef8ff10$
Merci de ton aide. j'ai toutefois encore un pb qui
m'echappe

a. table1 (commandes)
num_cli vend valeur
1 A 1
1 A 2
1 B 3
1 B 7
2 B 2
2 B 3
2 A 9
1 C 10
3 A 1
3 B 11
3 C 5
3 C 1

b. recap
A BC
1
2
3

c. requete pour le champ A
UPDATE RECAP INNER JOIN Tabla1 ON RECAP.num_cli =
Tabla1.num_cli SET RECAP.A = DSum(Tabla1!
valeur,"Tabla1",RECAP!num_cli=Tabla1!num_cli)
WHERE (((Tabla1.vend)="A"));

d. resultat
num_cli A
1 24
2 108
3 12

mystere, mystere....

-----Message d'origine-----
Bonjour.

le plus simple serait de faire un dsum (s'il n'y a pas
trop

d'enregistrements, car dsum est long) avec une clause
where. exemple:

UPDATE table1 SET table1.Total = DSum
("Montant","table2","[vendeur] = " &

[Vendeur]);

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


""
a écrit dans le

message de news:219ff01c45c7a$c9cf7b80
$


Bsr a tous

je souhaite ds une requete de mise jour faire une somme
de


valeur d'enregistremnt presents ds une autre table de
detail

exemple
j'ai une base de client avec 3 champs
* n² client
* valo des commandes vendeur A
* valo des commandes vendeur B ou C
* valo des commandes autres vendeurs

j'ai une base de commandes avec
* valo de la commande
* vendeur (de A a Z)

est il possible d'alimenter la 1er a partir de la 2em
d'un


seul coup ?
pb: ds les requetes de mise a jour pas de 'sigma'
peut etre qlqch via le generateur d'expression ds le
style


DSUM ??)

au pire avec 2 requetes (une de somme, une de mise a
jour...)

Merci


.




.