Somme

Le
Stéf
Bonjour,

Je cherche a faire une somme des nombres en fonction de leur type pour un
même nom.
J'ai donc une table avec 7 colonnes, dont il existe 3 possibilités de type.
nom, type1, valeur1, type2, valeur2, type3, valeur3

j'ai donc créer un requête pour faire la somme de valeur1 qui on le même
type1, et ainsi de suite pour chaque type.

Je sais donc faire une requête de regroupement par nom pour avoir le total
de valeur pour un type.
J'ai bien essayé de faire la somme de deux requêtes, mais suis pas assez
doué pour faire cela, j'obtient plusieurs somme pour un même nom.

Mon souci, c'est que je n'arrive pas à faire la somme des valeurs d'un
certain type quand il se trouve dans différentes colonnes pour un même nom.

voici pour exemple mes données :

nom - type1 - valeur1 - type2 - valeur2 - type3 - valeur3
marc - rouge - 4 - bleu - 55 - vert - 7
Alain - bleu - 44
Fred - rouge - 8 - bleu - 9
marc - vert - 8
Alain - rouge - 88 - bleu - 41

Et ainsi obtenir un résultat de :

alain rouge 88 - bleu 85 - vert 0
marc rouge 4 - bleu 55 - vert 15
fred rouge 8 - bleu 0 - vert 0


Merci
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
C. ERNST
Le #20580181
Il vous faut :

une requète (N) sur les Noms (Valeurs uniques)
Trois requêtes regroupement ( T1, T2 T3) sur chaque Type :
Nom Type1 'Total Valeur1'
Nom Type2 'Total Valeur2'
Nom Type3 'Total Valeur3
'
Vous créez alors une nouvelle requête
N -> T1
-> T2
-> T3
soit :
Select N.Nom, Type1,[Total Valeur1], Type2,[Total Valeur2]], Type3,[Total
Valeur3]
From N ((Left Join T1 On N.Nom = T1.nom) Left Join T2 On N.Nom = T2.Nom)
Left Join T3 on N.Nom = T3.nom



"Stéf"
Bonjour,

Je cherche a faire une somme des nombres en fonction de leur type pour un
même nom.
J'ai donc une table avec 7 colonnes, dont il existe 3 possibilités de
type.
nom, type1, valeur1, type2, valeur2, type3, valeur3

j'ai donc créer un requête pour faire la somme de valeur1 qui on le même
type1, et ainsi de suite pour chaque type.

Je sais donc faire une requête de regroupement par nom pour avoir le total
de valeur pour un type.
J'ai bien essayé de faire la somme de deux requêtes, mais suis pas assez
doué pour faire cela, j'obtient plusieurs somme pour un même nom.

Mon souci, c'est que je n'arrive pas à faire la somme des valeurs d'un
certain type quand il se trouve dans différentes colonnes pour un même
nom.

voici pour exemple mes données :

nom - type1 - valeur1 - type2 - valeur2 - type3 - valeur3
marc - rouge - 4 - bleu - 55 - vert - 7
Alain - bleu - 44
Fred - rouge - 8 - bleu - 9
marc - vert - 8
Alain - rouge - 88 - bleu - 41

Et ainsi obtenir un résultat de :

alain rouge 88 - bleu 85 - vert 0
marc rouge 4 - bleu 55 - vert 15
fred rouge 8 - bleu 0 - vert 0


Merci



Stéf
Le #20581471
Voici se que j'ai fait :
Requête N
SELECT Table1.Nom
FROM Table1;

Requête T1
SELECT DISTINCTROW Table1.Nom, Table1.Type1 AS Type1, Sum(Table1.[valeur 1])
AS [Total Valeur1]
FROM Table1
GROUP BY Table1.Nom, Table1.Type1;

Requête T2
SELECT DISTINCTROW Table1.Nom, Table1.Type2 AS Type2, Sum(Table1.[valeur 2])
AS [Total Valeur2]
FROM Table1
GROUP BY Table1.Nom, Table1.Type2;

Requête T3
SELECT DISTINCTROW Table1.Nom, Table1.Type3 AS Type3, Sum(Table1.[valeur 3])
AS [Total Valeur3]
FROM Table1
GROUP BY Table1.Nom, Table1.Type3;

Alors pour la dernière que tu m'a donnée, j'ai juste pu voir l'erreur du
double ], mais après il me signale une erreur de syntaxe dans la clause from
Select N.Nom, Type1,[Total Valeur1], Type2,[Total Valeur2], Type3,[Total
Valeur3]
From N ((Left Join T1 On N.Nom = T1.nom) Left Join T2 On N.Nom = T2.Nom)
Left Join T3 on N.Nom = T3.nom






"C. ERNST" news:
Il vous faut :

une requète (N) sur les Noms (Valeurs uniques)
Trois requêtes regroupement ( T1, T2 T3) sur chaque Type :
Nom Type1 'Total Valeur1'
Nom Type2 'Total Valeur2'
Nom Type3 'Total Valeur3
'
Vous créez alors une nouvelle requête
N -> T1
-> T2
-> T3
soit :
Select N.Nom, Type1,[Total Valeur1], Type2,[Total Valeur2]], Type3,[Total
Valeur3]
From N ((Left Join T1 On N.Nom = T1.nom) Left Join T2 On N.Nom = T2.Nom)
Left Join T3 on N.Nom = T3.nom



"Stéf"
Bonjour,

Je cherche a faire une somme des nombres en fonction de leur type pour un
même nom.
J'ai donc une table avec 7 colonnes, dont il existe 3 possibilités de
type.
nom, type1, valeur1, type2, valeur2, type3, valeur3

j'ai donc créer un requête pour faire la somme de valeur1 qui on le même
type1, et ainsi de suite pour chaque type.

Je sais donc faire une requête de regroupement par nom pour avoir le
total
de valeur pour un type.
J'ai bien essayé de faire la somme de deux requêtes, mais suis pas assez
doué pour faire cela, j'obtient plusieurs somme pour un même nom.

Mon souci, c'est que je n'arrive pas à faire la somme des valeurs d'un
certain type quand il se trouve dans différentes colonnes pour un même
nom.

voici pour exemple mes données :

nom - type1 - valeur1 - type2 - valeur2 - type3 - valeur3
marc - rouge - 4 - bleu - 55 - vert - 7
Alain - bleu - 44
Fred - rouge - 8 - bleu - 9
marc - vert - 8
Alain - rouge - 88 - bleu - 41

Et ainsi obtenir un résultat de :

alain rouge 88 - bleu 85 - vert 0
marc rouge 4 - bleu 55 - vert 15
fred rouge 8 - bleu 0 - vert 0


Merci







C. ERNST
Le #20588141
Pour la première requête, il faut :
SELECT DISTINCT Table1.Nom FROM Table1

pour la dernière faut déplacer la parenthèse

Select N.Nom, Type1,[Total Valeur1], Type2,[Total Valeur2], Type3,[Total
Valeur3]
From ((N Left Join T1 On N.Nom = T1.nom) Left Join T2 On N.Nom = T2.Nom)
Left Join T3 on N.Nom = T3.nom


"Stéf" %
Voici se que j'ai fait :
Requête N
SELECT Table1.Nom
FROM Table1;

Requête T1
SELECT DISTINCTROW Table1.Nom, Table1.Type1 AS Type1, Sum(Table1.[valeur
1]) AS [Total Valeur1]
FROM Table1
GROUP BY Table1.Nom, Table1.Type1;

Requête T2
SELECT DISTINCTROW Table1.Nom, Table1.Type2 AS Type2, Sum(Table1.[valeur
2]) AS [Total Valeur2]
FROM Table1
GROUP BY Table1.Nom, Table1.Type2;

Requête T3
SELECT DISTINCTROW Table1.Nom, Table1.Type3 AS Type3, Sum(Table1.[valeur
3]) AS [Total Valeur3]
FROM Table1
GROUP BY Table1.Nom, Table1.Type3;

Alors pour la dernière que tu m'a donnée, j'ai juste pu voir l'erreur du
double ], mais après il me signale une erreur de syntaxe dans la clause
from
Select N.Nom, Type1,[Total Valeur1], Type2,[Total Valeur2], Type3,[Total
Valeur3]
From N ((Left Join T1 On N.Nom = T1.nom) Left Join T2 On N.Nom = T2.Nom)
Left Join T3 on N.Nom = T3.nom






"C. ERNST" news:
Il vous faut :

une requète (N) sur les Noms (Valeurs uniques)
Trois requêtes regroupement ( T1, T2 T3) sur chaque Type :
Nom Type1 'Total Valeur1'
Nom Type2 'Total Valeur2'
Nom Type3 'Total Valeur3
'
Vous créez alors une nouvelle requête
N -> T1
-> T2
-> T3
soit :
Select N.Nom, Type1,[Total Valeur1], Type2,[Total Valeur2]], Type3,[Total
Valeur3]
From N ((Left Join T1 On N.Nom = T1.nom) Left Join T2 On N.Nom = T2.Nom)
Left Join T3 on N.Nom = T3.nom



"Stéf"
Bonjour,

Je cherche a faire une somme des nombres en fonction de leur type pour
un
même nom.
J'ai donc une table avec 7 colonnes, dont il existe 3 possibilités de
type.
nom, type1, valeur1, type2, valeur2, type3, valeur3

j'ai donc créer un requête pour faire la somme de valeur1 qui on le même
type1, et ainsi de suite pour chaque type.

Je sais donc faire une requête de regroupement par nom pour avoir le
total
de valeur pour un type.
J'ai bien essayé de faire la somme de deux requêtes, mais suis pas assez
doué pour faire cela, j'obtient plusieurs somme pour un même nom.

Mon souci, c'est que je n'arrive pas à faire la somme des valeurs d'un
certain type quand il se trouve dans différentes colonnes pour un même
nom.

voici pour exemple mes données :

nom - type1 - valeur1 - type2 - valeur2 - type3 - valeur3
marc - rouge - 4 - bleu - 55 - vert - 7
Alain - bleu - 44
Fred - rouge - 8 - bleu - 9
marc - vert - 8
Alain - rouge - 88 - bleu - 41

Et ainsi obtenir un résultat de :

alain rouge 88 - bleu 85 - vert 0
marc rouge 4 - bleu 55 - vert 15
fred rouge 8 - bleu 0 - vert 0


Merci










Stéf
Le #20595661
Merci, j'ai bien les totaux.
Mais je ne m'attendais pas à les voir aussi dispersé, pas évident de faire
une feuille de bilan pour chaque nom ^^
Mais bon j'approche de la solution, vais encore cherché.

"C. ERNST" news:
Pour la première requête, il faut :
SELECT DISTINCT Table1.Nom FROM Table1

pour la dernière faut déplacer la parenthèse

Select N.Nom, Type1,[Total Valeur1], Type2,[Total Valeur2], Type3,[Total
Valeur3]
From ((N Left Join T1 On N.Nom = T1.nom) Left Join T2 On N.Nom = T2.Nom)
Left Join T3 on N.Nom = T3.nom


"Stéf" %
Voici se que j'ai fait :
Requête N
SELECT Table1.Nom
FROM Table1;

Requête T1
SELECT DISTINCTROW Table1.Nom, Table1.Type1 AS Type1, Sum(Table1.[valeur
1]) AS [Total Valeur1]
FROM Table1
GROUP BY Table1.Nom, Table1.Type1;

Requête T2
SELECT DISTINCTROW Table1.Nom, Table1.Type2 AS Type2, Sum(Table1.[valeur
2]) AS [Total Valeur2]
FROM Table1
GROUP BY Table1.Nom, Table1.Type2;

Requête T3
SELECT DISTINCTROW Table1.Nom, Table1.Type3 AS Type3, Sum(Table1.[valeur
3]) AS [Total Valeur3]
FROM Table1
GROUP BY Table1.Nom, Table1.Type3;

Alors pour la dernière que tu m'a donnée, j'ai juste pu voir l'erreur du
double ], mais après il me signale une erreur de syntaxe dans la clause
from
Select N.Nom, Type1,[Total Valeur1], Type2,[Total Valeur2], Type3,[Total
Valeur3]
From N ((Left Join T1 On N.Nom = T1.nom) Left Join T2 On N.Nom = T2.Nom)
Left Join T3 on N.Nom = T3.nom






"C. ERNST" news:
Il vous faut :

une requète (N) sur les Noms (Valeurs uniques)
Trois requêtes regroupement ( T1, T2 T3) sur chaque Type :
Nom Type1 'Total Valeur1'
Nom Type2 'Total Valeur2'
Nom Type3 'Total Valeur3
'
Vous créez alors une nouvelle requête
N -> T1
-> T2
-> T3
soit :
Select N.Nom, Type1,[Total Valeur1], Type2,[Total Valeur2]],
Type3,[Total Valeur3]
From N ((Left Join T1 On N.Nom = T1.nom) Left Join T2 On N.Nom = T2.Nom)
Left Join T3 on N.Nom = T3.nom



"Stéf"
Bonjour,

Je cherche a faire une somme des nombres en fonction de leur type pour
un
même nom.
J'ai donc une table avec 7 colonnes, dont il existe 3 possibilités de
type.
nom, type1, valeur1, type2, valeur2, type3, valeur3

j'ai donc créer un requête pour faire la somme de valeur1 qui on le
même
type1, et ainsi de suite pour chaque type.

Je sais donc faire une requête de regroupement par nom pour avoir le
total
de valeur pour un type.
J'ai bien essayé de faire la somme de deux requêtes, mais suis pas
assez
doué pour faire cela, j'obtient plusieurs somme pour un même nom.

Mon souci, c'est que je n'arrive pas à faire la somme des valeurs d'un
certain type quand il se trouve dans différentes colonnes pour un même
nom.

voici pour exemple mes données :

nom - type1 - valeur1 - type2 - valeur2 - type3 - valeur3
marc - rouge - 4 - bleu - 55 - vert - 7
Alain - bleu - 44
Fred - rouge - 8 - bleu - 9
marc - vert - 8
Alain - rouge - 88 - bleu - 41

Et ainsi obtenir un résultat de :

alain rouge 88 - bleu 85 - vert 0
marc rouge 4 - bleu 55 - vert 15
fred rouge 8 - bleu 0 - vert 0


Merci














Michel__D
Le #20597211
Bonjour,

Stéf a écrit :
Bonjour,

Je cherche a faire une somme des nombres en fonction de leur type pour un
même nom.
J'ai donc une table avec 7 colonnes, dont il existe 3 possibilités de type.
nom, type1, valeur1, type2, valeur2, type3, valeur3

j'ai donc créer un requête pour faire la somme de valeur1 qui on le même
type1, et ainsi de suite pour chaque type.

Je sais donc faire une requête de regroupement par nom pour avoir le total
de valeur pour un type.
J'ai bien essayé de faire la somme de deux requêtes, mais suis pas assez
doué pour faire cela, j'obtient plusieurs somme pour un même nom.

Mon souci, c'est que je n'arrive pas à faire la somme des valeurs d'un
certain type quand il se trouve dans différentes colonnes pour un même nom.

voici pour exemple mes données :

nom - type1 - valeur1 - type2 - valeur2 - type3 - valeur3
marc - rouge - 4 - bleu - 55 - vert - 7
Alain - bleu - 44
Fred - rouge - 8 - bleu - 9
marc - vert - 8
Alain - rouge - 88 - bleu - 41

Et ainsi obtenir un résultat de :

alain rouge 88 - bleu 85 - vert 0
marc rouge 4 - bleu 55 - vert 15
fred rouge 8 - bleu 0 - vert 0


Merci



A essayer en 2 requêtes; une requête union pour rassembler les données :

SELECT T.nom, T.type1 AS type, T.valeur1 AS valeur
FROM LaTable AS T
UNION
SELECT T.nom, T.type2, T.valeur2
FROM LaTable AS T
UNION
SELECT T.nom, T.type3, T.valeur3
FROM LaTable AS T;

Puis une requête d'analyse croisée pour le résultat final :

TRANSFORM Sum(R.valeur) AS valeur
SELECT R.nom
FROM LaRequeteUnion AS R
GROUP BY R.nom
PIVOT R.type;
Stéf
Le #20603551
Assez bien comme idée, sauf un petit souci, quand j'ai plusieurs valeurs
identique pour un type, la 1er requête n'en retient qu'une, se qui fausse la
somme dans la 2ème requête croisé.
Dommage c'était vraiment bien, t'as une solution ? :-)
De mon coté j'ai essayé différente solution inspiré de ton principe, mais
pas assez doué pfff

J'ai aussi une autre piste, comme mes données viennent d'un tableau Excel,
il y aurai moins de souci si on arrive à mettre chaque type dans une colonne
distingue. J'ai bien une idée dans Excel. Dans Access, c'est peut être
possible de faire une macro qui re ferait une table restructuré. Mais bon,
on essaye d'abord en requête "directe" :-)

"Michel__D" news:
Bonjour,

Stéf a écrit :
Bonjour,

Je cherche a faire une somme des nombres en fonction de leur type pour un
même nom.
J'ai donc une table avec 7 colonnes, dont il existe 3 possibilités de
type.
nom, type1, valeur1, type2, valeur2, type3, valeur3

j'ai donc créer un requête pour faire la somme de valeur1 qui on le même
type1, et ainsi de suite pour chaque type.

Je sais donc faire une requête de regroupement par nom pour avoir le
total
de valeur pour un type.
J'ai bien essayé de faire la somme de deux requêtes, mais suis pas assez
doué pour faire cela, j'obtient plusieurs somme pour un même nom.

Mon souci, c'est que je n'arrive pas à faire la somme des valeurs d'un
certain type quand il se trouve dans différentes colonnes pour un même
nom.

voici pour exemple mes données :

nom - type1 - valeur1 - type2 - valeur2 - type3 - valeur3
marc - rouge - 4 - bleu - 55 - vert - 7
Alain - bleu - 44
Fred - rouge - 8 - bleu - 9
marc - vert - 8
Alain - rouge - 88 - bleu - 41

Et ainsi obtenir un résultat de :

alain rouge 88 - bleu 85 - vert 0
marc rouge 4 - bleu 55 - vert 15
fred rouge 8 - bleu 0 - vert 0


Merci



A essayer en 2 requêtes; une requête union pour rassembler les données :

SELECT T.nom, T.type1 AS type, T.valeur1 AS valeur
FROM LaTable AS T
UNION
SELECT T.nom, T.type2, T.valeur2
FROM LaTable AS T
UNION
SELECT T.nom, T.type3, T.valeur3
FROM LaTable AS T;

Puis une requête d'analyse croisée pour le résultat final :

TRANSFORM Sum(R.valeur) AS valeur
SELECT R.nom
FROM LaRequeteUnion AS R
GROUP BY R.nom
PIVOT R.type;


Michel__D
Le #20608101
Bonjour,

Ben si tu ne détaille pas plus je (on) ne va pas pouvoir t'aider,
donne un exemple ou cela ne fonctionne pas.


Stéf a écrit :
Assez bien comme idée, sauf un petit souci, quand j'ai plusieurs valeurs
identique pour un type, la 1er requête n'en retient qu'une, se qui
fausse la somme dans la 2ème requête croisé.
Dommage c'était vraiment bien, t'as une solution ? :-)
De mon coté j'ai essayé différente solution inspiré de ton principe,
mais pas assez doué pfff

J'ai aussi une autre piste, comme mes données viennent d'un tableau
Excel, il y aurai moins de souci si on arrive à mettre chaque type dans
une colonne distingue. J'ai bien une idée dans Excel. Dans Access, c'est
peut être possible de faire une macro qui re ferait une table
restructuré. Mais bon, on essaye d'abord en requête "directe" :-)

"Michel__D" message de news:
Bonjour,

Stéf a écrit :
Bonjour,

Je cherche a faire une somme des nombres en fonction de leur type
pour un
même nom.
J'ai donc une table avec 7 colonnes, dont il existe 3 possibilités de
type.
nom, type1, valeur1, type2, valeur2, type3, valeur3

j'ai donc créer un requête pour faire la somme de valeur1 qui on le même
type1, et ainsi de suite pour chaque type.

Je sais donc faire une requête de regroupement par nom pour avoir le
total
de valeur pour un type.
J'ai bien essayé de faire la somme de deux requêtes, mais suis pas assez
doué pour faire cela, j'obtient plusieurs somme pour un même nom.

Mon souci, c'est que je n'arrive pas à faire la somme des valeurs d'un
certain type quand il se trouve dans différentes colonnes pour un
même nom.

voici pour exemple mes données :

nom - type1 - valeur1 - type2 - valeur2 - type3 - valeur3
marc - rouge - 4 - bleu - 55 - vert - 7
Alain - bleu - 44
Fred - rouge - 8 - bleu - 9
marc - vert - 8
Alain - rouge - 88 - bleu - 41

Et ainsi obtenir un résultat de :

alain rouge 88 - bleu 85 - vert 0
marc rouge 4 - bleu 55 - vert 15
fred rouge 8 - bleu 0 - vert 0


Merci



A essayer en 2 requêtes; une requête union pour rassembler les données :

SELECT T.nom, T.type1 AS type, T.valeur1 AS valeur
FROM LaTable AS T
UNION
SELECT T.nom, T.type2, T.valeur2
FROM LaTable AS T
UNION
SELECT T.nom, T.type3, T.valeur3
FROM LaTable AS T;

Puis une requête d'analyse croisée pour le résultat final :

TRANSFORM Sum(R.valeur) AS valeur
SELECT R.nom
FROM LaRequeteUnion AS R
GROUP BY R.nom
PIVOT R.type;





Stéf
Le #20609091
OK
si table :
marc 2 rouge 5 vert
marc 2 rouge 6 vert
marc 1 rouge

dans la 1er requête on obtient
nom type valeur
marc rouge 2
marc rouge 1
marc vert 5
marc vert 6

et la 2ème requête donne alors
nom - rouge - vert
marc - 3 - 11

Ainsi la somme de rouge n'est pas juste, puique la somme est de 5 et non 3

il faudrait obtenir dans la 1er requête :
marc rouge 2
marc rouge 2
marc rouge 1
marc vert 5
marc vert 6



"Michel__D" news:
Bonjour,

Ben si tu ne détaille pas plus je (on) ne va pas pouvoir t'aider,
donne un exemple ou cela ne fonctionne pas.


Stéf a écrit :
Assez bien comme idée, sauf un petit souci, quand j'ai plusieurs valeurs
identique pour un type, la 1er requête n'en retient qu'une, se qui fausse
la somme dans la 2ème requête croisé.
Dommage c'était vraiment bien, t'as une solution ? :-)
De mon coté j'ai essayé différente solution inspiré de ton principe, mais
pas assez doué pfff

J'ai aussi une autre piste, comme mes données viennent d'un tableau
Excel, il y aurai moins de souci si on arrive à mettre chaque type dans
une colonne distingue. J'ai bien une idée dans Excel. Dans Access, c'est
peut être possible de faire une macro qui re ferait une table
restructuré. Mais bon, on essaye d'abord en requête "directe" :-)

"Michel__D" de news:
Bonjour,

Stéf a écrit :
Bonjour,

Je cherche a faire une somme des nombres en fonction de leur type pour
un
même nom.
J'ai donc une table avec 7 colonnes, dont il existe 3 possibilités de
type.
nom, type1, valeur1, type2, valeur2, type3, valeur3

j'ai donc créer un requête pour faire la somme de valeur1 qui on le
même
type1, et ainsi de suite pour chaque type.

Je sais donc faire une requête de regroupement par nom pour avoir le
total
de valeur pour un type.
J'ai bien essayé de faire la somme de deux requêtes, mais suis pas
assez
doué pour faire cela, j'obtient plusieurs somme pour un même nom.

Mon souci, c'est que je n'arrive pas à faire la somme des valeurs d'un
certain type quand il se trouve dans différentes colonnes pour un même
nom.

voici pour exemple mes données :

nom - type1 - valeur1 - type2 - valeur2 - type3 - valeur3
marc - rouge - 4 - bleu - 55 - vert - 7
Alain - bleu - 44
Fred - rouge - 8 - bleu - 9
marc - vert - 8
Alain - rouge - 88 - bleu - 41

Et ainsi obtenir un résultat de :

alain rouge 88 - bleu 85 - vert 0
marc rouge 4 - bleu 55 - vert 15
fred rouge 8 - bleu 0 - vert 0


Merci



A essayer en 2 requêtes; une requête union pour rassembler les données :

SELECT T.nom, T.type1 AS type, T.valeur1 AS valeur
FROM LaTable AS T
UNION
SELECT T.nom, T.type2, T.valeur2
FROM LaTable AS T
UNION
SELECT T.nom, T.type3, T.valeur3
FROM LaTable AS T;

Puis une requête d'analyse croisée pour le résultat final :

TRANSFORM Sum(R.valeur) AS valeur
SELECT R.nom
FROM LaRequeteUnion AS R
GROUP BY R.nom
PIVOT R.type;







Michel__D
Le #20610691
Bonjour,

Dans ce cas essaye comme ceci :

SELECT T.nom, T.type1 AS type, Sum(T.valeur1) AS valeur
FROM LaTable AS T
GROUP BY T.nom, T.type1
UNION
SELECT T.nom, T.type2, Sum(T.valeur2)
FROM LaTable AS T
GROUP BY T.nom, T.type2
UNION
SELECT T.nom, T.type3, Sum(T.valeur3)
FROM LaTable AS T
GROUP BY T.nom, T.type3;


Stéf a écrit :
OK
si table :
marc 2 rouge 5 vert
marc 2 rouge 6 vert
marc 1 rouge

dans la 1er requête on obtient
nom type valeur
marc rouge 2
marc rouge 1
marc vert 5
marc vert 6

et la 2ème requête donne alors
nom - rouge - vert
marc - 3 - 11

Ainsi la somme de rouge n'est pas juste, puique la somme est de 5 et non 3

il faudrait obtenir dans la 1er requête :
marc rouge 2
marc rouge 2
marc rouge 1
marc vert 5
marc vert 6



"Michel__D" message de
news:
Bonjour,

Ben si tu ne détaille pas plus je (on) ne va pas pouvoir t'aider,
donne un exemple ou cela ne fonctionne pas.


Stéf a écrit :
Assez bien comme idée, sauf un petit souci, quand j'ai plusieurs valeurs
identique pour un type, la 1er requête n'en retient qu'une, se qui
fausse
la somme dans la 2ème requête croisé.
Dommage c'était vraiment bien, t'as une solution ? :-)
De mon coté j'ai essayé différente solution inspiré de ton principe,
mais
pas assez doué pfff

J'ai aussi une autre piste, comme mes données viennent d'un tableau
Excel, il y aurai moins de souci si on arrive à mettre chaque type dans
une colonne distingue. J'ai bien une idée dans Excel. Dans Access, c'est
peut être possible de faire une macro qui re ferait une table
restructuré. Mais bon, on essaye d'abord en requête "directe" :-)

"Michel__D" message
de news:
Bonjour,

Stéf a écrit :
Bonjour,

Je cherche a faire une somme des nombres en fonction de leur type pour
un
même nom.
J'ai donc une table avec 7 colonnes, dont il existe 3 possibilités de
type.
nom, type1, valeur1, type2, valeur2, type3, valeur3

j'ai donc créer un requête pour faire la somme de valeur1 qui on le
même
type1, et ainsi de suite pour chaque type.

Je sais donc faire une requête de regroupement par nom pour avoir le
total
de valeur pour un type.
J'ai bien essayé de faire la somme de deux requêtes, mais suis pas
assez
doué pour faire cela, j'obtient plusieurs somme pour un même nom.

Mon souci, c'est que je n'arrive pas à faire la somme des valeurs d'un
certain type quand il se trouve dans différentes colonnes pour un même
nom.

voici pour exemple mes données :

nom - type1 - valeur1 - type2 - valeur2 - type3 - valeur3
marc - rouge - 4 - bleu - 55 - vert - 7
Alain - bleu - 44
Fred - rouge - 8 - bleu - 9
marc - vert - 8
Alain - rouge - 88 - bleu - 41

Et ainsi obtenir un résultat de :

alain rouge 88 - bleu 85 - vert 0
marc rouge 4 - bleu 55 - vert 15
fred rouge 8 - bleu 0 - vert 0


Merci



A essayer en 2 requêtes; une requête union pour rassembler les
données :

SELECT T.nom, T.type1 AS type, T.valeur1 AS valeur
FROM LaTable AS T
UNION
SELECT T.nom, T.type2, T.valeur2
FROM LaTable AS T
UNION
SELECT T.nom, T.type3, T.valeur3
FROM LaTable AS T;

Puis une requête d'analyse croisée pour le résultat final :

TRANSFORM Sum(R.valeur) AS valeur
SELECT R.nom
FROM LaRequeteUnion AS R
GROUP BY R.nom
PIVOT R.type;










Stéf
Le #20610841
Super ! tout me semble parfais, nickel chrome :-)


Un grand merci a toi, je vais pourvoir progresser

Stéf

"Michel__D" news:%
Bonjour,

Dans ce cas essaye comme ceci :

SELECT T.nom, T.type1 AS type, Sum(T.valeur1) AS valeur
FROM LaTable AS T
GROUP BY T.nom, T.type1
UNION
SELECT T.nom, T.type2, Sum(T.valeur2)
FROM LaTable AS T
GROUP BY T.nom, T.type2
UNION
SELECT T.nom, T.type3, Sum(T.valeur3)
FROM LaTable AS T
GROUP BY T.nom, T.type3;


Stéf a écrit :
OK
si table :
marc 2 rouge 5 vert
marc 2 rouge 6 vert
marc 1 rouge

dans la 1er requête on obtient
nom type valeur
marc rouge 2
marc rouge 1
marc vert 5
marc vert 6

et la 2ème requête donne alors
nom - rouge - vert
marc - 3 - 11

Ainsi la somme de rouge n'est pas juste, puique la somme est de 5 et non
3

il faudrait obtenir dans la 1er requête :
marc rouge 2
marc rouge 2
marc rouge 1
marc vert 5
marc vert 6



"Michel__D" de
news:
Bonjour,

Ben si tu ne détaille pas plus je (on) ne va pas pouvoir t'aider,
donne un exemple ou cela ne fonctionne pas.


Stéf a écrit :
Assez bien comme idée, sauf un petit souci, quand j'ai plusieurs
valeurs
identique pour un type, la 1er requête n'en retient qu'une, se qui
fausse
la somme dans la 2ème requête croisé.
Dommage c'était vraiment bien, t'as une solution ? :-)
De mon coté j'ai essayé différente solution inspiré de ton principe,
mais
pas assez doué pfff

J'ai aussi une autre piste, comme mes données viennent d'un tableau
Excel, il y aurai moins de souci si on arrive à mettre chaque type dans
une colonne distingue. J'ai bien une idée dans Excel. Dans Access,
c'est
peut être possible de faire une macro qui re ferait une table
restructuré. Mais bon, on essaye d'abord en requête "directe" :-)

"Michel__D" message
de news:
Bonjour,

Stéf a écrit :
Bonjour,

Je cherche a faire une somme des nombres en fonction de leur type
pour
un
même nom.
J'ai donc une table avec 7 colonnes, dont il existe 3 possibilités de
type.
nom, type1, valeur1, type2, valeur2, type3, valeur3

j'ai donc créer un requête pour faire la somme de valeur1 qui on le
même
type1, et ainsi de suite pour chaque type.

Je sais donc faire une requête de regroupement par nom pour avoir le
total
de valeur pour un type.
J'ai bien essayé de faire la somme de deux requêtes, mais suis pas
assez
doué pour faire cela, j'obtient plusieurs somme pour un même nom.

Mon souci, c'est que je n'arrive pas à faire la somme des valeurs
d'un
certain type quand il se trouve dans différentes colonnes pour un
même
nom.

voici pour exemple mes données :

nom - type1 - valeur1 - type2 - valeur2 - type3 - valeur3
marc - rouge - 4 - bleu - 55 - vert - 7
Alain - bleu - 44
Fred - rouge - 8 - bleu - 9
marc - vert - 8
Alain - rouge - 88 - bleu - 41

Et ainsi obtenir un résultat de :

alain rouge 88 - bleu 85 - vert 0
marc rouge 4 - bleu 55 - vert 15
fred rouge 8 - bleu 0 - vert 0


Merci



A essayer en 2 requêtes; une requête union pour rassembler les données
:

SELECT T.nom, T.type1 AS type, T.valeur1 AS valeur
FROM LaTable AS T
UNION
SELECT T.nom, T.type2, T.valeur2
FROM LaTable AS T
UNION
SELECT T.nom, T.type3, T.valeur3
FROM LaTable AS T;

Puis une requête d'analyse croisée pour le résultat final :

TRANSFORM Sum(R.valeur) AS valeur
SELECT R.nom
FROM LaRequeteUnion AS R
GROUP BY R.nom
PIVOT R.type;












Publicité
Poster une réponse
Anonyme