create table tab(日期 datetime,销售额 int)
go
declare @i int
set @i=1
while @i<=90
begin
insert tab(日期,销售额)
values(dateadd(day,@i,'2007-03-01'),@i*10)
set @i=@i+1
end
go
select * from tab
godeclare @bDate datetime
declare @eDate datetimeset @bDate='2007-05-01'
set @eDate='2007-05-30'
select a.日期,a.销售额,[上月销售额]=b.销售额,[上两月销售额]=c.销售额
from tab a,
(select 日期=dateadd(month,1,日期),销售额 from (select 日期,销售额 from tab where 日期 between dateadd(month,-1,@bDate) and dateadd(month,-1,@eDate)) k) b,
(select 日期=dateadd(month,2,日期),销售额 from (select 日期,销售额 from tab where 日期 between dateadd(month,-2,@bDate) and dateadd(month,-2,@eDate)) k) c
where a.日期=b.日期 and a.日期=c.日期 and a.日期 between @bDate and @eDate
go
go
declare @i int
set @i=1
while @i<=90
begin
insert tab(日期,销售额)
values(dateadd(day,@i,'2007-03-01'),@i*10)
set @i=@i+1
end
go
select * from tab
godeclare @bDate datetime
declare @eDate datetimeset @bDate='2007-05-01'
set @eDate='2007-05-30'
select a.日期,a.销售额,[上月销售额]=b.销售额,[上两月销售额]=c.销售额
from tab a,
(select 日期=dateadd(month,1,日期),销售额 from (select 日期,销售额 from tab where 日期 between dateadd(month,-1,@bDate) and dateadd(month,-1,@eDate)) k) b,
(select 日期=dateadd(month,2,日期),销售额 from (select 日期,销售额 from tab where 日期 between dateadd(month,-2,@bDate) and dateadd(month,-2,@eDate)) k) c
where a.日期=b.日期 and a.日期=c.日期 and a.日期 between @bDate and @eDate
go
解决方案 »
- 求一sql!谢谢
- 有20个字段,想根据其中的一个字段客户来统计汇总,求帮助
- 关于SQL server 语句的挑错
- 如何根据复合查询条件建立索引
- : 大量INSERT语句插入数据库 求解决方案(XML写入数据库的会的也请进来看下)
- 一个简单的sql问题
- 在SQL SERVER获得一张表中共有多少条记录的SQL语句怎样写?
- 邹建兄弟,请进来一下
- SQL SERVER2000支持EJB么?
- 这样的SQL语句:select a1,a2 from a where purchase_date>'2001.01.01' 在ACCESS中怎么写?
- 在sql中如何实现象EXCEL中的这个计算公式,哪位大佬能帮忙解决这个问题,100分送上,不够再加!
- SQL SERVER 2005 群集重新安装的问题,急!!
declare @eDate datetimeset @bDate='2007-05-01'
set @eDate='2007-05-30'
select a.日期,a.销售额,[上月销售额]=isnull(b.销售额,0),[上两月销售额]=isnull(c.销售额,0)
from tab a
left join
(select 日期=dateadd(month,1,日期),销售额 from (select 日期,销售额 from tab where 日期 between dateadd(month,-1,@bDate) and dateadd(month,-1,@eDate)) k) b on a.日期=b.日期
left join
(select 日期=dateadd(month,2,日期),销售额 from (select 日期,销售额 from tab where 日期 between dateadd(month,-2,@bDate) and dateadd(month,-2,@eDate)) k) c on a.日期=c.日期
where a.日期 between @bDate and @eDate
go