/****** Script for SelectTopNRows command from SSMS ******/
declare @ActivityYear int = 2014
declare @ActivityYear1 int = 2015
declare @ActivityMonth int = 1
declare @ActivityMonth1 int = 3
Select FinancialCategory, ID, (CONVERT(varchar(5), ActivityMonth) + '-'
+ CONVERT(varchar(5), ActivityYear)) As [Month-Year], Sum(HoursCharged) As [Hours]
FROM Forecast
where (ActivityMonth between @ActivityMonth and @ActivityMonth1)
AND (ActivityYear between @ActivityYear and @ActivityYear1)
AND FinancialCategory = 'Forecast'
Group By FinancialCategory, ID,ActivityMonth, ActivityYear
Это Выдает таблицу, которая выглядит следующим образом: Сводные строки в столбцы Динамически - SQL
И я хотел бы перенести его, чтобы иметь часы для каждого ID разразившегося по датам в диапазоне , Примечание: этот диапазон дат будет динамичным, я устанавливаю начальные даты для целей тестирования.
Я получаю сообщение об ошибке: Должен объявить скалярную переменную "@ActivityMonth". Я посмотрю на это завтра утром. – Megan
ah Я вижу, что исправлена эта ошибка, которую я получаю: Конверсия завершилась неудачно при преобразовании значения nvarchar ' \t SELECT FinancialCategory, SID, [1-2014], [1-2015], [2-2014], [2-2015 ], [3-2014], [3-2015] оТ ( ВЫБОР FinancialCategory, SID, ActivityMonth, ActivityYear, HoursCharged прогнозируемого где (ActivityMonth между "к типу данных Int. – Megan
я нашел решение! я удалил where в '@query', тогда я получил синтаксическую ошибку, поэтому я изменил инструкцию SELECT в '@query', чтобы включить конверсии ... Я отредактирую ваше решение с моей ... Спасибо! – Megan