店铺名称 | 活动id | 选品编码 | 销售员 | 合作状态 | 直播开始时间 | 直播结束时间 |
A | 3102532 | G00136 | 小明 | 合作中 | 2024-01-04 00:00:00 | 2025-02-01 23:59:59 |
A | 3102532 | G00136 | 小红 | 合作中 | 2024-01-01 00:00:00 | 2025-12-31 23:59:59 |
B | 3102533 | G00050 | 小红 | 合作中 | 2024-05-01 00:00:00 | 2024-12-31 23:59:59 |
C | 3102535 | G00072 | 小明 | 已终止 | 2023-05-01 00:00:00 | 2023-12-31 23:59:59 |
C | 3102535 | G00146 | 小明 | 合作中 | 2024-05-05 00:00:00 | 2028-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 | 选品编码 | 销售员 | 合作状态 | 直播开始时间 | 直播结束时间 |
A | 3102532 | G00136 | 小明,小红 | 合作中 | 2024-01-04 00:00:00 | 2025-02-01 23:59:59 |
A | 3102532 | G00136 | 小红,小红 | 合作中 | 2024-01-01 00:00:00 | 2025-12-31 23:59:59 |
B | 3102533 | G00050 | 小红 | 合作中 | 2024-05-01 00:00:00 | 2024-12-31 23:59:59 |
C | 3102535 | G00146 | 小明 | 合作中 | 2024-05-05 00:00:00 | 2028-12-31 23:59:59 |