/ / Conversion de plusieurs lignes en une seule ligne avec plusieurs colonnes - sql, ms-access

Conversion de plusieurs lignes en une seule ligne avec plusieurs colonnes - sql, ms-access

J'ai une table qui a plusieurs lignes pour unCARD_ID distinct répertoriant les différents rôles attribués à ce CARD_ID. "J'aimerai avoir une requête qui crée une seule ligne pour chaque CARD_ID distinct comportant plusieurs colonnes énumérant les différents rôles. Voir l'image pour un exemple de table en cours. Les doublons sont mis en évidence.

entrer la description de l'image ici

Je voudrais donc une ligne pour CARD_IDs 1-10, avec des colonnes dans chaque ligne pour Cardholder, Reconciler et Approver.

Si un CARD_ID particulier n’a pas l’un de ces rôles, je peux accepter que ce champ soit nul ou ait un autre type d’indicateur.

Réponses:

0 pour la réponse № 1

Une méthode d'agrégation conditionnelle:

select card_id,
max(iif(role = "Reconciler", col, NULL)) as reconciler_col,
max(iif(role = "Approver", col, NULL)) as approver_col,
max(iif(role = "Cardholder", col, NULL)) as cardholder_col
from t
group by card_id;

col est une colonne que vous souhaitez faire pivoter. Vous pouvez ajouter plusieurs colonnes, en ajoutant simplement max(iif . . .) au select.