1

我有以下 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 个查询,

  1. 创建连接水果/国家名称表和甜度表
  2. 执行交叉表查询

但是,我无法在单个查询中执行此操作。我尝试将第一个查询的 SQL 嵌套到第二个,但它似乎不起作用。

不幸的是,我的解决方案需要完全是 SQL,因为它是一个嵌入式 SQL 查询(不能依赖 MS Access 中的查询设计器等)。

非常感谢任何帮助。

普雷姆博。

4

2 回答 2

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;
于 2010-05-12T16:00:32.713 回答
0

我讨厌依赖外部帖子并将其作为我的答案,但这是一个非常陡峭的话题,我无法做到公正。所以我建议你看看这篇文章

于 2010-05-12T16:00:46.937 回答