【发布时间】:2016-06-06 07:24:54
【问题描述】:
我在 SO 和其他地方搜索了许多解决方案,但不太明白如何为我的问题编写查询。
无论如何我的查询如下所示
SELECT * FROM
(
SELECT Id, Date, Name, Amount,
CASE
WHEN DATEDIFF(DAY,Date,GETDATE()) <=0
THEN 'Current'
WHEN DATEDIFF(DAY,Date,GETDATE()) <30
THEN 'Due30'
WHEN DATEDIFF(DAY,Date,GETDATE()) <60
THEN 'Due60'
ELSE 'Due90'
END AS [Age]
FROM Statement
WHERE (Amount <> 0)
) AS S
PIVOT
(
SUM(Amount)
FOR[Age] IN ([Current],[Due30],[Due60],[Due90])
) P
结果是这样的
Id Date Name Current Due30 Due60 Due90
----------- ---------- --------------------------------------------
1 2016-04-03 Alan NULL NULL NULL 110.00
2 2016-05-02 TC NULL NULL 30.00 NULL
我应该在哪里插入IsNull 条件才能删除结果中的null 并在那里添加一个零。
我尝试在数据透视查询中插入IsNull,但我们都知道这不起作用
【问题讨论】:
标签: sql sql-server pivot case isnull