根据您所需的输出,以下解决方案之一应该适合您。我可能会更倾向于第二种解决方案,但这完全取决于您想看到的内容:
select
s2.month as 'C-MONTH',
s1.month as 'P-MONTH',
s2.amt as 'C-AMT',
s1.amt as 'P-AMT'
from
(
select
datepart(m, saledate) as month,
sum(SaleAmt) as amt
from
Sales
group by
datepart(m, saledate)
) s1,
(
select
datepart(m, saledate) as month,
sum(SaleAmt) as amt
from
Sales
group by
datepart(m, saledate)
) s2
where
s2.month = s1.month + 1
演示:http ://sqlfiddle.com/#!3/66ad9/1
select
s2.month as 'C-MONTH',
s1.month as 'P-MONTH',
s2.amt as 'C-AMT',
s1.amt as 'P-AMT'
from
(
select
datepart(m, saledate) as month,
sum(SaleAmt) as amt
from
Sales
group by
datepart(m, saledate)
) s1
right outer join
(
select
datepart(m, saledate) as month,
sum(SaleAmt) as amt
from
Sales
group by
datepart(m, saledate)
) s2
on
s2.month = s1.month + 1
演示:http ://sqlfiddle.com/#!3/7a670/1