2009-06-10 4 views
0

J'ai déjà demandé, mais toujours pas de réponse.Comment obtenir la moyenne et la somme dans ma requête croisée?

Est-il possible avec une requête croisée de le faire? (Dans Access 2007)

J'ai ce tableau:

50 | A1 

60 | A1 

70 | B1 

80 | B1 

90 | C1 

Je dois obtenir ce résultat:

A1    B1    C1 

sum | avg  sum | avg  sum | avg 

55 | 110  75 | 130  90 | 90 

J'essaie d'écrire ceci:

TRANSFORM Sum(Worki.Value) AS XXsum 
SELECT Worki.Name AS Name, Worki.Tdate AS Tdate, Worki.ID AS ID 
FROM Worki 
GROUP BY Worki.Name, Worki.Tdate, Worki.IDPIVOT Worki.Trit 

Comment Je reçois la moyenne et la somme?

Répondre

1

Vous pouvez utiliser les fonctions SQL SUM() et AVG(). Pour obtenir la somme de chacun des types A1, B1, C1, vous pouvez utiliser la requête suivante:

SELECT Worki.ID, SUM(Worki.Value), AVG(Worki.Value) FROM Worki GROUP BY Worki.ID, Worki.Name, Worki.Tdate 

qui retourne

 
A1 110 55 
B1 150 75 
C1 90  90 

Désolé, je ne suis pas d'aide avec la mise en forme

+0

mais il veut A1, B1, etc pour être les en-têtes de colonne. – dsteele

+0

Une TRANSFORMATION (c'est-à-dire, un tableau croisé) ne devrait-elle pas être possible sur ce résultat? Bien sûr, il est un peu difficile d'obtenir la moyenne et la somme dans la même colonne, mais cela peut être fait avec une expression (soit dans le tableau croisé ou dans la requête source en cours de TRANSFORMATION). –

1

Non, vous ne pouvez pas le faire avec une requête de tableau croisé - vous ne pouvez avoir qu'une seule colonne de valeur dans un tableau croisé. Je pense que vous devrez construire deux requêtes - une pour la somme, une pour la moyenne, puis combiner l'information en quelque sorte. Ils auront, au moins, les mêmes colonnes.

Questions connexes