当前位置: 首页 > news >正文

Excel+SQL实战项目 - 餐饮业日销售情况分析仪

目录

    • 1、要完成的任务
    • 2、认识数据
    • 3、SQL数据加工
    • 4、excel形成分析仪

1、要完成的任务

目标:结合SQL和excel实现餐饮业日销售情况分析仪,如下表:
在这里插入图片描述
认识分析仪:
切片器:店面
分为四部分:KPI 、组合图、饼图、数据透视表
KPI指标:

  1. 当天销售情况
  2. 当天桌子使用情况
  3. 当天每把椅子的使用情况

在这里插入图片描述

组合图:每小时的销售额与销量变化趋势
饼图:不同菜品下的销售额占比情况,销量占比情况
数据透视表:不同菜品下的销售额情况,销量情况

2、认识数据

表结构信息:
在这里插入图片描述
bill表中缺失金额,order表缺失店名信息 —bill表与order表连接一下可以解决
在这里插入图片描述
反映不同店的桌子信息:
shop表要补充总座位表
在这里插入图片描述

3、SQL数据加工

  1. 用orderdetail表创建单汇总金额表(OrderGroup)–计算每单号的总金额
    以orderdetail表的billnumber单号字段为汇总依据,求出每条billnumber下pay的加总值。
    新表字段:billnumber(单号)、pay(金额)

  2. 用Bill表与OrderGroup表创建新单号详细表(NewBill)–newbill = bill+每单总金额+每单折扣后金额
    以billnumber为关键字段关联两表,将OrderGroup表中的pay字段合并到Bill表中,并使用pay与billdiscount字段计算出折扣金额。
    新表字段:所有Bill表中的字段、pay(金额)、rebate(折扣金额)
    计算逻辑:Rebate = pay * billdiscount

  3. 用Shopdetail表创建新店面情况表(NewShopDetail)–添加每家店的总座位数
    在原有shopdetail表字段基础上计算并添加allseats字段
    新表字段:所有ShopDetail表中的字段、allseats(总座位数)
    计算逻辑:allseats = twotable * 2 + three * 3 + fourtable * 6

  4. 用OrderDetail表与Bill表创建新点菜明细表(NewOrderDetail)–给order表增加店名信息
    以billnumber为关键字段关联两表,并用Bill表中的shopname与OrderDetail表中的所有字段组成新表
    新表字段:shopname(店名)、OrderDetail表中的所有字段

  5. 用NewBill表与NewShopDetail表创建店汇总信息表(ShopTotal)
    以shopname字段为关键字段关联两表,并以shopname字段为汇总条件,创建以下字段
    新表字段:
    店名: b.shopname
    单数: b.billnumber的计数
    人数: b.peoplecount的加总
    折扣总金额: b.rebate的加总
    店汇总金额: b.pay的加总
    单均消费: b.pay的合计值/b.billnumber的计数值
    人均消费: b.pay的合计值/b.peoplecount的合计值
    总台数: s.alltable
    总座位数: s.allseats
    翻台率: b.billnumber的计数值/s.alltable (总单数/总桌数)
    上座率: b.peoplecount的合计值/s.allseats
    折扣率: b.rebate的合计值/b.pay的合计值

导入bill表:

create database CateringCase;use CateringCase;--  Bill table
create table Bill(billdate date not null,billnumber varchar(20) not null default '-',shopname varchar(20) not null default '-',    billdiscount float not null default 0,paytime time not null,tablenumber int not null default 0,peoplecount int not null default 0
);#导入数据
load data local infile 'D:/liwork/data/-bill.csv' into table Billfields terminated by ',';select * from Bill;

导入OrderDetail表:

--  OrderDetail table
create table OrderDetail(billnumber varchar(20) not null default '-',detail varchar(20) not null default '-',pay int not null default 0
);#导入数据
load data local infile 'D:/liwork/data/-order.csv' into table OrderDetailfields terminated by ',';select * from OrderDetail;

导入ShopDetail表:

--  ShopDetail table
create table ShopDetail(ShopName varchar(20) not null default '-',twotable int not null default 0,threetable int not null default 0,fourtable int not null default 0,alltable int not null default 0
);#导入数据
load data local infile 'D:/liwork/data/-shop.csv' into table ShopDetailfields terminated by ',';select * from ShopDetail;

数据加工:

-- 数据加工
-- 创建单汇总金额表
Create table OrderGroup(select billnumber, sum(pay) as pay from OrderDetailgroup by billnumber
);select * from OrderGroup;-- 创建新单号详细表
Create table NewBill(
select b.*,o.pay,b.billdiscount * o.pay as rebate from bill as b left join ordergroup as o 
on b.billnumber = o.billnumber);select * from NewBill;

NewBill表:
在这里插入图片描述


-- 创建新店面情况表
create table NewShopDetail(
select *, (twotable * 2 + threetable * 3 + fourtable * 6) as allseats 
from shopdetail as s);select * from NewShopDetail;

NewShopDetail表:
在这里插入图片描述

-- 创建新点菜明细表
create table neworderdetail(
select b.shopname,o.* from orderdetail as o left join bill as b 
on o.billnumber = b.billnumber
);select * from neworderdetail;

neworderdetail表:
在这里插入图片描述


-- 创建店汇总信息表
create table ShopTotal(
select b.shopname as 店名, count(b.billnumber) as 单数, 
sum(b.peoplecount) as 人数,sum(b.rebate) as 折扣总金额,sum(b.pay) as 店汇总金额, 
sum(b.pay)/count(b.billnumber) as 单均消费, 
sum(b.pay)/sum(b.peoplecount) as 人均消费, 
s.alltable as 总台数,
s.allseats as 总座位数,
count(b.billnumber)/s.alltable as 翻台率,
sum(b.peoplecount)/s.allseats as 上座率,
sum(b.rebate)/sum(b.pay) as 折扣率
from newbill as b left join newshopdetail as s 
on b.shopname = s.shopname
group by b.shopname);select * from shoptotal;

shoptotal表:
在这里插入图片描述

4、excel形成分析仪

从excel中连接MySQL,导入数据后做数据透视图,不断调整

http://www.lryc.cn/news/8532.html

相关文章:

  • 电商导购CPS,京东联盟如何跟单实现用户和订单绑定
  • Redis学习【6】之BitMap、HyperLogLog、Geospatial操作命令 (1)
  • JAVA实现心跳检测【长连接】
  • python3.9安装和pandas安装踩坑处理
  • 2023.2.15每日一题——867. 转置矩阵
  • 【人脸识别】Partial-FC:让你在一台机器上训练1000万个id人脸数据集成为可能!
  • 递归方法读取任意深度的 JSON 对象的键值
  • 黑马redis学习记录:分布式锁
  • 对React-Fiber的理解,它解决了什么问题?
  • 【Linux】初学Linux你需要掌握这些基本指令(二)
  • Linux中VI/VIM 编辑器
  • PDF怎么转换成Word?两种PDF免费转Word方法推荐
  • 极兔一面:Dockerfile如何优化?注意:千万不要只说减少层数
  • SpringBoot+Vue实现酒店客房管理系统
  • 自适应多因素认证:构建不可破解的企业安全防线|身份云研究院
  • 阶段二8_集合ArrayList_学生管理系统_详细步骤
  • 一篇解决Linux 中的负载高低和 CPU 开销并不完全对应
  • 关于IDM下载器,提示:一个假冒的序列号被用来注册……idea项目文件路径报红
  • JVM - 高效并发
  • 中小学智慧校园电子班牌系统源码 Saas云平台模式
  • 记录一次服务器被攻击的经历
  • Python解题 - CSDN周赛第29期 - 争抢糖豆
  • C代码中访问链接脚本中的符号
  • MySQL 8:MySQL索引
  • JVM详解
  • MySQL数据库调优————索引数据结构
  • visual studio 改变界面语言
  • 2023.2.16每日一题——1250. 检查「好数组」
  • 亿级高并发电商项目-- 实战篇 --万达商城项目 八(安装FastDFS、安装Nginx、文件服务模块、文件上传功能、商品功能与秒杀商品等功能)
  • Viper捐款7000万韩元,合计人民币是多少钱?