2013-04-05 92 views
1

下面的代碼成功生成一個樞軸(所示代碼)轉換NULL值到0 SQL樞軸

select * 
from (
Select GLAccount , DC , Amount from AccountingTxns a where Acctno = '178523' 
) 
TableData 
pivot (
sum (Amount) 
for DC in ([D],[C]) 
) 
as SumAmountDC 
 
GLAccount    D  C 
InterestDue  3801.37 3731.68 
Cash   25600 25000 
IntReceivable 3801.37 3801.37 
IntIncome  NULL 3684.47 
IntOverdue  NULL 116.9 
Principal  25000 21868.32 

我如何擺脫的NULL(即其轉換爲0的)?

回答

2

使用COALESCE

SELECT GLAccount, 
     COALESCE(D, 0) D, 
     COALESCE(C, 0) C 
FROM 
     (
      SELECT GLAccount, 
        DC , 
        Amount 
      FROM AccountingTxns a 
      WHERE Acctno = '178523' 
     ) TableData 
     PIVOT 
     (
      SUM(Amount) 
      FOR DC IN ([D],[C]) 
     ) SumAmountDC 
+0

嘗試了不同的組合。所有錯誤。爲了澄清,列名是DC,它有D或C作爲值。某些GLAccounts沒有D或C,因此Pivot爲這些GLAccount提供了NULL總和。完整的更正的代碼可能會有幫助 – user1955215 2013-04-05 05:15:00

+0

看到我更新的答案。 – 2013-04-05 05:19:41

+0

謝謝。給出正確的結果。然而,一個小的更正。第二行最後一行應爲「FOR DC IN .....」。請更新。 – user1955215 2013-04-05 05:25:15