sql语句下的同比,环比操作

本文详细介绍如何使用SQL查询2020年每月销售额及其同比、环比数据。通过分步操作,从构建时间字段到计算增长率,展示了如何关联不同年份的销售数据以实现精确的财务分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

sql语句下的同比,环比操作

题目:有两个表
表一:销售明细
在这里插入图片描述
表二:产品明细
在这里插入图片描述
需求:查询2020年,每月的销售额,以及同比环比,并按照年月进行升序排序

  1. 建数据库
  2. 建表
  3. 插入数据
    偷个懒,这些语句就先省略了
    给看个截图
    在这里插入图片描述
    在这里插入图片描述
    ps: 建表时时间要选择datetime ,后面要对时间进行操作的~

思路:分步操作

  1. 获得每月的数据
    首先的抽取时间,以及获得每个月的销售额,要有 销售额,两个表肯定是要连接起来的
    ------- 获取时间
    YEAR(字段名)—获取年份
    MONTH(字段名)----获取时间
SELECT YEAR(s.sail_time), MONTH(s.sail_time), SUM(s.number*p.pro_price) 销售额  
 FROM  sail_info s 
 LEFT JOIN produce_detail p
ON s.produce_id=p.produce_id
GROUP BY YEAR(s.sail_time) , MONTH(s.sail_time)  

此处使用左连接的原因:是要补充销售表里单品的价格,要以左表为基准,要用了左连接
结果:
在这里插入图片描述

  1. 单步操作获得同比数据
    同比:一般情况下是今年第n月与去年第n月比
    计算方式:同比增长率=(本期数-同期数)÷同期数×100%
    所以要有个本期数据与同期数据一一对应的表,那就要本期数据与同期数据分离
    有了第一步之后很容易获得数据
    本期数据:
SELECT YEAR(s.sail_time), MONTH(s.sail_time), SUM(s.number*p.pro_price) 销售额  
 FROM  sail_info s 
 LEFT JOIN produce_detail p
ON s.produce_id=p.produce_id
where YEAR(s.sail_time)=2020 
GROUP BY YEAR(s.sail_time) , MONTH(s.sail_time)  

在这里插入图片描述
同期数据:

SELECT YEAR(s.sail_time), MONTH(s.sail_time), SUM(s.number*p.pro_price) 销售额  
 FROM  sai
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值