Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как написать сложный запрос?! / 2 сообщений из 2, страница 1 из 1
09.06.2011, 18:16
    #37303103
ШпщЗщп
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как написать сложный запрос?!
Всем привет.
Заранее прошу прощения, если не в том топике пишу данную тему. Не понял где можно спросить.

Есть 2 таблицы.

В одной список вопросов. - Таблица Questions
В другой список ответов на эти вопросы. Таблица Answers. В этой таблице содержатся ответы не на все вопросы из таблицы Questions, а только те, на которые ответили.
Ответы бывают Да, Нет.

Вопрос вот в чем - как написать запрос выборки следующего вопроса относительно текущего, при условии, что его ответ должен быть либо 'нет', либо если следующено вопроса с ответом 'НЕТ' нет, то его нужно брать из таблицы Questions следующим после текущего.
Т.е.
Questions:
idq title
1. ***
2. ***
3. ***
4. ***
5. ***

Answers:

ida Answer
1. Нет
2. Да
3. Нет

Из этого примера, запрос при текущем idq=1 должен выдать 3, а потом вопрос с idq=4 (т.е. проскочить 2 вопрос из таблицы Answers, т.к. ответ в нем ДА, и т.к. не найдет в табл Answers следующего вопроса с ответом НЕТ вывести след не отвеченный вопрос (с idq=4), потом idq=5...)
Заранее спасибо.
...
Рейтинг: 0 / 0
10.06.2011, 11:16
    #37303811
Как написать сложный запрос?!
ШпщЗщп,

На T-SQL я сделал бы так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
--@IDQ - текущий вопрос
SELECT COALESCE(
(SELECT TOP  1  IDQ
FROM ANSWERS
WHERE IDQ > @IDQ
AND ANSWER = 'Нет'
ORDER BY IDQ DESC),
(SELECT TOP  1  IDQ
FROM ANSWERS
WHERE IDQ > @IDQ
ORDER BY IDQ DESC)
)
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как написать сложный запрос?! / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]