От личного опыта svn был бы моей рекомендацией. Можно даже использовать сервис как Бобовый стебель , который предлагает бесплатные учетные записи (с пределами, очевидно, но достаточный для любого небольшого проекта) для тестирования вод. Но поскольку другие сказали, мерзавец выше и вероятен стоящий изучения.
Вы можете объявить табличную переменную (Объявление переменной типа table):
declare @MonthsSale table(monthnr int)
insert into @MonthsSale (monthnr) values (1)
insert into @MonthsSale (monthnr) values (2)
....
Вы можете добавлять дополнительные столбцы по своему усмотрению:
declare @MonthsSale table(monthnr int, totalsales tinyint)
Вы можете обновлять табличную переменную, как любую другую таблицу :
update m
set m.TotalSales = sum(s.SalesValue)
from @MonthsSale m
left join Sales s on month(s.SalesDt) = m.MonthNr
Есть ли причина, по которой вы не используете табличную переменную и агрегатный оператор SUM вместо курсора? SQL отлично справляется с операциями, ориентированными на наборы. В 99,87% случаев, когда вы обнаруживаете, что используете курсор, есть более эффективная альтернатива, ориентированная на набор:
declare @MonthsSale table
(
MonthNumber int,
MonthName varchar(9),
MonthSale decimal(18,2)
)
insert into @MonthsSale
select
1, 'January', 100.00
union select
2, 'February', 200.00
union select
3, 'March', 300.00
union select
4, 'April', 400.00
union select
5, 'May', 500.00
union select
6, 'June', 600.00
union select
7, 'July', 700.00
union select
8, 'August', 800.00
union select
9, 'September', 900.00
union select
10, 'October', 1000.00
union select
11, 'November', 1100.00
union select
12, 'December', 1200.00
select * from @MonthsSale
select SUM(MonthSale) as [TotalSales] from @MonthsSale
T-SQL не поддерживает массивы, о которых я знаю.
Какая у вас структура таблицы? Вероятно, вы могли бы разработать запрос, который будет делать это вместо этого:
select
month,
sum(sales)
from sales_table
group by month
order by month