2016-09-23 7 views
-1

Список тех издателей, которые публикуют книги в мягкой обложке и количество книг в мягкой обложке, опубликованных каждым из них. У меня трудное время с подсчетами в мягкой обложке для каждого издателя. Любая помощь будет высоко ценится. Благодаря!Что такое оператор SQL для следующей задачи:

Генри Книги Таблица Schema

**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

Спасибо за вашу помощь .... lol Я отправил то, что у меня было выше, поэтому я бы не стал расстраивать больше людей ..... Я собираюсь попробовать то, что вы разместили ... Спасибо вы – DDG

+0

Именно по этой причине я не написал все для вас. Хорошо показать нам, что вы пробовали! – kbball

+1

@kbball Хороший способ направить новичку. Я ценю, что они делают работу, а не слепо вставляют код. –

1

Вы должны использовать COUNT (*) и Группа по для подсчета книг в мягкой обложке. Это, как я хотел бы написать запрос:

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. И он отлично работает. Вот почему я думаю, что это может сработать. –