MS Access Crosstab Query - через 3 таблицы
-
26-09-2019 - |
Вопрос
У меня есть следующие 3 столы:
1) таблица сладости
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) Таблица названия фруктов
FruitIndex FruitName
1 Apple
2 Orange
3 Peaches
3) Таблица названия страны
CountryIndex CountryName
1 UnitedStates
2 Canada
3 Mexico
Я пытаюсь выполнить запрос CrosStab SQL, чтобы оказаться:
Fruit\Country UnitedStates Canada Mexico
Apple 10 20 400
Orange 50 123 1
Peaches 49 40 2
Сложная часть состоит в том, чтобы обозначить строки / столбцы с соответствующими именами из таблиц имени.
Я могу использовать MS доступ к проектированию 2 запросов,
- Создание присоединений в таблице названий фруктов / стран с таблицей сладости
- Выполнить запрос CrosStab
Однако у меня проблемы с этим в одном запросе. Я попытался вложить SQL 1-го запроса на 2-й, но это не работает.
К сожалению, мое решение должно быть полностью SQL, так как он является встроенным запросом SQL (не может полагаться на конструктор запросов в MS Access и т. Д.).
Любая помощь значительно ценится.
Прембо.
Решение
Как насчет:
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;
Другие советы
Я ненавижу полагаться на внешний пост и представить его как мой ответ, но это довольно крутая тема, и я не могу сделать это справедливость. Так что я предлагаю вам посмотреть на эта статья.