将随机分配更改为循环分配SQL

时间:2018-02-19 16:18:16

标签: sql sql-server select

实施例

问题是,例如,我有5个人要解决100个案例,并且作业必须公平,我认为SQL通过循环应该能够将第一个案例分配给前5个人,但是如果新案件失败,它必须重新计算并重新分配。

我有两个包含以下字段的表

技术人员

ID_TEC ----- ----- NOM_TEC LINEA_TEC

和其他个案

ID_CASE ---- DESCRIPTION_CASE

问题出现了,因为我必须为每个技术人员分配案例。赋值必须是循环的,即:

CASE1 TECH1

CASE2 TECH2

CASE3 TECH3

CASE4 TECH1 ......

当您在表中加载数据并重新运行SP或运行分配它们的作业时,请返回表格,重新计算值并根据最后分配的TECn重新分配它们。我希望描述更清楚!

1 个答案:

答案 0 :(得分:0)

您可以通过执行以下操作将数字1-5随机分配给任务:

select t.*,
       (1 + row_number() over (order by newid()) % 5) as user_assignment
from t