; with numbers
as
(
select num = 0
union all
select num = num + 1
from numbers
where num < 9
),
result
as
(
select num1 = n.num, num2 = m.num, m.multiply
from numbers n
cross apply
(
select x.num, multiply = n.num * x.num
from numbers x
where x.num <= n.num
) m
)
select [0], [1], [2], [3], [4], [5], [6], [7], [8], [9]
from result
pivot
(
sum(multiply)
for num2 in ([0], [1], [2], [3], [4], [5], [6], [7], [8], [9])
) p
/*
0 1 2 3 4 5 6 7 8 9
----------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- -----------
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL
0 1 NULL NULL NULL NULL NULL NULL NULL NULL
0 2 4 NULL NULL NULL NULL NULL NULL NULL
0 3 6 9 NULL NULL NULL NULL NULL NULL
0 4 8 12 16 NULL NULL NULL NULL NULL
0 5 10 15 20 25 NULL NULL NULL NULL
0 6 12 18 24 30 36 NULL NULL NULL
0 7 14 21 28 35 42 49 NULL NULL
0 8 16 24 32 40 48 56 64 NULL
0 9 18 27 36 45 54 63 72 81
(10 row(s) affected)
*/
KH
Time is always against us