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

jonction et somme de 2 tables differentes

9 réponses
Avatar
Flow
bonjour,
je bute sur le probleme suivant.
j'ai 2 tables qui ont la meme structure et se presentent comme ça:

Table1
num valeur
1 12,3
1 54
1 3
2 78
2 45,23

Table2
num valeur
1 4,65
1 44,3
2 44,9
2 9,65
2 6,45

je souhaite faire la somme du champ "valeur" pour chaque "num" dans une
requete, qq chose qui me renverrait :

RequeteTest
num valeur
1 118,25
2 184,33 ...(sauf erreur de calculatrice de ma pat :-)


Avec mes connaissances, je sais que je peux par exp créer une table "Temp"
puis faire deux requetes ajout pour injecter table1 puis table2 dans la
table "Temp"
puis faire une requete somme sur la table temp.

Mais n'y a t'il pas une méthode plus subtile (en utilisant DLookup ou je ne
sais quoi d'autre...) qui permettrait d'obtenir le meme resultat d'une
maniere plus directe ?
Merci pour vos conseils.

9 réponses

Avatar
Raymond [mvp]
Bonsoir.

tu dois pouvoir y arriver avec une requête regroupement basée sur une
requête union. tu devrais pouvoir utiliser une requête de ce genre:
SELECT X.Num, Sum(X.Valeur) AS SommeDeValeur
FROM [SELECT table1.Num, table1.Valeur
FROM table1
UNION ALL SELECT table2.Num, table2.Valeur
FROM table2]. AS X
GROUP BY X.Num;

(sous toutes réserves)
--
@+
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


"Flow" a écrit dans le message de
news:40cf2d48$0$309$
bonjour,
je bute sur le probleme suivant.
j'ai 2 tables qui ont la meme structure et se presentent comme ça:

Table1
num valeur
1 12,3
1 54
1 3
2 78
2 45,23

Table2
num valeur
1 4,65
1 44,3
2 44,9
2 9,65
2 6,45

je souhaite faire la somme du champ "valeur" pour chaque "num" dans une
requete, qq chose qui me renverrait :

RequeteTest
num valeur
1 118,25
2 184,33 ...(sauf erreur de calculatrice de ma pat :-)


Avec mes connaissances, je sais que je peux par exp créer une table "Temp"
puis faire deux requetes ajout pour injecter table1 puis table2 dans la
table "Temp"
puis faire une requete somme sur la table temp.

Mais n'y a t'il pas une méthode plus subtile (en utilisant DLookup ou je
ne

sais quoi d'autre...) qui permettrait d'obtenir le meme resultat d'une
maniere plus directe ?
Merci pour vos conseils.




Avatar
Flow
Euh... correction ce que je voudrais obtenir, c'est une requete qui me
presente les sommes de valeur par num et par table
du genre :

num somme tbl1 somme tbl2
1 69,3 48,95
2 123,23 61

voila...
Merci ...
-----------------------------------------------------------
Flow wrote:
bonjour,
je bute sur le probleme suivant.
j'ai 2 tables qui ont la meme structure et se presentent comme ça:

Table1
num valeur
1 12,3
1 54
1 3
2 78
2 45,23

Table2
num valeur
1 4,65
1 44,3
2 44,9
2 9,65
2 6,45

je souhaite faire la somme du champ "valeur" pour chaque "num" dans
une requete, qq chose qui me renverrait :

RequeteTest
num valeur
1 118,25
2 184,33 ...(sauf erreur de calculatrice de ma pat :-)


Avec mes connaissances, je sais que je peux par exp créer une table
"Temp" puis faire deux requetes ajout pour injecter table1 puis
table2 dans la table "Temp"
puis faire une requete somme sur la table temp.

Mais n'y a t'il pas une méthode plus subtile (en utilisant DLookup ou
je ne sais quoi d'autre...) qui permettrait d'obtenir le meme
resultat d'une maniere plus directe ?
Merci pour vos conseils.


Avatar
Raymond [mvp]
Il faut créer un champ commun supplémentaire:

SELECT X.Num, Sum(X.Valeur) AS SommeDeValeur, X.expr1
FROM [SELECT table1.Num, table1.Valeur, "A" as expr1
FROM table1
UNION ALL SELECT table2.Num, table2.Valeur, "B" as expr1
FROM table2]. AS X
GROUP BY X.Num, X.expr1;

faut plus changer. Bonne nuit, à demain.
--
@+
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


"Flow" a écrit dans le message de
news:40cf5445$0$307$
Euh... correction ce que je voudrais obtenir, c'est une requete qui me
presente les sommes de valeur par num et par table
du genre :

num somme tbl1 somme tbl2
1 69,3 48,95
2 123,23 61

voila...
Merci ...


Avatar
Flow
Flow wrote:
Euh... correction ce que je voudrais obtenir, c'est une requete qui me
presente les sommes de valeur par num et par table
du genre :

num somme tbl1 somme tbl2
1 69,3 48,95
2 123,23 61

voila...
Merci ...


Je suis en train de lire l'aide au sujet de RechDom et SomDom... et je me
dis que ça doit servir a ça... mais je rame...
est ce que je fais carrement fausse route ou pas ?

Avatar
Flow
Flow wrote:

Je suis en train de lire l'aide au sujet de RechDom et SomDom... et
je me dis que ça doit servir a ça... mais je rame...
est ce que je fais carrement fausse route ou pas ?


RRhhhaaa j'ai trouvé :

SELECT DISTINCT Table1.num, DSum("[valeur]","table1","[num] = " & [num]) AS
expr1, DSum("[valeur]","table2","[num] = " & [num]) AS expr2
FROM Table1;

super !!!

Avatar
Raymond [mvp]
J'espère seulement que tu n'as pas 10000 enregistrements à lire et je te
ferais remarquer que ça ne répond pas du tout au calcul de la question
d'origine car la question d'origine demandait d'ajouter les résultats des
deux tables.

--
@+
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


"Flow" a écrit dans le message de
news:40cf6457$0$315$
Flow wrote:

Je suis en train de lire l'aide au sujet de RechDom et SomDom... et
je me dis que ça doit servir a ça... mais je rame...
est ce que je fais carrement fausse route ou pas ?


RRhhhaaa j'ai trouvé :

SELECT DISTINCT Table1.num, DSum("[valeur]","table1","[num] = " & [num])
AS

expr1, DSum("[valeur]","table2","[num] = " & [num]) AS expr2
FROM Table1;

super !!!




Avatar
Flow
Raymond [mvp] wrote:
J'espère seulement que tu n'as pas 10000 enregistrements à lire et je
te ferais remarquer que ça ne répond pas du tout au calcul de la
question d'origine car la question d'origine demandait d'ajouter les
résultats des deux tables.


Raymond,

Merci pour ta réponse plus haut, ton post a été tres long a s'afficher chez
moi et je ne le vois qu'aujourd'hui en rentrant.
comme tu dis, ça ne repond pas a ma question d'origine. c'est un ami qui
m'avait demandé de l'aider a trouver la solution et comme souvent il s'etait
mal expliqué... :-)
C'est pour ça que j'ai rajouté "corection" au nom du sujet apres que cet
*$£* m'ait expliqué ce qu'il voulait reelement obtenir...
merci encore pour ton aide, ta réponse initiale est interessante et me
servira surement un jour...

Avatar
Flow
Raymond [mvp] wrote:
J'espère seulement que tu n'as pas 10000 enregistrements à lire



Raymond,
y a t'il a ton avis une façon plus clean pour obtenir le meme resultat ?


Avatar
Raymond [mvp]
en passant par une requête regroupement. les requêtes vont beaucoup plus
vite que les fonctions de domaine.

--
@+
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


"Flow" a écrit dans le message de
news:40d05cf2$0$317$

Raymond [mvp] wrote:
J'espère seulement que tu n'as pas 10000 enregistrements à lire



Raymond,
y a t'il a ton avis une façon plus clean pour obtenir le meme resultat ?