Joindre des lignes dans une requête MS Access
Présentation
Cet article explore les défis rencontrés dans Microsoft Access lorsque l'on tente de joindre les valeurs de la deuxième colonne dans un tableau basé sur la première colonne. Notre objectif est de réaliser cette transformation grâce aux requêtes.
Question
Considérons un tableau contenant les données suivantes :
ColumnA | ColumnB |
---|---|
1 | abc |
1 | pqr |
1 | xyz |
2 | efg |
2 | hij |
3 | asd |
Notre objectif est de concaténer les valeurs de ColumnB en une seule chaîne séparée par des virgules pour chaque valeur unique de ColumnA. Le résultat souhaité est le suivant :
ColumnA | ColumnB |
---|---|
1 | abc, pqr, xyz |
2 | efg, hij |
3 | asd |
Solution
Pour réaliser cette connexion, nous utilisons une fonction personnalisée appelée "GetList". Cette fonction accepte une requête SQL comme paramètre et parcourt le jeu d'enregistrements renvoyé par la requête, concaténant les valeurs en une seule chaîne.
Ce qui suit est une requête contenant la fonction « 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>
Description
La requête externe (SELECT T.ColumnA) récupère des valeurs uniques dans ColumnA.
La fonction GetList est utilisée pour concaténer les valeurs de ColumnB en fonction de la valeur actuelle de ColumnA. Les paramètres de la fonction GetList sont :
La clause GROUP BY regroupe les enregistrements par ColonneA pour garantir que les valeurs concaténées sont correctement regroupées.
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!