mysql如何将同一个表里销售了相同货品的销售员信息合并

店铺名称活动id选品编码销售员合作状态直播开始时间直播结束时间
A3102532G00136小明合作中2024-01-04 00:00:002025-02-01 23:59:59
A3102532G00136小红合作中2024-01-01 00:00:002025-12-31 23:59:59
B3102533G00050小红合作中2024-05-01 00:00:002024-12-31 23:59:59
C3102535G00072小明已终止2023-05-01 00:00:002023-12-31 23:59:59
C3102535G00146小明合作中2024-05-05 00:00:002028-12-31 23:59:59

目标:将一场活动中,在同一店铺销售了同一货品的销售员信息,合并在一起,便于统计同一货品有哪些销售员销售。

语句如下

UPDATE pt_anchor_1 c
INNER JOIN(
SELECT
    a.`店铺名称`,
    a.`活动id`,
    a.`选品编码`,
    GROUP_CONCAT( DISTINCT a.`销售占比` SEPARATOR ',' ) AS xs
FROM
    pt_anchor_1 a
    JOIN ( SELECT `店铺名称`, `活动id`, `选品编码`, `销售员`, `直播开始时间`, `直播结束时间` FROM pt_anchor_1) as s
WHERE
    a.`合作状态` = '合作中'
    AND (
        ( a.`直播开始时间` <= s.`直播开始时间`  AND a.`直播结束时间` <= s.`直播开始时间` AND a.`直播结束时间` <= s.`直播结束时间` )
        OR ( a.`直播开始时间` >= s.`直播开始时间` AND a.`直播结束时间` <= s.`直播结束时间` )
        OR ( a.`直播开始时间` >= s.`直播开始时间` AND a.`直播开始时间` <= s.`直播结束时间` AND a.`直播结束时间` >= s.`直播结束时间` )
    )
GROUP BY
    `店铺名称`,
    `活动id`,
    `选品编码`
)as d
on
        c.`店铺名称` = d.`店铺名称`
   AND     c.`活动id` = d.`活动id`
     AND  c.`选品编码` = d.`选品编码`
set  c.`销售员` = d.xs
where  c.`合作状态` ='合作中'

执行后结果如下:

店铺名称活动id选品编码销售员合作状态直播开始时间直播结束时间
A3102532G00136小明,小红合作中2024-01-04 00:00:002025-02-01 23:59:59
A3102532G00136小红,小红合作中2024-01-01 00:00:002025-12-31 23:59:59
B3102533G00050小红合作中2024-05-01 00:00:002024-12-31 23:59:59
C3102535G00146小明合作中2024-05-05 00:00:002028-12-31 23:59:59
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值