Справка по SQL-запросам: выберите случайного сотрудника месяца - PullRequest
1 голос
/ 07 мая 2009

Может ли кто-нибудь показать мне, как получить запись из этого заявления

  • Выберите случайного сотрудника, который не является сотрудником месяца за последние x месяцев

Стол Сотрудника
ID
EmployeeName

Таблица EmployeeOfTheMonth
ID
EmployeeID
MonthStartedDate
MonthEndedDate

Большое спасибо

Ответы [ 2 ]

2 голосов
/ 07 мая 2009
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 это должно быть правильно.

0 голосов
/ 08 мая 2009

Модификация последнего ответа, я предпочитаю использовать IN statment

<code>
DECLARE @xMonth INT
SET @xMonth = 3</p>

<p>SELECT TOP 1 ID
FROM Employee
WHERE ID NOT IN (SELECT EmployeeID 
FROM EmployeeOfTheMonth
WHERE DATEADD(m, -@xMonth, GETDATE()) < MonthEndedDate)
ORDER BY NEWID()
...