Heim >Datenbank >MySQL-Tutorial >Wie kann ich Zeilen in MS Access basierend auf einer Gruppierungsspalte verketten?
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
Äußere Abfrage (SELECT T.ColumnA) ruft eindeutige Werte in ColumnA ab.
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:
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!