我目前有以下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会有结果。
有人可以告诉我如何动态地显示具有值的列吗?
谢谢