Kombinieren mehrerer Zeilen zu einem einzigen Wert in MS Access-Abfragen
Diese Anleitung demonstriert zwei Methoden zum Verketten mehrerer Zeilen zu einem einzigen Wert innerhalb einer MS Access-Abfrage, basierend auf einem gemeinsamen Feld. Die Methoden verwenden entweder eine benutzerdefinierte Funktion oder integrierte Aggregatfunktionen.
Methode 1: Verwenden einer benutzerdefinierten Funktion (GetList)
Dieser Ansatz erfordert die Erstellung einer VBA-Funktion. Die Abfrage ruft dann diese Funktion auf, um die Verkettung durchzuführen.
Hier ist die Abfragestruktur:
<code class="language-sql">SELECT ColumnA, GetList("SELECT ColumnB FROM Table1 WHERE ColumnA = " & [ColumnA], "", ", ") AS ColumnB FROM Table1 GROUP BY ColumnA;</code>
Die Funktion GetList
(definiert in einem VBA-Modul) durchläuft Zeilen mit demselben ColumnA
-Wert und verkettet ihre entsprechenden ColumnB
-Werte unter Verwendung eines Kommas als Trennzeichen. Sie können dieses Trennzeichen ganz einfach ändern.
Methode 2: Verwenden der integrierten Listenaggregationsfunktion
Diese Methode nutzt die integrierte List
-Funktion für eine einfachere, codefreie Lösung.
Die Abfrage lautet:
<code class="language-sql">SELECT ColumnA, List(ColumnB) AS ColumnB FROM Table1 GROUP BY ColumnA;</code>
Die List
-Funktion verkettet automatisch ColumnB
-Werte für jeden eindeutigen ColumnA
-Wert. Beachten Sie, dass das von List
verwendete Trennzeichen je nach Ihren Access-Einstellungen variieren kann.
Anschauliche Daten und Ergebnisse
Bedenken Sie diese Beispieldaten:
ColumnA | ColumnB |
---|---|
1 | abc |
1 | pqr |
1 | xyz |
2 | efg |
2 | hij |
3 | asd |
Beide Methoden führen zu folgendem Ergebnis:
ColumnA | ColumnB |
---|---|
1 | abc, pqr, xyz |
2 | efg, hij |
3 | asd |
Anpassen des Trennzeichens
Passen Sie das Trennzeichen innerhalb der GetList
-Funktionsparameter (Methode 1) oder möglicherweise über regionale Einstellungen (Methode 2) an, um ein anderes Trennzeichen (z. B. Semikolon, Leerzeichen) zu verwenden.
Das obige ist der detaillierte Inhalt vonWie kann ich in einer MS Access-Abfrage mehrere Zeilen zu einem einzigen Wert verketten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!