2009-11-20 74 views
0

我需要找到每本書其價格低於賬面價格爲每本書具有類型「HOR」大書代碼和書名。我的表看起來像這樣SQL加 - 別名類型的問題

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

顯示您嘗試過的一些方法無效。 – 2009-11-20 20:10:39

+0

這工作,但我不知道我明白爲什麼。當我嘗試的100個不同的版本1,我創建如... SELECT MIKEC.BOOK_CODE,MIKEC.TITLE,MIKEC.TYPE,MIKEC.PRICE,BOOK.BOOK_CODE,BOOK.TITLE,BOOK.TYPE,BOOK.PRICE FROM BOOK,BOOK MIKEC WHERE MIKEC.PRICE> BOOK.PRICE AND MIKEc.TYPE = 'HOR'; 我選擇了59行,但似乎並不正確 – Michael 2009-11-20 20:32:28

回答

1

不一定。你可以使用一個嵌套的SELECT這樣的:

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

你不應該回答這樣的問題,直到原來的海報向人們展示了他們已經試過,沒有工作。在沒有任何努力的情況下給出答案就是鼓勵人們不要自己去學習;有一天,你或我可能最終不得不維護他們「寫下」的代碼,我寧願不要這樣做。 – 2009-11-20 20:12:16

+0

這是真的,@肯白。好點子。 – karlgrz 2009-11-20 20:13:06

+0

相信我,我不想要這個答案,因爲我想知道原因。相信我,你離我維護的代碼還有很長的路要走。我只是在學習。 SELECT MIKEC.BOOK_CODE,MIKEC.TITLE,MIKEC.TYPE,MIKEC.PRICE,BOOK.BOOK_CODE,BOOK.TITLE,BOOK.TYPE,BOOK.PRICE FROM BOOK,BOOK MIKEC WHERE MIKEC.PRICE> BOOK.PRICE AND MIKEc.TYPE ='HOR'; 我不知道爲什麼嵌套的作品。 – Michael 2009-11-20 20:36:46

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

可能?

+0

查看我對KG的評論。 – 2009-11-20 20:12:54

+0

夠公平的,點收到。 – dhorn 2009-11-20 20:36:49