求助关于任务分配问题

SNAKE_G 2011-08-23 01:09:33
有两张表一个是任务表.一个是业务员表.任务表(客户姓名,客户电话,客户住址,业务ID) 业务员表(ID,业务姓名).我想实现把任务表里的记录随机分配给业务员表里的所有业务人员.更新到任务表的业务ID里.
...全文
84 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
怪众生太美丽 2011-08-23
  • 打赏
  • 举报
回复

DECLARE @counter smallint;
SET @counter = 1;
WHILE @counter <=10
BEGIN
SELECT TOP 1 sname
FROM s ORDER BY NEWID()
SET @counter = @counter + 1
END;
GO
--我随机运行了十次,重复率也不是很高啊..我看你要不就做出指定每人几条记录好了吧..比如5份5份的分..什么的
不行的话出绝招了,代码多运行几次...取重复少的...哈哈
怪众生太美丽 2011-08-23
  • 打赏
  • 举报
回复

前面整理的几个随机函数 你可以参考下,来自CSDN,
SELECT CAST(RAND()*129 AS INT) Random_Number
--#1.有重复
SELECT TOP(20) ABS(CHECKSUM(NEWID()))%100 from master..spt_values
--#2.无重复
SELECT DISTINCT TOP(20) ABS(CHECKSUM(NEWID()))%123 from master..spt_values
NEWID()函数我也只会简单的使用方法..

怪众生太美丽 2011-08-23
  • 打赏
  • 举报
回复
不太平均啊?
SNAKE_G 2011-08-23
  • 打赏
  • 举报
回复
我测试了一下.基本上可以但是会出现没有分到的情况为什么呢.还有业务员分配的任务数不太平均.个别差距很大.最好能平均一下.要不有人心里该不平衡了.呵呵.麻烦在给看看.修改一下.谢谢了
SNAKE_G 2011-08-23
  • 打赏
  • 举报
回复
不好意思刚才被领导叫去了.刚回来马上测试.完毕结贴谢谢你了
怪众生太美丽 2011-08-23
  • 打赏
  • 举报
回复

兄,能用了就结贴哈...
怪众生太美丽 2011-08-23
  • 打赏
  • 举报
回复

遍历任务表,每次随机从业务员表获取一个业务员ID修改任务表一条记录的业务员ID
怪众生太美丽 2011-08-23
  • 打赏
  • 举报
回复

CREATE TABLE 业务员表(ID INT,业务姓名 VARCHAR(20))
INSERT INTO 业务员表(ID,业务姓名)
SELECT 3,'XIAOMING'
UNION ALL
SELECT 7,'XIAOHEI'
CREATE TABLE 任务表(客户姓名 VARCHAR(20),业务ID INT)
INSERT INTO 任务表(客户姓名)
SELECT '李四'
UNION ALL
SELECT '李3'
UNION ALL
SELECT '李2'
UNION ALL
SELECT '李1'
-----------------
SELECT * FROM 业务员表
SELECT * FROM 任务表
---更新
--这样写会全部更新成随机取得的一个业务员ID
UPDATE 任务表 SET 业务ID=(SELECT TOP 1 ID FROM 业务员表 ORDER BY NEWID())
--写个游标?,可实现
DECLARE @NAME VARCHAR(20)
SET @NAME=''
DECLARE DD CURSOR FOR
SELECT 客户姓名
FROM 任务表
OPEN DD
FETCH NEXT FROM DD
INTO @NAME
WHILE @@FETCH_STATUS=0
BEGIN
begin
UPDATE 任务表 SET 业务ID=(SELECT TOP 1 ID FROM 业务员表 ORDER BY NEWID())
WHERE 客户姓名=@NAME
end
FETCH NEXT FROM DD
INTO @NAME
END
CLOSE DD
DEALLOCATE DD

----
SELECT * FROM 任务表
-----
/*
客户姓名 业务ID
-------------------- -----------
李四 3
李3 7
李2 7
李1 3

(4 行受影响)

SNAKE_G 2011-08-23
  • 打赏
  • 举报
回复
用INSERT好像不对
baiynije 2011-08-23
  • 打赏
  • 举报
回复
insert into 任務表
select 客户姓名,客户电话,客户住址,业务员表.ID
from 任務表,业务员表
?

34,588

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧