課題: MS Access 2010 には、SQL Server 2005 以降にある UNPIVOT 機能がありません。このガイドでは、Access の組み込み SQL 機能を使用して同じ結果を達成する方法を説明します。
シナリオ:
次のテーブル構造を想像してください:
ID | A | B | C | Key 1 | Key 2 | Key 3 |
---|---|---|---|---|---|---|
1 | x | y | z | 3 | 199 | 452 |
2 | x | y | z | 57 | 234 | 452 |
目標は、ピボットされていない形式に変換することです:
ID | A | B | C | Key |
---|---|---|---|---|
1 | x | y | z | 3 |
2 | x | y | z | 57 |
1 | x | y | z | 199 |
2 | x | y | z | 234 |
1 | x | y | z | 452 |
2 | x | y | z | 452 |
解決策:
UNPIVOT 効果は、Access SQL クエリ内の一連の UNION ALL
ステートメントを使用して複製できます。
<code class="language-sql">SELECT ID, A, B, C, [Key 1] AS Key FROM tblUnpivotSource UNION ALL SELECT ID, A, B, C, [Key 2] AS Key FROM tblUnpivotSource UNION ALL SELECT ID, A, B, C, [Key 3] AS Key FROM tblUnpivotSource;</code>
結果:
サンプル テーブルに対してこのクエリを実行すると、目的のアンピボット レコードセットが生成されます。
ID | A | B | C | Key |
---|---|---|---|---|
1 | x | y | z | 3 |
2 | x | y | z | 57 |
1 | x | y | z | 199 |
2 | x | y | z | 234 |
1 | x | y | z | 452 |
2 | x | y | z | 452 |
以上がMS Access で UNPIVOT 機能を複製するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。