質問

次の 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

難しい部分は、Name テーブルの関連する名前で行/列にラベルを付けることです。

MS Access を使用して 2 つのクエリを設計できます。

  1. 果物/国名テーブルと甘味テーブルを結合するテーブルを作成します。
  2. クロス集計クエリを実行する

ただし、これを単一のクエリで行うのは困難です。1 番目のクエリの SQL を 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;

他のヒント

私は外部の投稿に依存してそれを自分の答えとして提示するのが嫌いですが、これはかなり難しいテーマであり、正当に評価することはできません。だから私はあなたが見ることをお勧めします この記事.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top