Помогите пожалуйста
Вот мое задание:
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 использовать нужно?
Какая субд? Если юнион обязательно использовать, то очевидно сначала в первой части, в условии where ограничиваете по дате поступления до 01.08.2005, потом union и потом начиная с 01.08.2005 и во второй части выводите колонку.
Только вот части предложения юнион должны совпадать по кол-ву полей и типам данных.
Так что и в первой части и во второй колонка с датой дожна присутсвовать, только в первой там будет пусто (видимо так?). А раз так - тогда зачем тут юнион вообще, можно обойтись case-оподобной конструкцией.
Кстати обратите внимание на условия в вашем джоине таблицы Специальности, оригинальный способ, однако! =)
Цитата: SomewherSomehow
студент?
Какая субд? Если юнион обязательно использовать, то очевидно сначала в первой части, в условии where ограничиваете по дате поступления до 01.08.2005, потом union и потом начиная с 01.08.2005 и во второй части выводите колонку.
Только вот части предложения юнион должны совпадать по кол-ву полей и типам данных.
Так что и в первой части и во второй колонка с датой дожна присутсвовать, только в первой там будет пусто (видимо так?). А раз так - тогда зачем тут юнион вообще, можно обойтись case-оподобной конструкцией.
Кстати обратите внимание на условия в вашем джоине таблицы Специальности, оригинальный способ, однако! =)
Какая субд? Если юнион обязательно использовать, то очевидно сначала в первой части, в условии where ограничиваете по дате поступления до 01.08.2005, потом union и потом начиная с 01.08.2005 и во второй части выводите колонку.
Только вот части предложения юнион должны совпадать по кол-ву полей и типам данных.
Так что и в первой части и во второй колонка с датой дожна присутсвовать, только в первой там будет пусто (видимо так?). А раз так - тогда зачем тут юнион вообще, можно обойтись case-оподобной конструкцией.
Кстати обратите внимание на условия в вашем джоине таблицы Специальности, оригинальный способ, однако! =)
Да, студент). SQL Server 2005. Спасибо, за помощь. Я сам не знаю зачем тут UNION. Но препод сказал только с ним. Попробую по вашему сделать.