2017-05-04 1 views
0

question Débutant:SQL: PIVOT avec JOIN

Je tableau ci-dessous

Period Customer Balance 
40  1  10 
40  2  15 
39  1  9 
38  1  10 
38  2  20 

Je voudrais commander pour que j'ai une colonne pour chaque période,

Customer BalancePeriod38 BalancePeriod39 BalancePeriod40 
1    10    9    10 
2    15    .    20 

Est cela est-il possible?

+0

Son appelé PIVOT. Des millions de messages sur le sujet à propos de chaque SGBDR. – dfundako

Répondre

1

Vous pouvez pivot les données en utilisant l'agrégation avec le cas:

select customer, 
    sum(case when period = 38 then balance else 0 end) as balance_period_38, 
    sum(case when period = 39 then balance else 0 end) as balance_period_39, 
    sum(case when period = 40 then balance else 0 end) as balance_period_40 
from your_table 
group by customer;