cch1010 2022-11-07 15:48 采纳率: 0%
浏览 18

mysql获取下级员工合计销量

销售员数据表:

create table salers(
salerId                int not null  , --销售员编号
salername            varchar(32),    --销售员姓名
parentid        int,            --上级编号
 primary key (salerId)    
)  

--单据表:

create table salebill(
BillId                int not null  , --单据编号
salerId            int,                --销售员编号
amount            int,                --销售金额
 primary key (BillId)
)

--造数据:
insert into salers(salerId,salername,parentid)
values(1,'张大',null),
 (2,'张一',1),
 (3,'张二',2),
 (4,'张三',3),
 (5,'李大',null),
 (6,'李一',5),
 (7,'李二',6),
 (8,'李三',7),
 (9,'张四',1),
 (10,'张五',1)  


insert into salebill(BillId,salerId,amount)
values(1,1,5),
 (2,2,2),
 (3,2,1),
 (4,3,2),
 (5,8,3),
 (6,10,4),
 (7,5,10),
 (8,7,3) 

求一mysql语句,根据类似上面造的数据(实际销售员工数据50多人,销售单据数据达到10万条),获得如下图结果(请不要使用with as):

 

 

 

  • 写回答

2条回答 默认 最新

  • 不要迷恋发哥 2022-11-26 12:21
    关注

    思路:
    1:把单据表根据业务员Id分组 汇总成单总额。
    2:业务员表与汇总表根据业务员Id左连接。注意,一定要左链接,因为实际情况中不是所有的业务员都会有成单记录

    select 
    a.salerId,a.salername, b.totalamount 
    from salers a 
    left join(
    select salerId,sum(amount) as totalamount from salebill group salerId) 
    as b 
    on a.salerId =b.salerId 
    
    评论

报告相同问题?

问题事件

  • 创建了问题 11月7日

悬赏问题

  • ¥15 Oracle触发器记录修改前后的字段值
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器