/ / Conversione di più righe in una singola riga con più colonne - sql, ms-access

Conversione di più righe in una singola riga con più colonne - sql, ms-access

Ho una tabella che ha più righe per aCARD_ID distinto che elenca i diversi ruoli assegnati a tale CARD_ID. Mi piacerebbe avere una query che crei una singola riga per ogni CARD_ID distinto che ha più colonne che elencano i diversi ruoli.Vedi l'immagine per esempio della tabella corrente.I duplicati sono evidenziati.

inserisci la descrizione dell'immagine qui

Quindi, mi piacerebbe una riga per CARD_IDs 1-10, con colonne in ogni riga per titolare della carta, riconciliatore e approvatore.

Se un particolare CARD_ID non ha uno di questi ruoli, sono d'accordo che il campo sia nullo o che abbia un altro tipo di indicatore.

risposte:

0 per risposta № 1

Un metodo per l'aggregazione condizionale:

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 è una colonna che vuoi ruotare. Puoi aggiungere più di una colonna aggiungendo altro max(iif . . .) al select.