Как решить ORA-00904: «CI». «CATALOG_ITEM_ID»: неверный идентификатор Ошибка в строке: 2 Столбец: 52 - PullRequest
0 голосов
/ 03 декабря 2018

Мне нужно создать запрос, который будет отображать заголовок, издателя, ISBN, дату выпуска, количество страниц, а также то, переносится ли он в какой-либо библиотеке («Да» или «Нет»). Для каждой книги в каталоге и результатов сортировки.по названиюУ меня также не может быть дубликатов.

У меня есть запрос

 select distinct ci.title, ci.publisher, ci.RELEASE_DATE, b.ISBN, b.pages  from  
 catalog_item ci, book b
 left join physical_item pi on pi.CATALOG_ITEM_ID = ci.CATALOG_ITEM_ID
 left join branch b on b.branch_id = pi.branch_id
 left join library l on b.library_id=l.library_id
 order by ci.TITLE
 ;

Я получаю следующую ошибку

ORA-00904: "CI". "CATALOG_ITEM_ID": неверный идентификатор 00904. 00000 -"% s: неверный идентификатор "* Причина:
* Действие: Ошибка в строке: 2 Столбец: 52

Я не вижу, как он недействителен

Мой DDL выглядит следующим образом:

 CREATE TABLE CUSTOMER (Customer_ID NUMBER PRIMARY KEY, Customer_Firstname 
 VARCHAR2(30), Customer_Lastname VARCHAR2(30), Customer_Street VARCHAR2(30), 
 Customer_City VARCHAR2(30), Customer_State VARCHAR2(20), Customer_Zip 
 VARCHAR2(10));

CREATE TABLE BRANCH (Branch_ID NUMBER PRIMARY KEY, Branch_Name VARCHAR2(30), 
Branch_Phone VARCHAR2 (30), Branch_Address VARCHAR2(30), LIBRARY_ID NUMBER);

CREATE TABLE PHYSICAL_ITEM (Physical_Item_ID NUMBER PRIMARY KEY, Branch_ID NUMBER, 
Catalog_Item_ID NUMBER, Copy_Number NUMBER, Date_Purchased DATE); 

CREATE TABLE CATALOG_ITEM (Catalog_Item_ID NUMBER PRIMARY KEY, Title VARCHAR2 (30), 
Description VARCHAR2(30), Publisher VARCHAR2 (30), Release_Date DATE, Type 
VARCHAR2(30));

CREATE TABLE DVD (Catalog_Item_ID NUMBER, Length VARCHAR2(30));

CREATE TABLE BOOK (Catalog_Item_ID NUMBER, ISBN VARCHAR2(13), Pages NUMBER);

CREATE TABLE TRANSACTION (Transaction_ID NUMBER PRIMARY KEY, Date_checkout DATE, 
Date_Due DATE, Date_Returned DATE, Library_Card_ID NUMBER, Physical_Item_ID NUMBER);

CREATE TABLE LIBRARY (Library_ID NUMBER PRIMARY KEY, Library_Name VARCHAR2 (30), 
Library_Phone VARCHAR2(30), Library_Address VARCHAR2(30));

CREATE TABLE LIBRARY_CARD (Library_Card_ID NUMBER PRIMARY KEY, Library_ID NUMBER, 
Customer_ID NUMBER, Card_Number VARCHAR2(30), PIN VARCHAR2(8), Date_Expire DATE);

 ALTER TABLE BRANCH ADD CONSTRAINT Library_ID_FK FOREIGN KEY (Library_ID) REFERENCES 
 LIBRARY (Library_ID);

 ALTER TABLE PHYSICAL_ITEM ADD CONSTRAINT Branch_ID_FK FOREIGN KEY (Branch_ID) 
 REFERENCES BRANCH (Branch_ID);

 ALTER TABLE PHYSICAL_ITEM ADD CONSTRAINT Catalog_Item_ID_FK FOREIGN KEY 
 (Catalog_Item_ID) REFERENCES CATALOG_ITEM (Catalog_Item_ID);

 ALTER TABLE TRANSACTION ADD CONSTRAINT Library_Card_ID_FK FOREIGN KEY 
(Library_Card_ID) REFERENCES LIBRARY_CARD (Library_Card_ID);  

ALTER TABLE TRANSACTION ADD CONSTRAINT Physical_Item_ID_FK FOREIGN KEY 
(Physical_Item_ID) REFERENCES PHYSICAL_ITEM (Physical_Item_ID); 

ALTER TABLE LIBRARY_CARD ADD CONSTRAINT Library_ID_FK1 FOREIGN KEY (Library_ID) 
REFERENCES LIBRARY (Library_ID);

ALTER TABLE LIBRARY_CARD ADD CONSTRAINT Customer_ID_FK FOREIGN KEY (Customer_ID) 
REFERENCES CUSTOMER (Customer_ID);

ALTER TABLE DVD ADD CONSTRAINT Catalog_Item_ID_FK1 FOREIGN KEY (Catalog_Item_ID) 
REFERENCES CATALOG_ITEM (Catalog_Item_ID); 

ALTER TABLE BOOK add CONSTRAINT Catalog_Item_ID_FK2 FOREIGN KEY (Catalog_Item_ID) 
REFERENCES CATALOG_ITEM (Catalog_Item_ID);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...