【发布时间】:2017-03-31 11:51:49
【问题描述】:
您好,有人可以帮帮我吗,我想创建一个带有月份参数的脚本,我需要的结果是接下来 12 个月的名称作为列标题。
例如,如果参数是二月,结果应该是:
March | April | May | June | July | August | September | October | November | December | January | February |
作为我想在稍后阶段用来填充值的列名。 有人可以就这一点给我建议以及如何实现这一点
到目前为止,我的脚本不知道如何处理这个
declare @MonthParam varchar(20) = 'March'
declare @MonthNumber int = (
Select CASE WHEN @MonthParam = 'January' THEN 1
WHEN @MonthParam = 'February' THEN 2
WHEN @MonthParam = 'March' THEN 3
WHEN @MonthParam = 'April' THEN 4
WHEN @MonthParam = 'May' THEN 5
WHEN @MonthParam = 'June' THEN 6
WHEN @MonthParam = 'July' THEN 7
WHEN @MonthParam = 'August' THEN 8
WHEN @MonthParam = 'September' THEN 9
WHEN @MonthParam = 'October' THEN 10
WHEN @MonthParam = 'November' THEN 11
WHEN @MonthParam = 'December' THEN 12
END)
WHILE(@MonthNumber < 13)
BEGIN
declare @month varchar(20) = DateName( month , DateAdd( month , @MonthNumber , 0 ) - 1 )
declare @sql varchar(max)
set @sql = 'select val as ' + @month + ' from t'
exec (@sql)
SET @MonthNumber = @MonthNumber + 1;
END
【问题讨论】:
-
您使用的是哪个 dbms?您尝试了什么 - 向我们展示您当前的查询尝试。
-
我正在使用 sql 2008 R2,到目前为止我有以下脚本,但我希望它在一个结果集中
-
I have the following script...脚本在哪里? -
我将添加我的脚本作为答案,它太大了
-
不!将其添加到您的问题中。
标签: sql sql-server sql-server-2008-r2 pivot