sql查询问题

问题描述:我现在有一个表,字段为销售员,副销售员,销售金额

实现:在算业绩时,如果同时存在销售员和副销售员的话,就需要平分业绩

我现在的方法是,分成三段然后union all 在一起再sum,但是这样好麻烦,大佬们有没有简单的方法

image.png

胡歌 发布于 2021-11-11 10:25
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
free_zzLv6中级互助
发布于2021-11-11 10:36(编辑于 2021-11-11 10:44)

image.pngimage.png

select 销售员,sum(业绩) from (

select 

a as 销售员,sum(if(b is not null ,c/2,c)) 业绩

from testq

group by a

union all

select 

b as 销售员,sum(c/2) 业绩

from testq where b is not null

group by b

) a group by 销售员

最佳回答
0
牛~~~Lv6中级互助
发布于2021-11-11 10:33(编辑于 2021-11-11 10:42)

计算绩效的时候     直接 case when 判断就OK 啊

逻辑代码:

首先根据销售员字段汇总对应的绩效,然后再以副销售员为主汇总绩效,根据人员 left join 之后相加就行了

  • free_zz free_zz 人员怎么join。。t、f销售员里都没有
    2021-11-11 10:55 
  • 牛~~~ 牛~~~ 回复 free_zz 我说的人员就是指的销售员而已,不用这么较真 full join 跟你 union all 一个道理啊 一个横向,一个纵向
    2021-11-11 18:02 
  • 3关注人数
  • 403浏览人数
  • 最后回答于:2021-11-11 10:44
    请选择关闭问题的原因
    确定 取消
    返回顶部