2016-10-25 5 views
0

ich eine Datenbank aus dem folgenden Ablaufplan erstellt: https://www.learncodinganywhere.com/learningmanagementsystem/links/07_DB/SQL_Drill.pdfGROUP BY in SQL

Wenn ich versuche, wie viele Kopien eines bestimmten Buchtitels zu finden sind in jedem Library_Branch.BranchName, welche Methode würde ich tun Das? Ich weiß, wenn ich die Anzahl aller Kopien in jeder Filiale bekommen will ich dies tun könnte:

SELECT sum(No_Of_Copies) as 'Total Copies' 
FROM BOOK_COPIES 
WHERE BookId in (select BookId 
       from book where title like '%The Great Gatsby%') 

Aber ich habe Probleme beim Versuch, herauszufinden, wie ich jeden Zweig unterscheiden würde und die Anzahl der Kopien. Bitte keine direkten Antworten wenn möglich!

Ich versuche es herauszufinden, es ist auf der Zunge, brauche nur ein wenig Anleitung. Edit: Kommt das näher? Ich fühle mich, als wäre ich fast da.

 SELECT sum(No_Of_Copies) as 'Total Copies' FROM BOOK_COPIES 
     WHERE BookId in 
     (
     select BookId 
     from book where title like 
     '%The Great Gatsby%' 
     ) Group By BranchName in 
     (
     SELECT BranchName 
     from LIBRARY_BRANCH 
     ) 
+1

Titel sind die Antwort, Fügen Sie die 'branch' info in' GROUP BY' und 'Select' so für jeden Zweig Gruppierung –

+0

passieren wird, ich SQL Server verwenden, es funktioniert für mich An meinem Ende. Und ok, ich werde versuchen, davon zu gehen! –

Antwort

0
select lb.BranchName, b.Title, sum(bc.no_of_copies) 
    from Library_Branch lb 
    join Book_Copies bc 
    on lb.BranchId = bc.BranchId 
    join Books b 
    on bc.BookId = b.BookId 
    group by lb.BranchName, b.Title 
0
SELECT Branch, title, sum(No_Of_Copies) as 'Total Copies' 
FROM BOOK_COPIES 
INNER JOIN BOOK 
ON Book_Copies.BOOkID = Book.BOOKID 
LEFT OUTER JOIN Branch 
ON Branch.BranchID = BOOK_Copies.BranchID 
WHERE Book.title like '%The Great Gatsby%' 
GROUP BY Branch, Title