Bonjour a tous,
J’essaie d’apprendre a realiser des totaux en ligne et en colonne d’une requete croisee. Pour ce faire, je suis pas a pas l’exemple utilise dans le tuto dont voice le lien:
http://access.developpez.com/sources...te#TotalCroise
Auteur: Tofalu, Rubrique: “Réaliser des totaux en ligne et en colonne”.
Le premier cas(obtenir le TOTAL par Ref) et le deuxieme cas (obtenir le TOTAL par mois) sont sans probleme; le probleme survient lorsqu’on veut obtenir les TOTAUX et en ligne et en colonne.
Le croissement (Ref = A1 et Mois= Mai) doit faire 6 au lieu de 3.
Je pense que le “bug” se trouve dans la requete intermediaire (CT_RTotal) qui ne renvoie qu’un seul enregistrement au lieu de deux pour la ligne
Merci de me dire comment resourdre ce probleme.
Code : Sélectionner tout - Visualiser dans une fenêtre à part A1 Mai 3.
Le tableau de depart:
Le resultat final que je veux obtenir est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Commande Ref Quantite Mois A1 3 Mai A1 3 Mai A1 5 Juin A2 3 Juin A2 10 Mai A4 4 Juin A4 4 Aout
Les etapes du tuto sont :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Ref Aout Juin Mai Total_Ref A1 0 5 6 11 A2 0 3 10 13 A4 4 4 0 8 TOT 4 12 16 32
Etape 1 : la requete intermediaire suivante (CT_RTotal) sera utilisee dans a l’etape 2.
Etape 2 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT Commande.Ref, Mois, Commande.quantite AS Total,0 as Ordre FROM Commande UNION ( SELECT "TOTAL",Mois, sum(Quantite),1 as Ordre FROM Commande GROUP BY MOIS,"TOTAL",1);
Et le resultat obtenu est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 TRANSFORM Sum(CT_RTotal.Total) AS SumOfTotal SELECT CT_RTotal.Ref , Sum(CT_RTotal.Total) AS SumOfTotal1 FROM CT_RTotal GROUP BY CT_RTotal.Ref, ordre ORDER BY Ordre PIVOT CT_RTotal.Mois;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 CT_Total_Row_Column Ref Aout Juin Mai SumOfTotal1 A1 5 3 8 A2 3 10 13 A4 4 4 8 TOTAL 4 12 16 32
Partager