Здесь много вопросов об именовании столбца переменной, я не верю, что это дубликат, поскольку я хотел бы использовать расчет.Рассчитанная дата как имя столбца SQL Server 2008
Я хотел бы назвать свою колонку после предыдущего месяца. Я бы ожидать, что это работает:
SELECT isnull(sum(CASE when datepart(mm,rc.datetime) = DATEPART(MONTH, GETDATE()) -1 then 1 else null end),0) AS datename(MM, dateadd(MM, -1, getdate()))
или для читаемости:
... AS datename(MM, dateadd(MM, -1, getdate()))
Но это не так, я получаю неправильный синтаксическую ошибку. Возможно ли это? Заранее благодарим за предоставленную помощь.
только с динамическим SQL – Squirrel
Изменение имени столбца динамически собирается вызвать ряд проблемы в будущем. Возможно, с лучшим пониманием того, что вы действительно пытаетесь сделать здесь, мы могли бы помочь найти лучшее решение. В противном случае динамические параметры sql, уже опубликованные, должны работать нормально. –
Еще один комментарий состоит в том, что я предпочитаю избегать сокращений для деталей даты, но если вы собираетесь их использовать, вы должны быть последовательными. В некоторых местах вы используете MM и другие месяцы. http://sqlblog.com/blogs/aaron_bertrand/archive/2011/09/20/bad-habits-to-kick-using-shorthand-with-date-time-operations.aspx –