重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

sqlserver环比,sql计算环比

SQL里怎么查询销售同比与环比

这里有个同比和环比的例子。好好研究下就知道了。表结构如下:

创新互联公司主要业务有网站营销策划、做网站、网站设计、微信公众号开发、微信小程序定制开发、H5场景定制、程序开发等业务。一次合作终身朋友,是我们奉行的宗旨;我们不仅仅把客户当客户,还把客户视为我们的合作伙伴,在开展业务的过程中,公司还积累了丰富的行业经验、全网营销推广资源和合作伙伴关系资源,并逐渐建立起规范的客户服务和保障体系。 

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

要根据要求得到以下数据

1)选择开始年月,结束年月,得到同比数据

eg.开始年月:2006-7 结束:2006-8

获取:

对比年月 DepartName(部门) Sales(销售总量) 上期 差异 差异率

2006-7 营销一部 300 0 300 无穷大

2006-7 营销一部 500 0 500 无穷大

2006-7 营销三部 0 0 0 0

2006-8 .... ....

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

eg.选择 2008.7

部门 本月销售总量 去年同期 变动 变动率

营销一部 600 0 0 0

营销二部 300 800 -500 (300-800)/800 Code

1--雇员数据

2CREATE TABLE Employee(

3ID int, --雇员编号(主键)

4Name nvarchar(10), --雇员名称

5Dept nvarchar(10)) --所属部门

6INSERT Employee SELECT 1,N'张三',N'大客户部'

7UNION ALL SELECT 2,N'李四',N'大客户部'

8UNION ALL SELECT 3,N'王五',N'销售一部'

9--费用表

10CREATE TABLE Expenses(

11EmployeeID int, --雇员编号

12Date Datetime, --发生日期

13Expenses nvarchar(10), --指标名称

14[Money] decimal(10,2)) --发生金额

15INSERT Expenses SELECT 1,'2004-01-01',N'销售',100

16UNION ALL SELECT 1,'2004-01-02',N'销售',150

17UNION ALL SELECT 1,'2004-12-01',N'销售',200

18UNION ALL SELECT 1,'2005-01-10',N'销售', 80

19UNION ALL SELECT 1,'2005-01-15',N'销售', 90

20UNION ALL SELECT 1,'2005-01-21',N'成本', 8

21UNION ALL SELECT 2,'2004-12-01',N'成本', 2

22UNION ALL SELECT 2,'2005-01-10',N'销售', 10

23UNION ALL SELECT 2,'2005-01-15',N'销售', 40

24UNION ALL SELECT 2,'2005-01-21',N'成本', 8

25UNION ALL SELECT 3,'2004-01-01',N'销售',200

26UNION ALL SELECT 3,'2004-12-10',N'销售', 80

27UNION ALL SELECT 3,'2005-01-15',N'销售', 90

28UNION ALL SELECT 3,'2005-01-21',N'销售', 8

29GO

30

31--统计

32DECLARE @Period char(6)

33SET @Period='200501' --统计的年月

34

35--统计处理

36DECLARE @Last_Period char(6),@Previous_Period char(6)

37SELECT @Last_Period=CONVERT(char(6),DATEADD(Year,-1,@Period+'01'),112),

38 @Previous_Period=CONVERT(char(6),DATEADD(Month,-1,@Period+'01'),112)

39SELECT Dept,Expenses,Name,

40 C_Money,

41 L_Money,

42 L_UP=C_Money-L_Money,

43 L_Prec=CASE

44 WHEN L_Money=0 THEN '----'

45 ELSE SUBSTRING('↓-↑',CAST(SIGN(C_Money-L_Money) as int)+2,1)

46 +CAST(CAST(ABS(C_Money-L_Money)*100/P_Money as decimal(10,2)) as varchar)+'%'

47 END,

48 P_Money,

49 P_UP=C_Money-P_Money,

50 P_Prec=CASE

51 WHEN P_Money=0 THEN '----'

52 ELSE SUBSTRING('↓-↑',CAST(SIGN(C_Money-P_Money) as int)+2,1)

53 +CAST(CAST(ABS(C_Money-P_Money)*100/P_Money as decimal(10,2)) as varchar)+'%'

54 END

55FROM(

56 SELECT a.Dept,b.Expenses,

57 Name=CASE WHEN GROUPING(Name)=1 THEN '合计' ELSE a.Name END,

58 C_Money=ISNULL(SUM(CASE CONVERT(char(6),b.Date,112) WHEN @Period THEN b.[Money] END),0),

59 L_Money=ISNULL(SUM(CASE CONVERT(char(6),b.Date,112) WHEN @Last_Period THEN b.[Money] END),0),

60 P_Money=ISNULL(SUM(CASE CONVERT(char(6),b.Date,112) WHEN @Previous_Period THEN b.[Money] END),0)

61 FROM Employee a,Expenses b

62 WHERE a.ID=b.EmployeeID

63 AND CONVERT(char(6),b.Date,112) IN(@Last_Period,@Previous_Period,@Period)

64 GROUP BY a.Dept,b.Expenses,a.ID,a.Name WITH ROLLUP

65 HAVING (GROUPING(a.Name)=0 OR GROUPING(a.ID)=1)

66 AND (GROUPING(a.ID)=0 OR GROUPING(b.Expenses)=0))a

67

68/**//*--结果

69Dept Expenses Name C_Money L_Money L_UP L_Prec P_Money P_UP P_Prec

70------- --------- -------- --------- -------- -------- -------- -------- -------- ------

71大客户部 成本 张三 8.00 .00 8.00 ---- .00 8.00 ----

72大客户部 成本 李四 8.00 .00 8.00 ---- 2.00 6.00 ↑300.00%

73大客户部 成本 合计 16.00 .00 16.00 ---- 2.00 14.00 ↑700.00%

74大客户部 销售 张三 170.00 250.00 -80.00 ↓32.00% 200.00 -30.00 ↓15.00%

75大客户部 销售 李四 50.00 .00 50.00 ---- .00 50.00 ----

76大客户部 销售 合计 220.00 250.00 -30.00 ↓12.00% 200.00 20.00 ↑10.00%

77销售一部 销售 王五 98.00 200.00 -102.00 ↓51.00% 80.00 18.00 ↑22.50%

78销售一部 销售 合计 98.00 200.00 -102.00 ↓51.00% 80.00 18.00 ↑22.50%

79--*/

80

81

82

sqlserver问题: 看图、、、

为什么不用表格~~~~ 可以直接用函数,得到结果后再插入数据库~

用sql好像蛮麻烦的样子= = 可以用存储过程来 但是很麻烦!!

请教Oracle计算同比和环比sql语句

首先明确概念:

环比增长率=(本期数-上期数)/上期数*100% 反映本期比上期增长了多少。

同比增长率=(本期数-同期数)/同期数*100% 指和去年同期相比较的增长率。

数据表名:d_temp_data 

查询数据如下:

查询的sql语句如下:

select a.*,

nvl(round(money/lag(money) over(order by id)*100,2),'0')||'%' "同比",

nvl(round(money/lag(money) over(partition by mon order by id)*100,2),'0')||'%' "环比"

from d_temp_data a

id    iname   year   mon   money   同比   环比

----------------------------------------------------------------------

1 1 飞马股 2013 01 300 0% 0%

2 2 飞马股 2013 02 270 90% 0%

3 3 飞马股 2013 03 350 129.63% 0%

4 4 飞马股 2013 04 180 51.43% 0%

5 5 飞马股 2013 05 500 277.78% 0%

6 6 飞马股 2013 06 400 80% 0%

7 7 飞马股 2014 01 210 52.5% 70%

8 8 飞马股 2014 02 240 114.29% 88.89%

9 9 飞马股 2014 03 320 133.33% 91.43%

10 10 飞马股 2014 04 480 150% 266.67%

11 11 飞马股 2014 05 400 83.33% 80%

sqlServer 实现环比

实施鼎捷软件易飞ERP,轻松实现企业商业智能化管理!

实施的易飞ERP系统,包括了基本信息模块、采购管理、存货管理、销售管理、BOM、工单及委外管理、批次需求计划、应收应付管理、会计总帐管理、自动分录管理、成本管理共11个模块。

易飞ERP是由制造、质量、财务、销售和人力资源等30多个模块组成,其功能覆盖了企业管理的方方面面。易飞ERP强调系统集成性,并可根据各企业的不同需求加以调整组合。易飞ERP集易操作性、高技术水准和强大功能于一身。经过15000家客户的经验积累,沉淀了厚重的制造、流通行业知识。主要功能有:信息实时掌握 全球经营监控;内控内审循环;制造管理;进销存管理;财务管理;商业智能;人力资源管理;智能的管理应用工具等。

另外,虚机团上产品团购,超级便宜

sql查询中日期加减的问题

他们说的那个dateadd 不是oracle的函数。是sqlserver 的,你要前一天的

可以

SELECT SYSDATE-1 FROM DUAL 直接减一就是默认减一天。就算是1号 也会变成上个月的最后一天

现在主流数据分析软件有哪些?

改良BI让业务人员更好的使用商业智能BI

在以前,访问BI需要强大、复杂的本地安装软件来筛选数据集,然后再运行复杂查询才能得出结果。但是,现在很多东西都一直在变化。访问BI需要的人员越来越多。但访问BI的这一系列操作太复杂了。普通的业务人员根本无法完全学会这些步骤。因此BI软件的研发人员,慢慢开始改良,移除技术,使得每个人都能访问BI。

拖拉拽式快速制作BI报表

业务人员忙于处理业务,并没有太多时间精力去学习步骤复杂的数据分析软件,并且即便学会了他们也没太多时间精力去进行数据分析,因此最好的办法是选择一个采用拖拉拽式报表制作方法的BI软件。

就如Smartbi,不用下载安装,直接通过浏览器打开就能用,通过拖拉拽方式快速搭建可视化分析报表。只需要简单的鼠标拖拽维度和指标,即可快速生成图表。敏捷看板中不仅内置多种数据统计函数,如:求和,最大值,排名,同比、环比、上期等,而且支持自定义维度和指标,两者可以一键切换,灵活简便的分析方式,方便用户进行猜想式、求证式的数据探索。现在主流数据分析软件推荐你思迈特软件Smartbi数据分析软件。广州思迈特软件Smartbi有限公司(简称思迈特软件Smartbi)成立于2011 年,以提升和挖掘企业客户的数据价值为使命,专注于商业智能(BI)与大数据分析软件产品与服务。

思迈特软件Smartbi企业自助数据分析平台(思迈特软件Smartbi Eagle)是围绕业务人员,提供数据分析服务的企业级门户平台。通过提供自助化的数据访问、探索、展现工具,加快数据化运营的效率,为业务思考、业务拓展、管理创新提供了开放共享和交流互动的平台。

经过十余年的发展,已在金融、电信、政 府、制造等行业获得近2000家客户认可,口碑良好。在全球财富500强的10家国内银 行,有8家选用了思迈特软件Smartbi。在众多的客户中获得了很好的口碑,并获得了投资机构的青睐。

思迈特软件Smartbi使用了“去报表化”展现形式,增强了传统的图形,引入了更加丰富的统计图表,在报表结构中引入更加富有表现力的HTML元素。支持三屏合一数据化展示。

我们可以随心所欲的像编辑网页一样来加工我们的分析报表,使得数据的表现形式更加丰富多彩。思迈特软件Smartbi抛弃了插件定义,大量使用拖拽式、纯web定义的方式来制作报表,同时继续支持传统拾取式定义。

数据分析软件有没有用,来试试Smartbi就知道了,Smartbi产品功能设计全面,涵盖数据提取、数据管理、数据分析、数据共享四个环节,帮助客户从数据的角度描述业务现状,分析业务原因,预测业务趋势,推动业务变革。

思迈特软件Smartbi个人用户全功能模块长期免费试用

马上免费体验:Smartbi一站式大数据分析平台


本文题目:sqlserver环比,sql计算环比
本文网址:http://cqcxhl.cn/article/hdcghc.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP