2016-09-23 48 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。它工作正常。这就是为什么我认为这可能会起作用。 –