我想在結果表中將這些NULL值設置爲零。到目前爲止我找不到任何解決方案。如何擺脫空值表左外部連接數據透視表
(A)
CREATE TABLE ##Temp1
(
tmp_id varchar(8),
tmp_ac varchar(5),
tmp_amt decimal(15,2)
)
Record :
id ac amt
1 30100 100.00
2 30400 300.00
3 30500 500.00
(B)創建的動態柱樞軸表:左外連接表A至表樞軸
declare @cols as varchar(max)
declare @query as varchar(max)
select @cols = ISNULL(@cols + ',','') + '[' + tmp_ac + ']' from ##Temp1 order by tmp_ac
set @query = 'select tmp_id, '+ @cols + ' into ##TempPV from
(
select tmp_id, tmp_ac, isnull(tmp_amt,0) as tmp_amt
from ##Temp1
) x
pivot
(
sum(tmp_amt)
for tmp_ac in (' + @cols + ')
) p'
exec (@query)
(C):
select
##TempA.f_id as [ID],
##TempPV.*
from ##TempA
left outer join ##TempPV
on ##TempA.f_id = tmp_id
order by f_id
( D)結果:
Id 30100 30400 30500
1 100.00 NULL NULL
2 NULL 300.00 NULL
3 NULL NULL 500.00
4 NULL NULL NULL
5 NULL NULL NULL
(E)期待結果:
Id 30100 30400 30500
1 100.00 0.00 0.00
2 0.00 300.00 0.00
3 0.00 0.00 500.00
4 0.00 0.00 0.00
5 0.00 0.00 0.00
因爲標識的我們得到空當您正在使用的ID – mohan111
加入他們,我必須包括## TEMPA的所有記錄。這就是爲什麼我必須顯示來自## TempA的所有Id。 –
其中id 4和5來自哪裏? –