Ses*_*ame 6 sql round-robin sql-update
我有一个客户表,并希望以循环方式为每个客户分配销售人员.
Customers
--CustomerID
--FName
--SalespersonID
Salesperson
--SalespersonID
--FName
Run Code Online (Sandbox Code Playgroud)
所以,如果我有15个客户和5个销售人员,我希望最终结果看起来像这样:
CustomerID -- FName -- SalespersonID
1 -- A -- 1
2 -- B -- 2
3 -- C -- 3
4 -- D -- 4
5 -- E -- 5
6 -- F -- 1
7 -- G -- 2
8 -- H -- 3
9 -- I -- 4
10 -- J -- 5
11 -- K -- 1
12 -- L -- 2
13 -- M -- 3
14 -- N -- 4
15 -- 0 -- 5
Run Code Online (Sandbox Code Playgroud)
等等...
我一直在讨论这个问题,我正在尝试编写一些SQL来使用适当的SalespersonID来更新我的Customers表,但是在使用它时遇到了一些麻烦.
任何想法都非常感谢!
在SQL Server:
WITH ? AS
(
SELECT *, ROW_NUMBER() OVER ORDER BY (customerID) AS rn
FROM customers
),
s AS
SELECT *,
ROW_NUMBER() OVER ORDER BY (SalespersonID) AS rn
FROM salesPersons
)
SELECT c.*, s.*
FROM ?
JOIN s
ON s.rn =
(?.rn - 1) %
(
SELECT COUNT(*)
FROM salesPersons
) + 1
Run Code Online (Sandbox Code Playgroud)