Combinaison de plusieurs lignes en une seule valeur dans les requêtes MS Access
Ce guide présente deux méthodes pour concaténer plusieurs lignes en une seule valeur dans une requête MS Access, basée sur un champ partagé. Les méthodes utilisent soit une fonction personnalisée, soit des fonctions d'agrégation intégrées.
Méthode 1 : Utilisation d'une fonction personnalisée (GetList)
Cette approche nécessite la création d'une fonction VBA. La requête appelle ensuite cette fonction pour effectuer la concaténation.
Voici la structure de la requête :
<code class="language-sql">SELECT ColumnA, GetList("SELECT ColumnB FROM Table1 WHERE ColumnA = " & [ColumnA], "", ", ") AS ColumnB FROM Table1 GROUP BY ColumnA;</code>
La fonction GetList
(définie dans un module VBA) parcourt les lignes partageant la même valeur ColumnA
et concatène leurs valeurs ColumnB
correspondantes, en utilisant une virgule comme délimiteur. Vous pouvez facilement modifier ce délimiteur.
Méthode 2 : Utilisation de la fonction d'agrégation de liste intégrée
Cette méthode exploite la fonction List
intégrée pour une solution plus simple et sans code.
La requête est :
<code class="language-sql">SELECT ColumnA, List(ColumnB) AS ColumnB FROM Table1 GROUP BY ColumnA;</code>
La fonction List
concatène automatiquement les valeurs ColumnB
pour chaque valeur ColumnA
unique. Notez que le délimiteur utilisé par List
peut varier en fonction de vos paramètres d'accès.
Données et résultats illustratifs
Considérez cet exemple de données :
ColumnA | ColumnB |
---|---|
1 | abc |
1 | pqr |
1 | xyz |
2 | efg |
2 | hij |
3 | asd |
Les deux méthodes produiront le résultat suivant :
ColumnA | ColumnB |
---|---|
1 | abc, pqr, xyz |
2 | efg, hij |
3 | asd |
Personnalisation du délimiteur
Ajustez le délimiteur dans les paramètres de la fonction GetList
(Méthode 1) ou potentiellement via les paramètres régionaux (Méthode 2) pour utiliser un séparateur différent (par exemple, point-virgule, espace).
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!