Pregunta

Tengo las siguientes 3 tablas:

1) Dulzura Tabla

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) Nombre fruta de mesa

FruitIndex      FruitName
1               Apple
2               Orange
3               Peaches

3) País Nombre de la tabla

CountryIndex    CountryName
1               UnitedStates
2               Canada
3               Mexico

Estoy tratando de realizar una consulta de referencias cruzadas SQL para terminar con:

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

La parte difícil es etiquetar las filas / columnas con los nombres correspondientes de las tablas de nombres.

Puedo usar MS Access para diseñar 2 consultas,

  1. crear la une a la mesa de nombres de frutas / país con la tabla de Dulzura
  2. realizar la consulta de referencias cruzadas

Sin embargo estoy teniendo problemas para realizar esto en una sola consulta. He intentado anidar SQL el primero de consulta en el segundo, pero no parece funcionar.

Por desgracia, mis necesidades solución que se va ser totalmente SQL, ya que es una consulta SQL incrustado (no se puede confiar en diseñador de consultas en MS Access, etc.).

Cualquier ayuda muy apreciada.

Prembo.

¿Fue útil?

Solución

¿Qué hay de:

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;

Otros consejos

No me gusta depender de un puesto de trabajo fuera y presentarlo como mi respuesta, pero este es un tema bastante empinada y no puede hacer justicia. Así que sugiero que busque en este artículo .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top