2009-11-20 9 views
0

J'ai besoin de trouver le code du livre et le titre du livre pour chaque livre dont le prix est supérieur au prix du livre pour chaque livre de type "HOR". Ma table ressemble à ceciSQL Plus - Question de type alias

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) 
); 

J'ai essayé plusieurs façons, mais je suis à court de ressources. Je suppose que je vais devoir utiliser un alias?

+0

Montrez quelques-unes des façons que vous avez essayé qui n'ont pas fonctionné. –

+0

Cela a fonctionné mais je ne suis pas sûr de comprendre pourquoi. Quand j'ai essayé 1 de 100 une version différente j'ai créé comme ... CHOISIR MIKEC.BOOK_CODE, MIKEC.TITLE, MIKEC.TYPE, MIKEC.PRICE, BOOK.BOOK_CODE, BOOK.TITLE, BOOK.TYPE, LIVRE.PRICE DE LIVRE, LIVRE MIKEC O WH MIKEC.PRICE> LIVRE.PRICE ET MIKEc.TYPE = 'HOR'; J'ai 59 lignes sélectionnées mais cela ne me semble pas correct – Michael

Répondre

1

Pas nécessairement. Vous pouvez utiliser un imbriquée SELECT comme ceci:

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

Vous ne devez pas répondre à des questions de ce genre jusqu'à ce que l'affiche originale montre ce qui n'a pas fonctionné. Donner des réponses sans montrer aucun effort encourage les gens à ne pas apprendre à faire les choses eux-mêmes; un de ces jours, vous ou moi pourrions finir par devoir maintenir le code qu'ils "ont écrit", et je préférerais ne pas avoir cela se produire. –

+0

C'est vrai, @ White White. Bon point. – karlgrz

+0

Croyez-moi, je ne veux pas la réponse autant que je veux savoir la raison. Croyez-moi, vous êtes loin de maintenir le code que j'écris. Je suis en train d'apprendre. SELECT MIKEC.BOOK_CODE, MIKEC.TITLE, MIKEC.TYPE, MIKEC.PRICE, BOOK.BOOK_CODE, BOOK.TITLE, BOOK.TYPE, BOOK.PRICE DU LIVRE, LIVRE MikeC OÙ MIKEC.PRICE> BOOK.PRICE ET MIKEc.TYPE = 'HOR'; Je ne sais pas pourquoi les œuvres imbriquées. – Michael

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

Peut-être?

+0

Voir mon commentaire sur KG ci-dessus. –

+0

Assez juste, point reçu. – dhorn