0
我是一个新的透视函数,我试图用它来创建具有现有数据的新列。在这种情况下,这些列应基于当前月份和整个年份的每个月的数据。字段Months
包含YYYYMM格式的月份。SQL - 在透视函数中显示当前和未来几个月的数据
我使用下面的查询:
SELECT *
FROM (
SELECT
[Num]
,[Channel]
,[Months]
,[Currency]
,[Value]
FROM [Test].[dbo].[Decision_Details]
WHERE
(Key_Name = 'Decision'
OR Key_Name = 'LastCycle')
) as s
PIVOT
(
SUM([Value])
FOR [Months] IN ([201705], [201706], [201708], [201709], [201710], [201711], [201712])
)AS pvt
而且收到以下输出:
这是正确的输出,但我需要的列是基于从数据当前月份(201705)及以后,而不是硬编码。
我已经尝试将LEFT(CONVERT(varchar, GetDate(),112),6)
添加到数据透视查询,但它似乎没有按照我希望的方式工作。
关于如何将这个到我的查询中的任何建议?
更新:
管理使用动态数据透视每月获得:
一个SQL查询返回的固定列名。如果您想要灵活的名称,则需要使用动态SQL。尝试使用Google搜索:“SQL Server动态数据透视表”。 –
谢谢,我会研究这个! – krynil