Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Не могу написать запрос  [new]
spiderone
Member

Откуда:
Сообщений: 2
Есть таблица TabSubjectSettings поля (PerentSubjectsID, QuestionCount). И таблица вопросов TabQuestions поля (QuestionID, PerentSubjectsID,TextQuestion)

TabSubjectSettings предположим что эта таблица с темами по предмету русский язык
где сказано что по предмету русский язык надо взять 10 вопросов из темы 1
20 из темы 2 а в таблице TabQuestions сами вопросы... причем взять их надо случайным образом ... как сделать запрос так чтобы не запрашивать вопросы для каждой темы отдельно...

10 случайных я так понял можно вытаскивать так SELECT TOP 10 TabQuestions.PerentSubjectsID
FROM dbo.TabQuestions ORDER BY NEWID()... не хватает тяму написать все красиво... а так хочется )
1 окт 11, 22:07    [11368876]     Ответить | Цитировать Сообщить модератору
 Re: Не могу написать запрос  [new]
ё
Guest
spiderone,

если версия сервера позволяет, то так
select t1.*, a.QuestionID, a.TextQuestion
from @TabSubjectSettings t1
cross apply 
(select top(t1.QuestionCount) percent * from @TabQuestions t2 order by newid()) a
2 окт 11, 10:49    [11369473]     Ответить | Цитировать Сообщить модератору
 Re: Не могу написать запрос  [new]
ё
Guest
ё
spiderone,

если версия сервера позволяет, то так
select t1.*, a.QuestionID, a.TextQuestion
from @TabSubjectSettings t1
cross apply 
(select top(t1.QuestionCount) percent * from @TabQuestions t2 where t1.PerentSubjectsID=t2.PerentSubjectsID order by newid()) a
2 окт 11, 10:53    [11369479]     Ответить | Цитировать Сообщить модератору
 Re: Не могу написать запрос  [new]
spiderone
Member

Откуда:
Сообщений: 2
ё,

Спасибо только вот у меня без percent работает правилно... 32 вопроса как надо а с ним 12 .
2 окт 11, 14:06    [11369664]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить