MS Access クエリの行を結合
はじめに
この記事では、Microsoft Access で最初の列に基づいてテーブルの 2 番目の列の値を結合しようとするときに発生する課題について説明します。私たちの目標は、クエリを通じてこの変革を達成することです。
質問
次のデータを含むテーブルについて考えてみましょう:
ColumnA | ColumnB |
---|---|
1 | abc |
1 | pqr |
1 | xyz |
2 | efg |
2 | hij |
3 | asd |
私たちの目標は、列 A の一意の値ごとに、列 B の値を単一のカンマ区切りの文字列に連結することです。望ましい結果は次のとおりです:
ColumnA | ColumnB |
---|---|
1 | abc, pqr, xyz |
2 | efg, hij |
3 | asd |
解決策
この接続を実現するには、「GetList」と呼ばれるカスタム関数を使用します。この関数は SQL クエリをパラメータとして受け取り、クエリによって返されたレコードセットを反復処理して、値を 1 つの文字列に連結します。
次は、「GetList」関数を含むクエリです:
<code class="language-sql">SELECT T.ColumnA, GetList("SELECT ColumnB FROM Table1 AS T1 WHERE T1.ColumnA = " & [T].[ColumnA],"",", ") AS ColumnBItems FROM Table1 AS T GROUP BY T.ColumnA;</code>
説明
外部クエリ (SELECT T.ColumnA) は、ColumnA の一意の値を取得します。
GetList 関数は、ColumnA の現在の値に基づいて ColumnB の値を連結するために使用されます。 GetList 関数のパラメータは次のとおりです:
GROUP BY 句は、レコードを ColumnA ごとにグループ化し、連結された値が正しくグループ化されていることを確認します。
以上がMS Access でグループ化列に基づいて行を連結するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。