MS Access CrossTab 查询 - 跨 3 个表
Posted
技术标签:
【中文标题】MS Access CrossTab 查询 - 跨 3 个表【英文标题】:MS Access CrossTab query - across 3 tables 【发布时间】:2010-05-12 15:35:32 【问题描述】:我有以下 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 个查询,
-
创建将水果/国家/地区名称表与 Sweetness 表连接
执行交叉表查询
但是,我无法在单个查询中执行此操作。我尝试将第一个查询的 SQL 嵌套到第二个,但它似乎不起作用。
不幸的是,我的解决方案需要完全是 SQL,因为它是一个嵌入式 SQL 查询(不能依赖 MS Access 中的查询设计器等)。
非常感谢任何帮助。
前奏。
【问题讨论】:
【参考方案1】:怎么样:
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;
【讨论】:
太棒了!非常感谢雷穆。完美运行。【参考方案2】:我讨厌依赖外部帖子并将其作为我的答案,但这是一个非常陡峭的话题,我无法做到公正。所以我建议你看看this article。
【讨论】:
以上是关于MS Access CrossTab 查询 - 跨 3 个表的主要内容,如果未能解决你的问题,请参考以下文章
将 Access Crosstab/PIVOT 查询转换为 T-SQL