2009-11-20 2 views
0

Мне нужно найти код книги и название книги для каждой книги, цена которой больше, чем цена книги для каждой книги, имеющей тип «HOR». Мой стол выглядит так:SQL Plus - вопрос типа псевдонима

CREATE TABLE BOOK (
    BOOK_CODE CHAR(4) CONSTRAINT BOOK_BOOK_CODE_PK PRIMARY KEY, 
    TITLE VARCHAR2(40) CONSTRAINT BOOK_TITLE_NN NOT NULL, 
    PUBLISHER_CODE CHAR(2) CONSTRAINT BOOK_PUBLISHER_CODE_FK REFERENCES PUBLISHER(PUBLISHER_CODE), 
    TYPE CHAR(3), (this is where the 'HOR' is located) 
    PRICE NUMBER(4,2), 
    PAPERBACK CHAR(1) 
); 

Я пробовал несколько разных способов, но я в недоумении. Я предполагаю, что мне придется использовать псевдоним?

+0

Показать некоторые из способов, которые вы пробовали, которые не работали. –

+0

Это сработало, но я не уверен, что понимаю почему. Когда я попробовал 1 из 100 различных версий, которые я создал ... SELECT MIKEC.BOOK_CODE, MIKEC.TITLE, MIKEC.TYPE, MIKEC.PRICE, BOOK.BOOK_CODE, BOOK.TITLE, BOOK.TYPE, BOOK.PRICE ОТ КНИГИ, КНИГА MIKEC ГДЕ MIKEC.PRICE> BOOK.PRICE И MIKEc.TYPE = 'HOR'; У меня было выделено 59 строк, но это не кажется правильным – Michael

ответ

1

Не обязательно. Вы можете использовать вложенную ВЫБРАТЬ так:

SELECT 
    BOOK_CODE, 
    TITLE 
FROM 
    BOOK 
WHERE 
    PRICE > (SELECT MAX(PRICE) FROM BOOK WHERE TYPE = 'HOR')) 
+0

Вы не должны отвечать на такие вопросы, пока оригинальный плакат не покажет, что они пытались, что не сработало. Предоставление ответов без каких-либо усилий, демонстрирующих, побуждает людей не учиться самому делать вещи; на один из этих дней вы или я могли бы в конечном итоге сохранить код, который они «написали», и я бы предпочел, чтобы этого не случилось. –

+0

Это правда, @Ken White. Хорошая точка зрения. – karlgrz

+0

Поверьте мне, я не хочу ответа так сильно, как хочу знать причину. Поверьте мне, вы далеко не поддерживаете какой-либо код, который я пишу. Я просто учился. ВЫБОР MIKEC.BOOK_CODE, MIKEC.TITLE, MIKEC.TYPE, MIKEC.PRICE, BOOK.BOOK_CODE, BOOK.TITLE, BOOK.TYPE, BOOK.PRICE из книги, книга MIKEC ГДЕ MIKEC.PRICE> BOOK.PRICE AND MIKEc.TYPE = 'HOR'; Я не уверен, почему вложенные работы. – Michael

0
SELECT a.book_code, a.title 
FROM book a, book b 
WHERE a.price > b.price 
AND b.type = 'HOR' 

Возможно?

+0

Смотрите мой комментарий к KG выше. –

+0

достаточно справедливый, пункт получен. – dhorn