2013-04-05 63 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