MS Access クエリで複数の行を 1 つの値に結合する
このガイドでは、共有フィールドに基づいて、MS Access クエリ内で複数の行を単一の値に連結する 2 つの方法を説明します。 これらのメソッドは、カスタム関数または組み込み集計関数のいずれかを使用します。
方法 1: カスタム関数 (GetList) を使用する
このアプローチでは、VBA 関数を作成する必要があります。 次に、クエリはこの関数を呼び出して連結を実行します。
クエリ構造は次のとおりです:
<code class="language-sql">SELECT ColumnA, GetList("SELECT ColumnB FROM Table1 WHERE ColumnA = " & [ColumnA], "", ", ") AS ColumnB FROM Table1 GROUP BY ColumnA;</code>
GetList
関数 (VBA モジュールで定義) は、同じ ColumnA
値を共有する行を反復処理し、区切り文字としてカンマを使用して、対応する ColumnB
値を連結します。 この区切り文字は簡単に変更できます。
方法 2: 組み込みのリスト集計関数を使用する
このメソッドは、組み込みの List
関数を利用して、よりシンプルでコード不要のソリューションを実現します。
クエリは次のとおりです:
<code class="language-sql">SELECT ColumnA, List(ColumnB) AS ColumnB FROM Table1 GROUP BY ColumnA;</code>
List
関数は、一意の ColumnB
値ごとに ColumnA
値を自動的に連結します。 List
で使用される区切り文字は、Access の設定によって異なる場合があることに注意してください。
データと結果の例
次のサンプル データについて考えてみましょう:
ColumnA | ColumnB |
---|---|
1 | abc |
1 | pqr |
1 | xyz |
2 | efg |
2 | hij |
3 | asd |
どちらの方法でも次の結果が生成されます:
ColumnA | ColumnB |
---|---|
1 | abc, pqr, xyz |
2 | efg, hij |
3 | asd |
区切り文字のカスタマイズ
GetList
関数のパラメータ内の区切り文字を調整するか (方法 1)、場合によっては地域設定を通じて (方法 2)、別の区切り文字 (セミコロン、スペースなど) を使用します。
以上がMS Access クエリで複数の行を 1 つの値に連結するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。