sql 按照天环比_SQL 查询同比,环比

一、要求

1、表结构如下:

ID DepartName(部门) Sales(销售量) SalesDate(销售日期)

1 营销一部 300 2006-7-1

2 营销二部 500 2006-7-1

3 营销三部 800 2006-8-1

4 营销一部 600 2006-8-1

5 营销二部 800 2006-8-1

6 营销一部 400 2007-7-1

7 营销二部 800 2007-7-1

8 营销三部 700 2007-8-1

9 营销一部 600 2008-7-1

10 营销二部 300 2008-7-1

2、要根据要求得到以下数据

1)得到同比数据

部门 对比年月本月销售总量 去年同期销售总量同比

营销一部2006-07-01300.00 NULL 无穷大

营销二部2006-07-01500.00 NULL 无穷大

营销三部2006-08-01800.00 NULL 无穷大

营销一部2006-08-01600.00 NULL 无穷大

营销二部2006-08-01800.00 NULL 无穷大

营销一部2007-07-01400.00 300.00 33.33%

营销二部2007-07-01800.00 500.00 60.00%

营销三部2007-08-01700.00 800.00 -12.50%

营销一部2008-07-01600.00 400.00 50.00%

营销二部2008-07-01700.00 800.00 -12.50%

(2)选择月份 获取环比数据

部门 对比年月本月销售总量 上月销售总量环比

营销一部2006-07-01300.00 NULL 无穷大

营销二部2006-07-01500.00 NULL 无穷大

营销三部2006-08-01800.00 NULL 无穷大

营销一部2006-08-01600.00 300.00 100.00%

营销二部2006-08-01800.00 500.00 60.00%

营销一部2007-07-01400.00 NULL 无穷大

营销二部2007-07-01800.00 NULL 无穷大

营销三部2007-08-01700.00 NULL 无穷大

营销一部2008-07-01600.00 NULL 无穷大

营销二部2008-07-01700.00 NULL 无穷大

二、代码:

1、创建表

CREATE TABLE SalesDetail(

ID int, --序号

DepartName varchar(50),--部门

Sales decimal(10,2),--销售量

SalesDate Datetime--销售日期

)

2、插入测试数据

insert into SalesDetail(ID, DepartName, Sales, SalesDate)

select 1, '营销一部', 300, '2006-7-1'

UNION ALL select 2, '营销二部', 500, '2006-7-1'

UNION ALL select 3, '营销三部', 800, '2006-8-1'

UNION ALL select 4, '营销一部', 600, '2006-8-1'

UNION ALL select 5, '营销二部', 800, '2006-8-1'

UNION ALL select 6, '营销一部', 400, '2007-7-1'

UNION ALL select 7, '营销二部', 800, '2007-7-1'

UNION ALL select 8, '营销三部', 700, '2007-8-1'

UNION ALL select 9, '营销一部', 600, '2008-7-1'

UNION ALL select 10, '营销二部', 700, '2008-7-1'

3、实现SQL代码

//得到环比

select

c.DepartName as 部门,

convert(varchar(10),c.SalesDate, 23) as 对比年月,

c.Sales as 本月销售总量,

d.Sales as 上月销售总量,

case when d.Sales is null or d.Sales=0 then '无穷大' else cast(cast((isnull(c.Sales, 0)-isnull(d.Sales,0))*100/isnull(d.S

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值