MS Access CrossTab 查询 - 跨 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 Access 设计 2 个查询,
- 创建水果/国家名称表与甜度表的连接
- 执行交叉表查询
但是我在单个查询中执行此操作时遇到困难。我尝试将第一个查询的 SQL 嵌套到第二个查询中,但它似乎不起作用。
不幸的是,我的解决方案需要完全是 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;
其他提示
我讨厌依赖外部帖子并将其作为我的答案,但这是一个相当陡峭的话题,我无法公正地回答。所以我建议你看看 本文.
不隶属于 StackOverflow