枢轴生成类似矩阵的输出而无需聚合函数

Pivot to produce Matrix like output without aggregate function

我有三张表。

周期表(总是最近 4 年)

**ID   Year**  
1     2016      
2     2017  
3     2018  
4     2019

StatusTable(总是四个状态)

**ID   Status**  
1     Completed      
2     Open  
3     New  
4     Declained

事务表

**Year  AccountName  TotalAmount    Status**    
2019    King         1000000.00     Declained   
2019    BlueBird     3800000.00     Completed      
2018    Heartly Inc  250000.00      Open        
2016    ABB Data     1500000.00     Completed       
2016    Delta        500000.00      Declained

预期输出: 总号来自 TransactionTable * 4 年的状态。在本例中为 20 行。

**Year  AccountName  TotalAmount    Status**    
2019    King         1000000.00     Declained   
2019    BlueBird     3800000.00     Completed
2019    NULL            NULL        Open        
2019    NULL            NULL        Completed       
2019    NULL            NULL        Declained      
2018    NULL            NULL        Declained   
2018    NULL            NULL        Completed      
2018    Heartly Inc  250000.00      Open        
2018    NULL            NULL        Completed       
2018    NULL            NULL        Declained
2017    NULL            NULL        Declained   
2017    NULL            NULL        Completed      
2017    NULL            NULL        Open        
2017    NULL            NULL        Completed       
2017    NULL            NULL        Declained
2016    NULL            NULL        Declained   
2016    NULL            NULL        Completed      
2016    NULL            NULL        Open        
2016    ABB Data     1500000.00     Completed       
2016    Delta        500000.00      Declained

我尝试了 google 的许多解决方案,但没有任何效果。 是否可以通过 pivot 函数实现,因为我这里不需要聚合选项。

尝试这样的事情:

select 
    p.Year, 
    case when p.Year <> t.Year then null else t.AccountName end as AccountName, 
    case when p.Year <> t.Year then null else t.TotalAmount end as TotalAmount, 
    t.Status
from #period as p
cross join #trans as t
order by p.Year desc

您可以在 SQL Fiddle

进行测试