новый для SQL и нужна помощь. Я пытаюсь использовать переменную в качестве заголовка столбца и перебирать суммы по определенному диапазону, который изменяется. Вот код ниже.Как классифицировать столбцы как переменную в SQL?
DECLARE @startmonth AS INT
DECLARE @endmonth AS INT
DECLARE @earnedpremiumyear AS INT
SET @startmonth = 200501
SET @endmonth = 200512
SET @earnedpremiumyear = 2005
WHILE @startmonth <= 201301
BEGIN
SELECT SUM(earnedpremium) AS @earnedpremiumyear
FROM dbo.Database
WHERE accountingmonth BETWEEN @startmonth AND @endmonth
AND earnedendingmonth BETWEEN @startmonth AND @endmonth
SET @startmonth = @startmonth + 100
SET @endmonth = @endmonth + 100
SET @earnedpremiumyear = @earnedpremiumyear + 1
END
Я хочу, чтобы это так, чтобы название суммы заработанной премии год, начиная с 2005 года и собираюсь до 2013 года Когда я запускаю этот код, я получаю эту ошибку:
Incorrect syntax near '@earnedpremiumyear'
поэтому я определенно называю переменную неправильной. Может ли кто-нибудь помочь?
Кроме того, как мне сделать так, чтобы вместо создания таблицы для каждого года сумма составляла всего одну таблицу в одном столбце или строке?
Спасибо!
Во-первых, +1 за подробный вопрос и примеры кода. Благодаря этому мы можем видеть ваши общие навыки и цели. Во-вторых, создание динамических имен для столбцов, как вы просите, обычно не является хорошей идеей и поражает некоторые из лучших преимуществ реляционной базы данных. Слишком сложно подавать вывод в таблицы или другие системы. Лучший подход - сделать второй столбец под названием «год» и рассчитать свой год там. Я рекомендую предложение Ахиггинса ниже. – PowerUser