sql server mseq:
I have 3 tables
AUTHORS
BOOKS
SW_BOOK_AUTHOR_JUNCTION this is a junction table joining authors to books
as this is a many to many relationship
what i want to do is list my authors and a count of how many books they have
each authored.
author ! count of books
--------!-----------------
j.smith ! 24
d.jones ! 3
d.lee ! 7
and so on
what i end up with is this
author ! count of books
--------!-----------------
j.smith ! 34
d.jones ! 34
d.lee ! 34
i cant seem to get the subselect to count books for only that author.
forgive me but im very new at sql any help is appreciated. my sql is below
im using ms sql server 2000
SELECT
"AUTHORS"."LAST_NAME",
"AUTHORS"."FIRST_NAME",
"AUTHORS"."AU_STATUS",
"AUTHORS"."AUTHOR_ID",
"BOOKS"."BOOK_ID",
({FN CONCAT({FN CONCAT(RTRIM("AUTHORS"."LAST_NAME"), ', ')},
RTRIM("AUTHORS"."FIRST_NAME"))}) AS AUTHOR_FULL,
(SELECT COUNT("BOOKS"."BOOK_ID")
FROM
("daniellukefield"."danie3686"."AUTHORS" "AUTHORS"
LEFT OUTER JOIN "daniellukefield"."dbo"."SW_BOOK_AUTHOR_JUNCTION"
"SW_BOOK_AUTHOR_JUNCTION"
ON "AUTHORS"."AUTHOR_ID"="SW_BOOK_AUTHOR_JUNCTION"."AUTHOR_ID")
INNER JOIN "daniellukefield"."danie3686"."BOOKS" "BOOKS"
ON "SW_BOOK_AUTHOR_JUNCTION"."BOOK_ID"="BOOKS"."BOOK_ID"
WHERE "AUTHORS"."AU_STATUS"='ACTIVE' AND "AUTHORS"."AUTHOR_ID" =
"AUTHORS"."AUTHOR_ID"
) AS TOTAL_BOOKS
FROM
("daniellukefield"."danie3686"."AUTHORS" "AUTHORS"
LEFT OUTER JOIN "daniellukefield"."dbo"."SW_BOOK_AUTHOR_JUNCTION"
"SW_BOOK_AUTHOR_JUNCTION"
ON "AUTHORS"."AUTHOR_ID"="SW_BOOK_AUTHOR_JUNCTION"."AUTHOR_ID")
INNER JOIN "daniellukefield"."danie3686"."BOOKS" "BOOKS"
ON "SW_BOOK_AUTHOR_JUNCTION"."BOOK_ID"="BOOKS"."BOOK_ID"
WHERE "AUTHORS"."AU_STATUS"='ACTIVE'
ORDER BY {FN CONCAT({FN CONCAT(RTRIM("AUTHORS"."LAST_NAME"), ', ')},
RTRIM("AUTHORS"."FIRST_NAME"))}