2010-05-12 12 views
1

je les 3 tableaux suivants:MS Access requête CrossTab - sur 3 tables

1) Sweetness Tableau

FruitIndex  CountryIndex  Sweetness 
1    1     10 
1    2     20 
1    3     400 
2    1     50 
2    2     123 
2    3     1 
3    1     49 
3    2     40 
3    3     2 

2) Nom de fruits Tableau

FruitIndex  FruitName 
1    Apple 
2    Orange 
3    Peaches 

3) Nom du pays Tableau

CountryIndex CountryName 
1    UnitedStates 
2    Canada 
3    Mexico 

J'essaie d'exécuter une requête SQL CrossTab pour finir avec:

Fruit\Country  UnitedStates Canada  Mexico 
Apple    10   20   400 
Orange    50   123   1 
Peaches    49   40   2 

La partie difficile est d'étiqueter les lignes/colonnes avec les noms pertinents des tables de noms.

Je peux utiliser MS Access pour concevoir 2 requêtes,

  1. créer les jointures les fruits/noms de pays table avec la table Sweetness
  2. effectuer requête analyse croisée

Cependant, je vais avoir difficulté à le faire dans une seule requête. J'ai tenté d'imbriquer le SQL de la première requête dans la seconde, mais cela ne semble pas fonctionner.

Malheureusement, ma solution doit être entièrement SQL, car il s'agit d'une requête SQL embarquée (ne peut pas compter sur le concepteur de requêtes dans MS Access, etc.).

Toute aide grandement appréciée.

Prembo.

Répondre

1

Que diriez-vous:

TRANSFORM First(Sweetness.Sweetness) AS FirstOfSweetness 
SELECT Fruit.FruitName 
FROM (Sweetness 
INNER JOIN Fruit 
ON Sweetness.FruitIndex = Fruit.FruitIndex) 
INNER JOIN Country 
ON Sweetness.CountryIndex = Country.CountryIndex 
GROUP BY Fruit.FruitName 
PIVOT Country.CountryName; 
+0

Brillant! Merci beaucoup Remou. Travaillé parfaitement. – Prembo

0

Je déteste compter sur un poste extérieur et de le présenter comme ma réponse, mais cela est un sujet assez raide et je ne peux pas le faire justice. Donc, je vous suggère de regarder this article.