2014-12-09 3 views
0

Я пишу обширную статью и как часть наличия закодированных таблиц и вставленных значений в них мне дали некоторые вопросы, на которые я должен ответить; но у одного из них у меня много проблем, поэтому я надеюсь, что один из вас, ребята, сможет мне помочь! Вопрос заключается в следующем:Oracle SQLPlus: Выбрать оператор, где (?) И порядок от

Покажите в настоящее время проверенные экземпляры book_copies, которые были просрочены на 10-OCT-2014. На выходе будут отображаться bookid, copy_num, фамилия и имя клиента, количество просроченных дней (без отрицания или нуля для этого столбца!). Заказать по bookid, copy_num. ПОЖАЛУЙСТА, НЕ обновляйте balance_due в этом вопросе.

Book_copy стол:

create table BOOK_COPY 
(Copy_Num number(5), 
Bookid number(5), 
out_to_CID number(6), 
Date_Out date, 
Date_Due date, 
Held_Until date, 
held_for_CID number(6), 
CONSTRAINT PKCOPY PRIMARY KEY (Copy_Num,Bookid), 
CONSTRAINT FKCID FOREIGN KEY (out_to_CID) references CUSTOMER (CID), 
CONSTRAINT FKHeld FOREIGN KEY (held_for_CID) references CUSTOMER (CID), 
CONSTRAINT FKBookid FOREIGN KEY (Bookid) references BOOK (Bookid)); 

клиентов стол:

create table CUSTOMER 
(CID number(6), 
First_Name varchar2(12), 
Last_Name varchar2(12), 
Category varchar2(7), 
Balance_Due number(4,2), 
SponsorID number(6), 
CONSTRAINT pkCID PRIMARY KEY (CID), 
CONSTRAINT fkCUSTOMER foreign key (sponsorID) references customer); 
+1

Ха, добро пожаловать. К сожалению, никто здесь не разрешит домашнюю работу для вас. Опубликуйте, как далеко вы дошли, и с какой конкретной проблемой вы столкнулись, и мы сможем помочь. – shasan

+0

Спасибо! Хорошо, хотя я знаю, что это не для того, чтобы делать домашнее задание студентов, это, конечно, кажется судящим из многих других вопросов, что я не единственный, кто его просил - я просто единственный, кто не притворяется, что это не так. Во всяком случае, я понимаю, откуда вы родом, но я подумал, что я скорее буду честен в этом :-) – Nitr

+1

@NiTre, вы неправильно поняли. Мы не запрещаем домашние задания; то, что Саби говорит правильно, заключается в том, что вы должны приложить к нему какое-то усилие *, прежде чем задавать вопрос. В этом случае Саби действительно помог вам, но ответчики ниже НЕ помогли вам (но с хорошими намерениями, я уверен), потому что они только что дали вам ответ на серебряном блюде. Но, ваше образование тратится, если хотите. –

ответ

1

Если вы заинтересованы в том, чтобы увидеть, сколько дней прошло с 10 октября вы можете использовать этот бит кода вместо этого:

select 
bookid, 
copy_num, 
Last_Name, 
First_Name, 
Date_Due - to_date('10-OCT-2014') total_days_overdue 
from 
book_copy bc 
inner join customer c on bc.out_to_cid = c.cid 
where 
Date_Due >'10-OCT-2014' 
Order by 
bookid, copy_num; 
+0

Спасибо, Джейкоб, это именно то, что я искал. – Nitr

0

Внутренний соединение, вычитая одну дату из другой будет выглядеть следующим образом:

select 
    bookid, 
    copy_num, 
    Last_Name, 
    First_Name, 
    Date_Due - sysdate total_days_overdue 
from 
    book_copy bc 
    inner join customer c on bc.out_to_cid = c.cid 
where 
    Date_Due > to_date('20141010','yyyymmdd') 
Order by 
    bookid, copy_num 
+0

Это большая помощь, спасибо. Я посмотрю, смогу ли я заставить его работать или модифицировать его! – Nitr

+0

@NiTre, Домашнее задание не оффтопическое (см. [Help/on-topic]), но он говорит: 'Вопросы, требующие помощи в домашней работе, должны включать резюме работы, которую вы сделали до сих пор, для решения проблемы, а также описание трудность, с которой вы это решаете ». Поэтому не забудьте сделать это в следующий раз. – paqogomez

+0

Downvoter, пожалуйста, оцените ответ, а не вопрос. Если вы видите проблему, прокомментируйте. – paqogomez