我在这里有一个选择声明:
select
sum(CreditValue) as Right(YEAR(DATEADD(month, -13, GETDATE())), 2)
from
OrderHeader
如您所见,我想根据今天的日期将列的显示名称修改为年份的最后2位数。然而,系统一直告诉我这个:
'右'附近的语法不正确。期待ID,QUOTED_ID,STRING或TEXT_LEX。
有没有让查询可以运行?非常感激!
答案 0 :(得分:1)
由于您的列名称是动态的,因此您可以尝试使用如下所示的动态查询:
DECLARE @query VARCHAR(2000)
SELECT @query = 'select ' + CONVERT(VARCHAR(20), SUM(CreditValue)) +' as ' + '''' + CONVERT(VARCHAR(2), Right(YEAR(DATEADD(month, -13, GETDATE())), 2)) + ''''
from OrderHeader
EXEC(@query)