Sql 循环分配

Sql 循环分配,sql,sql-update,round-robin,Sql,Sql Update,Round Robin,我有一个客户表,希望以循环方式为每个客户分配一名销售人员 Customers --CustomerID --FName --SalespersonID Salesperson --SalespersonID --FName 因此,如果我有15名客户和5名销售人员,我希望最终结果如下: CustomerID -- FName -- SalespersonID 1 -- A -- 1 2 -- B -- 2 3 -- C -- 3 4 -- D -- 4

我有一个客户表,希望以循环方式为每个客户分配一名销售人员

Customers  
--CustomerID  
--FName  
--SalespersonID

Salesperson  
--SalespersonID  
--FName  
因此,如果我有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  
等等

我已经玩了一段时间了,我正试图编写一些SQL来用适当的SalesorsOnID更新我的Customers表,但在使其工作时遇到了一些问题


任何想法都非常感谢

有什么特别的平台吗


在SQL Server 2005及更高版本中,您可以使用行编号(OVER)来分配行编号,然后使用客户的行编号对销售人员的数量进行模化,以确定销售人员行编号。

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
是否有输入错误(customerID而不是SalesID)?------------------------->在ORDER BY(customerID)上选择*,行号()作为销售人员的rn