请问多个表查询统计的一个SQL语句

请教多个表查询统计的一个SQL语句
现有几个书架,每个书架上放若干书,知道每本书的总页数,每本书的目录,每个目录的小节
现在想统计每个书架上的书的总册数,总页数,目录总数,及小节总数

即有四个表

书架表A
书架ID 书架名     书ID  书名
1        书架A     1    NAME1
1        书架A     2    NAME2
2        书架B     3    NAME3
2        书架B     4    NAME4 

书表B
书ID    书页数
1        100
2        200
3        300
4        400

目录表C
书ID    目录ID
1        1000         
1        1001
2        1002
2        1003
3        1004
3        1005
4        1006
4        1007


小节表D
目录ID       小节名称
1000          a
1000          b
1001          a
1001          b
1002          a
1002          b
1003          a
1003          b
1003          c
........
1007          f




想形成下面这样的统计结果

书架名    书总数   总页数  目录总数   小节总数
书架A                   
书架B      

请大家教我怎么写这个SQL语句啊?

------解决方案--------------------
create table A(书架ID int,书架名  varchar(10),书ID int, 书名 varchar(10))
insert into A
select '1','书架A','1','NAME1'
union all select '1','书架A','2','NAME2'
union all select '2','书架B','3','NAME3'
union all select '2','书架B','4','NAME4'

create table B(书ID  int,书页数 int)
insert into B
select 1,100
union all select 2,200
union all select 3,300
union all select 4,400

create table C(书ID  int,目录ID int)
insert into C
select 1,1000
union all select 1,1001
union all select 2,1002
union all select 2,1003
union all select 3,1004
union all select 3,1005
union all select 4,1006
union all select 4,1007

create table D(目录ID  int,小节名称 varchar(10))
insert into D
select 1000,'a'
union all select 1000,'b'
union all select 1001,'a'
union all select 1001,'b'
union all select 1002,'a'
union all select 1002,'b'
union all select 1003,'a'
union all select 1003,'b'
union all select 1003,'c'
go


select A.书架名,count(1) as 书总数,SUM(B.书页数) as 书页数,COUNT(C.目录ID) as 目录总数,count(D.小节名称) as 小节名称
from A
left join B on A.书ID=B.书ID
left join C on A.书ID=C.书ID
left join D on C.目录ID=D.目录ID
group by A.书架名

/*
书架名 书总数 书页数 目录总数 小节名称
书架A 9 1400 9 9
书架B 4 1400 4 0
*/



------解决方案--------------------
第一次统计有误,应该这样:

create table A(书架ID int,书架名  varchar(10),书ID int, 书名 varchar(10))
insert into A
select '1','书架A','1','NAME1'
union all select '1','书架A','2','NAME2'
union all select '2','书架B','3','NAME3'