sql合并两个table并格式化

sql merge two table and format

TABLE SRN

id ACC DEPART
1 A IT
2 A FINANCE
3 A AEROSPACE
4 B IT
5 B FINANCE
6 B AEROSPACE

Table TRN

id ACC IT POPULATION FINANCE POPULATION AEROSPACE POPULATION
1 A 10 20 30
2 B 95 105 110

最终结果

ACC DEPART IT POPULATION FINANCE POPULATION AEROSPACE POPULATION
A IT 10 0 0
A FINANCE 0 20 0
A AEROSPACE 0 0 30
B IT 95 0 0
B FINANCE 0 105 0
B AEROSPACE 0 0 110

如何格式化表格以获得最终结果。我尝试使用左连接,但不确定如何将格式更改为所需的结果。

您可以将 left joincase 一起使用:

select s.acc, 
       s.depart,
       case when s.depart = "IT" then t.it_pop else 0 end `IT POPULATION`,
       case when s.depart = "FINANCE" then t.fin_pop else 0 end `FINANCE POPULATION`,
       case when s.depart = "AEROSPACE" then t.aer_pop else 0 end `AEROSPACE POPULATION`
from srn s left join trn t on s.acc = t.acc;