Добрый день!
Подскажите, пожалуйста, как переделать запрос.
На данный момент выборка случайных вопросов для теста происходит так (количество вопросов в тесте знали точно при выборке Темы, Уровня экзамена)
Таблицы:
1.Сборник вопросов:
idСборник
НомерСборника
idтема
idВидэкзамена
idСварки
Количество(раньше поле было, когда не было разграничение по РД)
2.Вопросы
idВопрос
Вопрос
НомерправильныйОтвет
НомерВопроса
idправОтвет
id_RD
3.РД
id_РД
Название количество
id_Сборник
Запрос без поле РД:
strs = " SELECT TOP 20
& " Вопросы.IdВопрос, Вопросы.НомерВопроса, Вопросы.Вопрос, Вопросы.IdПравОтвет, Вопросы.НомерПравильныйОтвет, Вопросы.idСборник, " & Id & " as idСтудент" _
& " FROM Вопросы" _
& " WHERE (((Вопросы.idСборник) in (SELECT СборникВопросов.IdСборник" _
& " FROM СборникВопросов" _
& " WHERE (((СборникВопросов.idТема)=" & Forms!Задание!ВыбратьТему & ") " _
& " AND ((СборникВопросов.id_Видэкзамена)=" & Forms!Задание!ВыбратьУровень & "))))) " _
& " ORDER BY rnd(INT(NOW*Вопросы.IdВопрос)-NOW*Вопросы.IdВопрос)"
Сейчас в каждом сборнике вопросов есть еще определенное количество РД и в каждом РД есть количество вопросов, которые нужно выбрать случайным образом из вопросов.
Сделала запрос, который выводит все вопросы по всем РД из сборника, а как сделать выборку вопросов по определенному количеству для каждого РД не знаю(
SELECT Вопросы.IdВопрос, Вопросы.НомерВопроса, Вопросы.Вопрос, Вопросы.IdПравОтвет, Вопросы.НомерПравильныйОтвет, Вопросы.id_RD
FROM Вопросы
WHERE (((Вопросы.id_RD) In (SELECT РД.Id_RD
FROM РД
WHERE (РД.id_Сборник) In (SELECT CборникВопросов.IdСборник
FROM СборникВопросов
WHERE СборникВопросов.idТема=35 AND СборникВопросов.id_Видэкзамена=2 AND СборникВопросов.id_Сварки=5))));
Спасибо .
http://www.sql.ru/forum/1181768/vyborka-sluchaynyh-voprosov-iz-tablicy