Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Помогите пожалуйста

64K
01 февраля 2011 года
imdoctor89
8 / / 01.02.2011
Есть несколько таблиц . (на форум.jpg). Рисунки таблиц в файлике.
Вот мое задание:

1)Вывести список студентов обучающихся на математическом факультете на 5-ом курсе в виде:
Фамилия;
Имя;
Отчество;
Специальность;
Специализация;
Форма обучения;

2)Если дата поступления ранее чем 01.08.2005 год, то необходимо список дополнить датой поступления.

Результаты запроса должны быть представлены одной таблицей. Используй команду UNION

я сделал так:
SELECT Студенты.Фамилия, Студенты.Имя, Студенты.Отчество, Студенты.Курс, Специальности.Специальность, ФормыОбучения.ФормаОбучения,
Специализации.Специализация
FROM Студенты INNER JOIN
Специальности ON Студенты.КодСпециальности = 26 AND Специальности.КодСпециальности = 26 AND Студенты.Курс = 5 AND
Студенты.Отчислен = 0 INNER JOIN
ФормыОбучения ON Студенты.КодФормыОбучения = ФормыОбучения.КодФормыОбучения INNER JOIN
Специализации ON Студенты.КодСпециализации = Специализации.id

но не знаю как дополнить список датой поступления, если дата поступления ранее чем 01.08.2005. И как в этом задании этот UNION использовать нужно?
385
01 февраля 2011 года
SomewherSomehow
477 / / 25.07.2004
студент?
Какая субд? Если юнион обязательно использовать, то очевидно сначала в первой части, в условии where ограничиваете по дате поступления до 01.08.2005, потом union и потом начиная с 01.08.2005 и во второй части выводите колонку.
Только вот части предложения юнион должны совпадать по кол-ву полей и типам данных.
Так что и в первой части и во второй колонка с датой дожна присутсвовать, только в первой там будет пусто (видимо так?). А раз так - тогда зачем тут юнион вообще, можно обойтись case-оподобной конструкцией.
Кстати обратите внимание на условия в вашем джоине таблицы Специальности, оригинальный способ, однако! =)
64K
02 февраля 2011 года
imdoctor89
8 / / 01.02.2011
Цитата: SomewherSomehow
студент?
Какая субд? Если юнион обязательно использовать, то очевидно сначала в первой части, в условии where ограничиваете по дате поступления до 01.08.2005, потом union и потом начиная с 01.08.2005 и во второй части выводите колонку.
Только вот части предложения юнион должны совпадать по кол-ву полей и типам данных.
Так что и в первой части и во второй колонка с датой дожна присутсвовать, только в первой там будет пусто (видимо так?). А раз так - тогда зачем тут юнион вообще, можно обойтись case-оподобной конструкцией.
Кстати обратите внимание на условия в вашем джоине таблицы Специальности, оригинальный способ, однако! =)



Да, студент). SQL Server 2005. Спасибо, за помощь. Я сам не знаю зачем тут UNION. Но препод сказал только с ним. Попробую по вашему сделать.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог