Heim >Datenbank >MySQL-Tutorial >Wie kann ich Zeilen in MS Access basierend auf einer Gruppierungsspalte verketten?

Wie kann ich Zeilen in MS Access basierend auf einer Gruppierungsspalte verketten?

Barbara Streisand
Barbara StreisandOriginal
2025-01-07 22:15:44981Durchsuche

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

Zeilen in MS Access-Abfrage verbinden

Einführung

In diesem Artikel werden die Herausforderungen untersucht, die in Microsoft Access auftreten, wenn versucht wird, die Werte der zweiten Spalte in einer Tabelle basierend auf der ersten Spalte zu verbinden. Unser Ziel ist es, diese Transformation durch Abfragen zu erreichen.

Frage

Betrachten Sie eine Tabelle mit den folgenden Daten:

ColumnA ColumnB
1 abc
1 pqr
1 xyz
2 efg
2 hij
3 asd

Unser Ziel ist es, die Werte in Spalte B für jeden eindeutigen Wert in Spalte A zu einer einzigen durch Kommas getrennten Zeichenfolge zu verketten. Das gewünschte Ergebnis ist wie folgt:

ColumnA ColumnB
1 abc, pqr, xyz
2 efg, hij
3 asd

Lösung

Um diese Verbindung herzustellen, verwenden wir eine benutzerdefinierte Funktion namens „GetList“. Diese Funktion akzeptiert eine SQL-Abfrage als Parameter und durchläuft das von der Abfrage zurückgegebene Recordset, wobei die Werte zu einer einzigen Zeichenfolge verkettet werden.

Das Folgende ist eine Abfrage, die die Funktion „GetList“ enthält:

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

Beschreibung

  1. Äußere Abfrage (SELECT T.ColumnA) ruft eindeutige Werte in ColumnA ab.

  2. Die GetList-Funktion wird verwendet, um die Werte in ColumnB basierend auf dem aktuellen Wert von ColumnA zu verketten. Die Parameter der GetList-Funktion sind:

    • Unterabfrage: SELECT ColumnB FROM Table1 AS T1 WHERE T1.ColumnA = " & [T].[ColumnA]
    • Anfangswert: „“ (leerer String)
    • Verkettungstrennzeichen: „,“ (Komma und Leerzeichen)
  3. Die GROUP BY-Klausel gruppiert Datensätze nach ColumnA, um sicherzustellen, dass die verketteten Werte korrekt gruppiert werden.

Das obige ist der detaillierte Inhalt vonWie kann ich Zeilen in MS Access basierend auf einer Gruppierungsspalte verketten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn