我的表有2列,我想将两个日期参数,即StartDate
和End Date
传递给我的存储过程。
假设我将其传递给31-Jan-2014
和20-Feb-2014
。在这两个日期之间有将近三个星期,我希望显示三个星期到指定日期和之前三年的数据。
Date---------------- Sales(2014)-------- Sales(2013)--------Sales(2012)------ Sales(2011)
20-Feb-2014 100$ 140$ 150$ 900$
19-Feb-2014 100$ 140$ 150$ 900$
18-Feb-2014 100$ 140$ 150$ 900$
17-Feb-2014 100$ 140$ 150$ 900$
.
.
.
1-Feb-2014 100$ 140$ 150$ 900$
31-Jan-2014 120$ 150$ 123$ 200$
答案 0 :(得分:0)
这可能不是最好的方法,但我会这样做。您没有提到此查询中是否存在任何聚合,因此如果您正在运行总和,则需要更改
Select [DATE], Sales(2014) ,
(Select Sales from dbo.table as t_minus_one_year where Year([DATE]) = Year(@StartDate) - 1) as Sales(2013),
(Select Sales from dbo.table as t_minus_two_years where Year([DATE]) = Year(@StartDate) - 2) as Sales(2012),
(Select Sales from dbo.table as t_minus_three_years where Year([DATE]) = Year(@StartDate) - 3) as Sales(2011)
from dbo.table as t2014 where date between @StartDate and @Enddate