首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

无限分类 查询有关问题

2012-03-28 
无限分类查询问题id, pid, ReportToDepth,ReportToPath100/1/200/2/521/2/5/3021/2/30/652/2/5/6/963/2/5/

无限分类 查询问题
id, pid, ReportToDepth,ReportToPath
100/1/
200/2/
521/2/5/
3021/2/30/
652/2/5/6/
963/2/5/6/9/
1794/2/5/6/9/17/
16175/2/5/6/9/17/16/
411/1/4/
1042/1/4/10/


 id, imgTypeId, imgName
11测试2
32测试2
54测试2
85测试2
25测试2
135测试2
146测试2
116测试2
76测试2
129测试2
49测试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
=========================================================================================

欢迎访问我的博客
[解决办法]
参考:

SQL code
/*标题:SER SERVER 2005中统计各节点及其子节点的数量及合计(逐级汇总)作者:爱新觉罗·毓华(十八年风雨,守得冰山雪莲花开) 时间:2011-05-06地点:重庆航天职业学院id   pid  name       cnt---- ---- ---------- -----------001  NULL 广东省        0002  001  广州市        0003  001  深圳市        0004  002  天河区        0005  003  罗湖区        0006  003  福田区        0007  003  宝安区        0008  007  西乡镇        1009  007  龙华镇        2010  007  松岗镇        3011  006  岗下镇        4012  005  上沙镇        5013  004  天河镇        6-->统计结果如下:id   name       unit        sum_cnt---- ---------- ----------- -----------001  广东省        13          21002  广州市        3           6003  深圳市        9           15004  天河区        2           6005  罗湖区        2           5006  福田区        2           4007  宝安区        4           6008  西乡镇        1           1009  龙华镇        1           2010  松岗镇        1           3011  岗下镇        1           4012  上沙镇        1           5013  天河镇        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 

热点排行