我有一个包含3个函数的表:Id
,Name
,Probability
。
ID - Name - Probability
1 - T1 - 1
2 - T2 - 2
3 - T3 - 3
4 - T4 - 1
5 - T5 - 3
概率1-20%
2-30%
3-50%
此查询吸引了大量4名员工。
FROM 'C:\temp\colaboradores_teste.csv'
WITH
(
FIRSTROW=4,
FIELDTERMINATOR = ';',
ROWTERMINATOR = '\n'
)
/* Sorteio funcionarios do dia */
DECLARE cur CURSOR FOR
SELECT ID FROM RH_Alcoolemia_FXP WHERE IDInterno is null and CAST(DataControlo AS DATE) = CAST(getdate() AS DATE)
OPEN cur
FETCH NEXT FROM cur INTO @ID
WHILE @@FETCH_STATUS = 0
BEGIN
/* Random do funcionario */
SELECT TOP 1 @IDInterno = A.IDInterno, @Nome = A.Nome FROM #temporaria A
WHERE A.IDInterno not IN (select IDInterno FROM RH_Alcoolemia_FXP WHERE cast(DataControlo as DATE) = cast(getdate() as date) AND IDInterno is not null)
order by NEWID()
update RH_Alcoolemia_FXP set IDInterno = @IDInterno, Nome = @Nome WHere ID = @ID
FETCH NEXT FROM cur INTO @ID
END
输出是这样的:
Id-Id-Name
233-3-T3
234-1-T1
235-5-T5
236-2-T2
根据每位官员的概率,我喜欢抽一名官员。 如果是3,那么官员比拥有1的官员更有可能离开。