2015-11-22 4 views
-2
SELECT C1.CERT_ANNOUNCEMENT 
FROM EMPLOYEE C1, TEACHER C1, TEACHER_CERT_INT C1, CERTIFICATION C1 
ORDER BY EMP_LNAME, EMP_FNAME; 

Напишите запрос и сохранить его в целях создания объявление текста для всех учителей в базе данных, которые имеют полученные сертификаты. Атрибут, который вы создаете, должен быть назван ниже, а создаваемая вами строка должна выглядеть точно так же, как в решении для полного кредита. Закажите фамилию, затем имя. Предполагается, что он называется CERT_ANNOUNCEMENT, но это не является атрибутом в ER DIAGRAM.Неверный идентификатор атрибута в оракула

Не знаю, как его создать, потому что, когда я запускаю его, он говорит недействительный идентификатор. Любая помощь приветствуется.

+1

[Вредные привычки пинать: использование старого стиля JOIN и] (http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/08/bad-habits-to-kick-using-old -style-joins.aspx) - стиль старого стиля * разделенный запятыми список таблиц * был заменен на * правильный * ANSI 'JOIN' синтаксис в ANSI - ** 92 ** SQL Standard (** более 20 лет ** назад), и его использование не рекомендуется –

+0

Если вы хотите, чтобы мы сделали домашнее задание для вас, вам нужно отправить все детали задания. В противном случае вы не получите «полный кредит» за наши усилия :) – APC

+0

Хотя вашему учителю нужно состыковать несколько моментов за то, что он сказал вам написать представление с предложением ORDER BY. Это плохая практика. – APC

ответ

1

Вы должны использовать уникальный псевдоним для каждой таблицы и использовать пункт on, чтобы объединиться и избежать полного декартового продукта, а также уточнить свои вопросы на SO.

0

Задача просит вас создать представление, поэтому вам нужно использовать синтаксис CREATE VIEW.

В представлении используются данные из нескольких таблиц. Вам необходимо использовать условия соединения, чтобы гарантировать, что записи связаны значимо. Обычно это означает соединение первичных ключей с внешними ключами.

Дайте каждой таблице уникальный псевдоним, чтобы избежать ошибок компиляции.

Предполагается, что представление должно показать сообщение всем учителям, получившим сертификаты. Вам необходимо сформировать это объявление, объединив столбцы из таблиц с текстом шаблона. Дайте этому сообщению псевдоним столбца cert_announcement.

Вы не разместили ни одной структуры таблицы, поэтому я догадался, что вы называете столбцами таблиц. Точно так же текст объявления. Поэтому вам нужно выяснить конкретные детали для себя. По крайней мере, таким образом вы заработаете некоторые из отметок, которые вы получите.

create or replace view full_credit_please as 
    select 'Teacher ' 
      ||emp.emp_fname||' '||emp.emp_lname 
      ||' was awarded '||cert.certifcate_name 
      ||' on '|| to_char(cert.award_date, 'DD-MON-YYYY') 
      as cert_announcement 
    from employee emp 
     join teacher tch 
       on tch.emp_id = emp.emp_id 
     join teacher_cert_int tc 
       on tc.tch_id = tch.tch_id 
     join certification cert 
       on cert.cert_id = tc.cert_id 
    order by emp.emp_lname, emp.emp_fname; 
Смежные вопросы