我有一个类似于以下的表结构:
CREATE TABLE #temp
(
period_id INTEGER ,
lease_id INTEGER ,
charge_id VARCHAR(20) ,
charge_amount MONEY
)
INSERT INTO #temp
( period_id ,
lease_id ,
charge_id ,
charge_amount
)
VALUES ( 100 , -- period_id - integer
2000 , -- lease_id - integer
'300' , -- charge_id - varchar(20)
12345 -- charge_amount - money
) ,
( 101 , -- period_id - integer
2000 , -- lease_id - integer
'300' , -- charge_id - varchar(20)
678910 -- charge_amount - money
) ,
( 101 , -- period_id - integer
2002 , -- lease_id - integer
'300' , -- charge_id - varchar(20)
78950 -- charge_amount - money
) ,
( 101 , -- period_id - integer
2002 , -- lease_id - integer
'310' , -- charge_id - varchar(20)
9002 -- charge_amount - money
)
我想要一个如下所示的输出:
我相信我可以通过创建一系列 cte 并不断参考源表来实现这一目标,但是我认为这不是一个很好的解决方案,因为我有很多这些收费代码,并且预计会添加新的将来(并且每次发生这种情况时都必须更新查询将是一种糟糕的做法)。我已经研究了 pivot 功能,但我不明白如何使用它,我想了解如何在这种情况下应用它,以便我可以将它添加到我的武器库中。