ホームページ > データベース > mysql チュートリアル > MS Access でグループ化列に基づいて行を連結するにはどうすればよいですか?

MS Access でグループ化列に基づいて行を連結するにはどうすればよいですか?

Barbara Streisand
リリース: 2025-01-07 22:15:44
オリジナル
897 人が閲覧しました

How Can I Concatenate Rows in MS Access Based on a Grouping Column?

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>
ログイン後にコピー

説明

  1. 外部クエリ (SELECT T.ColumnA) は、ColumnA の一意の値を取得します。

  2. GetList 関数は、ColumnA の現在の値に基づいて ColumnB の値を連結するために使用されます。 GetList 関数のパラメータは次のとおりです:

    • サブクエリ: SELECT ColumnB FROM Table1 AS T1 WHERE T1.ColumnA = " & [T].[ColumnA]
    • 初期値: "" (空文字列)
    • 連結区切り文字: "," (カンマとスペース)
  3. GROUP BY 句は、レコードを ColumnA ごとにグループ化し、連結された値が正しくグループ化されていることを確認します。

以上がMS Access でグループ化列に基づいて行を連結するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート