如何在数据透视查询中不返回空列

时间:2016-09-10 15:04:15

标签: sql sql-server pivot

我目前有以下SQL服务器查询:

SELECT * FROM 
(
SELECT CustomerID,LEFT(Time,4) Month,SUM(Amount) Amount FROM Payment
Group by CustomerID,Time
) as s
PIVOT
(
SUM(Amount)
For [Month] In (jan, feb, mar, apr, 
may, jun, jul, aug, sep, oct, nov, dec)
)AS pvt

返回以下结果:

CustomerID  jan feb mar apr may jun jul aug sep oct nov dec
3482    NULL    NULL    NULL    NULL    120 NULL    195 NULL    NULL    NULL    NULL    NULL
30249   NULL    NULL    NULL    NULL    NULL    NULL    NULL    70  NULL    35  NULL    NULL
1073743410  NULL    NULL    NULL    60  NULL    NULL    530.5   NULL    653.95  NULL    NULL    20
1073743628  NULL    NULL    NULL    NULL    NULL    50  57.46   NULL    NULL    NULL    35  NULL
1073743632  NULL    NULL    NULL    NULL    NULL    NULL    50  NULL    NULL    NULL    NULL    NULL

在这个例子中,列" jan"," feb"和" mar"没有结果(所有值都是NULL),所以他们不应该显示。但是,当我运行查询时,我不确定哪些列将是或将不为空。有时" oct"可能没有结果,而jan会有结果。

有人可以告诉我如何动态地显示具有值的列吗?

谢谢

0 个答案:

没有答案