2016-09-23 54 views
-1

列出發佈平裝書的發佈者和每個發佈的平裝書數量。 我在計算每個出版商的平裝書時遇到困難。任何幫助都感激不盡。謝謝!什麼是以下任務的SQL語句:

亨利書籍表模式

**author**   
    authorNum  INT    PRIMARY KEY 
    authorLast  VARCHAR(12),  
    authorFirst  VARCHAR(10) 

**publisher**   
    publisherCode  CHAR(3)   PRIMARY KEY 
    publisherName  VARCHAR(25)  
    city    VARCHAR(20) 

**book**    
    bookCode   CHAR(4)   PRIMARY KEY 
    title    VARCHAR(40)  
    publisherCode  CHAR(3)  
    bookType   CHAR(3)  
    paperback   ENUM('No', 'Yes') 

    CONSTRAINT book_fk_publisher 
     FOREIGN KEY (publisherCode) 
     REFERENCES publisher(publisherCode) 

**branch**  
    branchNum  INT   
    branchName  VARCHAR(50) 
    branchLocation VARCHAR(50) 

**copy** 
    bookCode  CHAR(4) 
    branchNum  INT 
    copyNum   INT  PRIMARY KEY 
    quality   ENUM('Excellent', 'Fair', 'Good', 'Poor') 
    price   DECIMAL(8,2) 

    CONSTRAINT copy_pk 
     PRIMARY KEY (bookCode, branchNum, copyNum 
    CONSTRAINT copy_fk_book 
     FOREIGN KEY (bookCode) 
     REFERENCES book(bookCode),  
    CONSTRAINT copy_fk_branch 
     FOREIGN KEY (branchNum) 
     REFERENCES branch(branchNum) 

**wrote** 
    bookCode CHAR(4) 
    authorNum INT 
    sequence INT 

    PRIMARY KEY (BookCode, AuthorNum), 
    CONSTRAINT wrote_fk_book 
     FOREIGN KEY (bookCode) 
     REFERENCES book(bookCode), 
    CONSTRAINT wrote_fk_author 
     FOREIGN KEY (authorNum) 
     REFERENCES author(authorNum)  

這是我有:

SELECT publisherName, COUNT(paperback) AS "numPaperback" 
FROM publisher, book 
WHERE paperback = "Yes"; 
+0

什麼查詢你已經嘗試到目前爲止 –

+0

我做我自己的家庭作業....有一個問題。基蘭.....我會發布我有什麼......謝謝。 – DDG

+0

聽起來像你在這裏與你的功課。所以你怎麼做你自己 – Drew

回答

1

好像你是新的。所以我會盡力引導你通過這個...

  1. 加入發佈者表到書籍表。他們共享一個發佈者代碼,似乎將它們鏈接在一起。

  2. 使用where子句按書籍類型篩選連接表。你想平裝本。

  3. 執行對發行代碼及名稱group by,然後count書列

這是否幫助你開始?

+0

謝謝你的幫助....大聲笑我發佈了我以上所以我不會讓更多的人不高興.....我會嘗試你發佈的內容...謝謝你 – DDG

+0

這就是我沒有爲你寫出全部內容的原因。很高興向您展示您的嘗試! – kbball

+1

@kbball指導初學者的好方法。我很欣賞讓他們完成工作,而不是盲目地粘貼代碼。 –

1

您必須使用(*)組合計算平裝書。這是我將如何寫查詢:

SELECT publisherName,count(*) AS "Number of paperbacks" FROM 
publisher p INNER JOIN book b WHERE 
p.publisherCode=b.publisherCode AND b.paperback="Yes" 
GROUP BY publisherName; 
+1

您需要ON代替WHERE,然後將AND更改爲WHERE – kbball

+0

我總是使用WHERE而不是ON。它工作正常。這就是爲什麼我認爲這可能會起作用。 –