|
Выборка случайных вопросов из таблицы
|
|||
---|---|---|---|
#18+
Добрый день! Подскажите, пожалуйста, как переделать запрос. На данный момент выборка случайных вопросов для теста происходит так (количество вопросов в тесте знали точно при выборке Темы, Уровня экзамена) Таблицы: 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)))); Спасибо . ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2015, 14:04 |
|
Выборка случайных вопросов из таблицы
|
|||
---|---|---|---|
#18+
Балаган какой-то! Что в таблицах, что в запросах. Опиши задачу на словах. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2015, 10:17 |
|
Выборка случайных вопросов из таблицы
|
|||
---|---|---|---|
#18+
Rivkin Dmitry, Есть три таблицы: 1.Сборник вопросов: idСборник НомерСборника idтема idВидэкзамена idСварки 2.Вопросы idВопрос Вопрос НомерправильныйОтвет НомерВопроса idправОтвет id_RD 3.РД id_РД Название Количество id_Сборник Необходимо вывести запрос, который будет выводить вопросы к тесту(Тест состоит из сборника вопросов(их сейчас 6), каждый сборник состоит из РД) В таблице РД есть поле Количество, которые показывает сколько из каждого РД надо выбрать вопросов случайным образом. Например сотрудник заходит на главную форму, выбирает Тему, Вид_экзамена, сварку. По этим данным смотрим какой сборник вопросов будет в тесте, далее этот сборник состоит из трех РД (в первом РД всего 50 вопросов, во 2 и 3 по 60) В таблице РД есть поле Количество которое показывает сколько вопросов надо вывести случайным образом ( например из 1 РД - 10 вопросов из 50; во 2 и 3 - 5 вопросов из 60) Всего получается в тесте будет 20 вопросов Сделала запрос, который выводит все вопросы по всем РД из сборника(170 вопросов, а не 20), а но не делает выборку вопросов(отбор по количеству вопросов в РД случайным образом) 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)))); Спасибо . ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2015, 11:05 |
|
|
start [/forum/topic.php?fid=45&msg=39086841&tid=1614369]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
44ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
others: | 328ms |
total: | 469ms |
0 / 0 |