我有一份卖家名单,我必须为他们分配经理。数据格式如下
Seller category Division Sales
David 17 A 5000
David 23 B 2000
David 91 C 100
David 25 C 200
Jack 23 A 4000
Jack 17 A 4000
Jack 25 B 3000
现在提供经理列表如下:
Manager preferred_category Designation
Tom 17 H
Aman 17 L
Sandy 23 H
John 23 L
Robin 91 H
Adam 91 L
Clara 25 H
Ted 25 L
现在遵循的规则如下:
我已经成功地在VBA中解决了这个问题,但是它太麻烦了,我想在sql中实现自动化。我只需找到某种启动或启动过程的方式,我将能够采取这种方式。任何帮助将不胜感激。
先谢谢
答案 0 :(得分:0)
这是一个粗略的方法。不保证可以处理任何特定的SQL风格,但我假设您有Access或SQL Server。
规则1的类似内容:
update seller set manager_id =
(select manager_id from MANAGER m
inner join SELLER s on s.category = m.preferred_category
where s.division in ('A','B') and m.designation = 'H'
and rownum < 2)
对于规则2:
update seller set manager_id =
(select manager_id from MANAGER m
inner join SELLER s on s.category = m.preferred_category
where s.division = 'C' and m.designation = 'L'
and rownum < 2)
如果您需要为卖家分配更多经理,则需要创建交叉引用表并移动ID列