7

顧客テーブルがあり、ラウンドロビン方式で各顧客に営業担当者を割り当てたいと思います。

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  

等...

私はこれを少し試してみて、適切なSalespersonIDでCustomersテーブルを更新するSQLを作成しようとしていますが、動作させるのに問題があります。

どんなアイデアでも大歓迎です!

4

2 に答える 2

7

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
于 2010-03-19T17:00:26.350 に答える
2

特定のプラットフォームはありますか?

SQL Server 2005 以降では、ROW_NUMBER (OVER) を使用して行番号を割り当て、顧客の ROW_NUMBER を営業担当者の数で割った値を使用して、営業担当者の ROW_NUMBER を決定できます。

于 2010-03-19T16:59:01.113 に答える