Crie dinamicamente colunas sql

Eu tenho uma tabela de clientes

Customer ID        Name         
   1               John        
   2               Lewis        
   3               Mary         

Eu tenho outra mesa CustomerRewards

 TypeID           Description
   1                Bronze
   2                Silver
   3                Gold
   4               Platinum
   5               AnotherOne

E a mesa final

 RewardID          TypeID          CustomerID
    1                1                 1
    2                1                 1
    3                2                 1
    4                2                 2

A tabela customerTypes é dinâmica, muitos desses tipos podem ser adicionados e removidos. Basicamente tudo que eu quero é que as colunas sejam geradas dinamicamente e uma contagem em cada, algo como

CustomerName        Bronze        Silver     Gold      Platinum     AnotherOne    total
   John               2             1         0           0             0           3
   Lewis              0             1         0           0             0           1
 Grand TOTAL          2             2         0           0             0           4

O problema como eu disse é que os tipos são dinâmicos e os clientes são dinâmicos, então eu preciso que as colunas sejam dinâmicas dependendo dos tipos no sistema

Eu tenho marcado c # como eu preciso disso em um DataGridView

desde já, obrigado

questionAnswers(1)

yourAnswerToTheQuestion