id, pid, ReportToDepth,ReportToPath
1 0 0 /1/
2 0 0 /2/
5 2 1 /2/5/
30 2 1 /2/30/
6 5 2 /2/5/6/
9 6 3 /2/5/6/9/
17 9 4 /2/5/6/9/17/
16 17 5 /2/5/6/9/17/16/
4 1 1 /1/4/
10 4 2 /1/4/10/
id, imgTypeId, imgName
1 1 测试2
3 2 测试2
5 4 测试2
8 5 测试2
2 5 测试2
13 5 测试2
14 6 测试2
11 6 测试2
7 6 测试2
12 9 测试2
4 9 测试21
第一张表 类别表imgType(编号,父类编号,深度,包含类别编号)
第二张表 信息表imgInfo (编号,类别编号,图片名称)
查询:根目录(pid=0) 所包含的类别个数,所包含类别(包括子类)下面的图片数量
要求结果
id类别ID pid 包含的类别个数 图片数
1 0 2 2
2 0 5 9
1 0 0 /1/
2 0 0 /2/
5 2 1 /2/5/
30 2 1 /2/30/
6 5 2 /2/5/6/
9 6 3 /2/5/6/9/
17 9 4 /2/5/6/9/17/
16 17 5 /2/5/6/9/17/16/
4 1 1 /1/4/
10 4 2 /1/4/10/
id, imgTypeId, imgName
1 1 测试2
3 2 测试2
5 4 测试2
8 5 测试2
2 5 测试2
13 5 测试2
14 6 测试2
11 6 测试2
7 6 测试2
12 9 测试2
4 9 测试21
第一张表 类别表imgType(编号,父类编号,深度,包含类别编号)
第二张表 信息表imgInfo (编号,类别编号,图片名称)
查询:根目录(pid=0) 所包含的类别个数,所包含类别(包括子类)下面的图片数量
要求结果
id类别ID pid 包含的类别个数 图片数
1 0 2 2
2 0 5 9
http://topic.csdn.net/u/20120306/15/238f2ce5-8f96-4756-b8bb-af96f420046c.html?seed=658234112&r=77865502#r_77865502http://topic.csdn.net/u/20120306/15/238f2ce5-8f96-4756-b8bb-af96f420046c.html?seed=658234112&r=77865502#r_77865502
=========================================================================================
标题:SER SERVER 2005中统计各节点及其子节点的数量及合计(逐级汇总)
作者:爱新觉罗·毓华(十八年风雨,守得冰山雪莲花开)
时间:2011-05-06
地点:重庆航天职业学院id pid name cnt
---- ---- ---------- -----------
001 NULL 广东省 0
002 001 广州市 0
003 001 深圳市 0
004 002 天河区 0
005 003 罗湖区 0
006 003 福田区 0
007 003 宝安区 0
008 007 西乡镇 1
009 007 龙华镇 2
010 007 松岗镇 3
011 006 岗下镇 4
012 005 上沙镇 5
013 004 天河镇 6-->统计结果如下:
id name unit sum_cnt
---- ---------- ----------- -----------
001 广东省 13 21
002 广州市 3 6
003 深圳市 9 15
004 天河区 2 6
005 罗湖区 2 5
006 福田区 2 4
007 宝安区 4 6
008 西乡镇 1 1
009 龙华镇 1 2
010 松岗镇 1 3
011 岗下镇 1 4
012 上沙镇 1 5
013 天河镇 1 6*/create table tb(id varchar(3) , pid varchar(3) , name nvarchar(10) , cnt int)
insert into tb values('001' , null , N'广东省' , 0)
insert into tb values('002' , '001' , N'广州市' , 0)
insert into tb values('003' , '001' , N'深圳市' , 0)
insert into tb values('004' , '002' , N'天河区' , 0)
insert into tb values('005' , '003' , N'罗湖区' , 0)
insert into tb values('006' , '003' , N'福田区' , 0)
insert into tb values('007' , '003' , N'宝安区' , 0)
insert into tb values('008' , '007' , N'西乡镇' , 1)
insert into tb values('009' , '007' , N'龙华镇' , 2)
insert into tb values('010' , '007' , N'松岗镇' , 3)
insert into tb values('011' , '006' , N'岗下镇' , 4)
insert into tb values('012' , '005' , N'上沙镇' , 5)
insert into tb values('013' , '004' , N'天河镇' , 6)
go;WITH T AS
(
SELECT ID , PID , NAME , CNT FROM TB
UNION ALL
SELECT B.ID , A.PID , A.NAME , B.CNT FROM TB AS A JOIN T AS B ON A.ID = B.PID
)
SELECT p.id , p.name , count(1) unit, sum(t.cnt) sum_cnt FROM tb p , t
where isnull(p.pid,'000') = isnull(t.pid,'000') and p.name = t.name group by p.id , p.name order by p.id drop table tb