C'est ce qu'on appelle un tableau croisé dynamique. C'est un peu difficile à produire :
SELECT ID,
MAX(CASE Type WHEN 202 THEN Degignation END) AS `202`
MAX(CASE Type WHEN 234 THEN Degignation END) AS `234`
MAX(CASE Type WHEN 239 THEN Degignation END) AS `239`
Email
FROM mytable
GROUP BY ID, Email
Notez que vous devez connaître tous les Type
distincts valeurs avant d'écrire la requête. SQL ne permet pas à un jeu de résultats d'ajouter dynamiquement des colonnes supplémentaires lorsqu'il découvre des valeurs de données dans la table. Les colonnes doivent être fixées au moment de la préparation de la requête.