2014-01-30 3 views
0

У меня есть следующие таблицы в MS Access 2007:MS Access SQL, чтобы выбрать случайное назначение для каждого пользователя

Users Table

Destinations Table

Many-to-Many Relationship Table

Таблица отношения определяет, какие направления допускаются для каждого пользователя. В настоящий момент каждый пользователь может перейти в любой пункт назначения, но в будущем это может не произойти.

Я хочу, чтобы иметь возможность использовать запрос SQL для выбора случайного адресата для каждого пользователя.

Результат запроса SQL будет выглядеть примерно так:

Results

На данный момент я следующий запрос, который randomises адресатов: ВЫБОР идентификатор_пользователя, destinationID ОТ Relationship ORDER BY идентификатором пользователя , rnd (destinationID);

, который дает этот результат:

Current Query Result

Но я не могу работать, как выбрать только один случайные назначения для каждого идентификатора пользователя.

Кто-нибудь знает, как это сделать?

ответ

0

Если вы сохраните запрос

SELECT userID, destinationID FROM Relationship ORDER BY userID, rnd(destinationID) 

, как Q1, вы можете получить первые (случайные) назначения для каждого пользователя, как:

SELECT userID, first(destinationID) from Q1 group by userID 
Смежные вопросы