同比数据计算公式:

同比:一般情况下是今年第n月与去年第n月比
计算方式:同比增长率=(本期数-同期数)÷同期数×100%
所以要有个本期数据与同期数据一一对应的表,那就要本期数据与同期数据分离

环比数据计算公式:
环比:一般是指报告期水平与前一时期水平之比,此处指本月数据与上月数据(或者本日数据与上日数据)
计算方式:环比增长速度=(本期数-上期数)÷上期数×100%

CREATE TABLE SalesDetail(
ID int,   --序号
DepartName varchar(50), --部门
Sales decimal(10,2), --销售量
SalesDate Datetime --销售日期
)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'select * from SalesDetail-- 计算环比
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.Sales, 0) as decimal(10,2)) as varchar(50))+'%' end as 环比 from SalesDetail c left join
(select a.DepartName as DepartName, a.Sales as Sales, a.SalesDate as lsSalesDate, b.SalesDate as SalesDate from SalesDetail a join SalesDetail b on a.SalesDate=DateAdd(month, -1, b.SalesDate) and a.DepartName=b.DepartName) d
on c.SalesDate=d.SalesDate and c.DepartName=d.DepartName-- 计算同比
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.Sales, 0) as decimal(10,2)) as varchar(50))+'%' end as 同比 from SalesDetail c left join
(select a.DepartName as DepartName, a.Sales as Sales, a.SalesDate as lsSalesDate, b.SalesDate as SalesDate from SalesDetail a join SalesDetail b on a.SalesDate=DateAdd(year, -1, b.SalesDate) and a.DepartName=b.DepartName) d
on c.SalesDate=d.SalesDate and c.DepartName=d.DepartName

同比效果:

环比效果:

SQL 同比、环比计算公式及实例演示相关推荐

  1. 使用 SQL 实现同比环比分析

    场景描述 在做数据分析时,经常会需要展示同比和环比的数据,可以通过 SQL 来完成同比和环比的计算,再配合数据可视化工具进行展示,每个月都会自动展示当月数据与上月的对比(环比),以及当月数据与去年同期 ...

  2. Oracle 数据库直接执行本地sql文件、sql脚本实例演示

    @ + sql 文件路径即可执行 sql 文件里的 sql 语句. 实例演示: 我要执行的 sql 文件路径是 C:\Users\Administrator\Desktop\delete.sql , ...

  3. PL/SQL 数据库连接工具的下载、安装与使用实例演示

    PL/SQL 工具的安装与使用 第一章:PL/SQL 工具的安装 ① PL/SQL 工具的下载与安装 ② PL/SQL 工具的 activate ③ PL/SQL 工具的使用演示 ④ PL/SQL 远 ...

  4. 国产化达梦数据库数据迁移文档:oracle11g数据库转达梦8数据库实例演示

    Oracle 数据库转达梦数据库实例演示 第一章:达梦数据库用户数据准备 ① 直接执行 sql 语句创建用户(该步执行完可直接第二章) ② 使用工具创建用户 第二章:达梦数据库转库 oracle 转达 ...

  5. 国产化人大金仓数据库转库工具:oracle12c数据库转kingbase8.6人大金仓数据库实例演示

    oracle12c数据库转人大金仓数据库实例演示 第一章:数据准备 ① 人大金仓建库建用户 ② 人大金仓授权表空间 ③ 人大金仓创建 schema 表 第二章:转库演示 ① 转库工具准备 ② 创建源库 ...

  6. Java 技术篇-java连接并操作数据库实例演示,执行查询、插入、更新和删除操作

    Java 操作数据库 第一章:Java 代码四个类实现 ① 项目结构展示 ② 数据库连接类 ③ 数据库查询类 ④ 数据库更新类 ⑤ 数据库主类 第二章:查询和更新操作实例演示 ① 查询操作演示 ② 更 ...

  7. php 中curd表达啥,CURD语句的基本语法和PDO中操作数据表的基本步骤实例演示增删改查命令 2019年07月24日 23时10分...

    一.常用的CUR 最常用的就是: `CURD` 增删改查   它代表创建(Create).更新(Update).读取(Read)和删除(Delete)操作. 新增操作语法 * SQL规范: `INSE ...

  8. c#中connect函数_Flink算子使用方法及实例演示:union和connect

    Flink的Transformation转换主要包括四种:单数据流基本转换.基于Key的分组转换.多数据流转换和数据重分布转换.读者可以使用Flink Scala Shell或者Intellij Id ...

  9. 实例演示使用RDIFramework.NET 框架的工作流组件进行业务流程的定义—请假申请流程-Web

    实例演示使用RDIFramework.NET 框架的工作流组件 进行业务流程的定义-请假申请流程-Web 参考文章: RDIFramework.NET - 基于.NET的快速信息化系统开发框架 - 系 ...

  10. 实例演示使用RDIFramework.NET 框架的工作流组件进行业务流程的定义—请假申请流程-WinForm

    实例演示使用RDIFramework.NET 框架的工作流组件 进行业务流程的定义-请假申请流程-WinForm 参考文章: RDIFramework.NET - 基于.NET的快速信息化系统开发框架 ...

最新文章

  1. easyui toolbar分隔线
  2. breeze源码阅读心得
  3. hbase性能优化2
  4. python怎么写测试脚本语言_手把手带你,用Python写一个Monkey自动化测试脚本!!!...
  5. 洛谷P1119 灾后重建 图论 脑洞题
  6. 蝴蝶优化算法_算法|FFT基础及各种常数优化,5万字笔记:公式推导+代码模板...
  7. 微信支付—微信H5支付「PC端扫码支付」
  8. TCP,UDP学习总结
  9. 【git】搭建git服务器
  10. 代码没写完,哪里有脸睡觉!17 张程序员壁纸推荐
  11. AI驱动智能化日志分析 : 通过决策树给日志做聚类分析
  12. Springboot初始化过程(1.5.9.RELEASE)(一)
  13. VOC2007数据集
  14. mysql 多重循环_SQL循环语句 详解
  15. Apache和Httpd是什么关系
  16. 表达无序列表语义的html标签是,HTML语义标签的介绍和常用的语义标签
  17. css 解决因为书名号不满一行就换行情况
  18. ARM 是什么,ARM的意思,ARM介绍
  19. TypeScript代理模式/委托模式
  20. 大一新生的第一篇博客

热门文章

  1. 学习大数据参加培训班,大概需要多长时间?
  2. latex各类符号(红心、方块、五角星等)集合
  3. 苹果笔记本能玩英雄联盟吗_英雄联盟手游要上线了,王者荣耀还会有人玩吗
  4. 常用html页面设计工具,网站前端开发常用工具大全-web设计师必备
  5. 正交试验法生成测试用例工具PICT
  6. 关于仿写写一个网易云静态页面的那些事
  7. 批量生成小说人物名字
  8. 服务器网站不用80端口,云服务器80端口不用备案
  9. ISE14.7添加工程外部的IP核
  10. carry函数在C语言中用法,动词carry用法小归纳