二、
书表(books)
book_id,book_name,creatdate,Lastmodifydate,decription
001,三个人的世界,2005-02-02,2005-07-07,NULL
作者表(authors)
A_id,A_name
01,王纷
02,李尚
03,泰和
部门表(depts)
d_id,d_name
001,编辑一部
002,编辑二部
003,编辑三部
书和作者关联表(bookmap)
book_id,A_id
001,01
001,02
001,03
部门和作者关联表(depmap)
d_id,a_id
001,01
002,02
003,03
找出每个部门的所写的总书两,比如,一本书有3个人写,如果三个人在不同的部门,则每个部门的总数量就是1.最后结果如下:
部门,书量
编辑一部,1
编辑二部,1
编辑三部,1
书表(books)
book_id,book_name,creatdate,Lastmodifydate,decription
001,三个人的世界,2005-02-02,2005-07-07,NULL
作者表(authors)
A_id,A_name
01,王纷
02,李尚
03,泰和
部门表(depts)
d_id,d_name
001,编辑一部
002,编辑二部
003,编辑三部
书和作者关联表(bookmap)
book_id,A_id
001,01
001,02
001,03
部门和作者关联表(depmap)
d_id,a_id
001,01
002,02
003,03
找出每个部门的所写的总书两,比如,一本书有3个人写,如果三个人在不同的部门,则每个部门的总数量就是1.最后结果如下:
部门,书量
编辑一部,1
编辑二部,1
编辑三部,1
select d_name,书量 from depts a left join depmap b on a.d_id=b.d_id
left join (select a_id,书量=count(*) from [bookmap] group by a_id) c
on b.a_id=c.a_id--结果:
d_name cnt
-------- -----------
编辑一部 1
编辑二部 1
编辑三部 1
(select a.a_id,count(a.book_id) as 书量 from bookmap a left join books b on a.book_id=b.book_id group by a.a_id) as P
on p.a_id=d.a_id group by d_name order by d_name desc不知道为什么结果是:d_name 书量
-------------------------------------------------- -----------
编辑一部 1
编辑三部 1
编辑二部 1请高手帮忙纠正一下。
----------------
select * from(
select d_name,sum(P.书量) as 书量 from depts c left join depmap d on c.d_id = d.d_id left join
(select a.a_id,count(a.book_id) as 书量 from bookmap a left join books b on a.book_id=b.book_id group by a.a_id) as P
on p.a_id=d.a_id group by d_name order by d_name desc )as A
order by d_name collate Chinese_PRC_Stroke_ci_as