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.
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 № 1Un 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
.