2012-05-22 6 views
0

Я хочу использовать, что я объявляю локальную переменную как в пункте, , напримерT-SQL Использование локальной переменной подобно, как п

я получить в прошлом году и в текущем году

declare @lastYear varchar(4)=datepart(YEAR,DATEADD(year,-1,GETDATE())); 
declare @currentYear varchar(4)=datepart(YEAR,DATEADD(year,0,GETDATE())); 

и

я хочу использовать подобно выше,

select a.totalCountLy as @lastYear, 
a.totalCountLy as @currentYear from TableName as a (nolock 

И результат, как

2011   2012 
------------------ 
1000   5000 
400   1000 

Любые предложения. Спасибо.

+1

Динамический SQL - единственный способ. Тот факт, что вы хотите сделать это, заставляет меня думать, что вы должны рассмотреть, что вы делаете. – SQLMason

+0

@ DanAndrews, я думал, может быть другим способом. Спасибо за ваш ответ. – engcmreng

ответ

1

Как насчет этого, используя динамический SQL?

declare @lastYear varchar(4)=datepart(YEAR,DATEADD(year,-1,GETDATE())); 

declare @sql nvarchar(max) = 
    N'select a.total as [' + convert(nvarchar(24), @lastYear) + N'] from TableName as a' 

exec sp_executesql @sql 
+0

спасибо @ Фил, этот способ удобен, но я думал (или любопытно :)), может быть, я использую обычный запрос t-sql. – engcmreng

+0

@engcmreng: динамический sql - единственный способ сделать то, что вы просите. – Phil

+0

, спасибо за ваше предложение. – engcmreng

 Смежные вопросы

  • Нет связанных вопросов^_^