SQL 查询帮助:选择当月的随机员工
Posted
技术标签:
【中文标题】SQL 查询帮助:选择当月的随机员工【英文标题】:SQL Query Help: select random employee of the month 【发布时间】:2009-05-07 01:55:06 【问题描述】:谁能告诉我如何从这个语句中获取记录
随机选择最近 x 个月内不是当月员工的员工表员工 身份证 员工姓名
表 EmployeeOfTheMonth 身份证 员工ID 月开始日期 MonthEndedDate
非常感谢
【问题讨论】:
参见petefreitag.com/item/466.cfm 选择随机行。 使用 Linq? (基于您的标签) 本月最佳员工是您公司的 RANDOM?大声笑 @Deviant 哈哈,应该让每个人都开心;) 【参考方案1】:select top 1 id from employee as emp
where not exist(
select top 1 *
from employeeofthemonth as em
where em.id = emp.id and dateadd(m, -6, getdate()) < monthendeddt )
order by newid()
...或类似的东西。我没有运行 sql,但是在 mssql 服务器上,这应该是正确的。
【讨论】:
好像他想要 Linq 的东西。 这个查询对性能有什么影响?随着记录数量的增加,它似乎会成为一个瓶颈。【参考方案2】:修改最后一个答案,我更喜欢用 IN 语句
DECLARE @xMonth INT
SET @xMonth = 3
SELECT TOP 1 ID
FROM Employee
WHERE ID NOT IN (SELECT EmployeeID
FROM EmployeeOfTheMonth
WHERE DATEADD(m, -@xMonth, GETDATE()) < MonthEndedDate)
ORDER BY NEWID()
【讨论】:
以上是关于SQL 查询帮助:选择当月的随机员工的主要内容,如果未能解决你的问题,请参考以下文章
从表中随机选择行 - Python Pandas 读取 SQL