日期:2014-05-18  浏览次数:20453 次

sql server进行汇总,谢谢各位帮忙
大家好,我想做一个网站栏目的统计系统
数据库结构:
ipsum_class(栏目表)
id(自增长字段)
classname(栏目名称)
classname(栏目路径)

ipsum_record记录访问网站页面的记录
最主要的就是一个URL字段

测试数据
ipsum_class
id       classname       classpath
1         足彩                     http://localhost/zc
2         足彩新闻             http://localhost/zc/zcxw
(命名有一定的规律的,足彩新闻是足彩的子栏目,统计栏目时要把下面的所有子栏目一起统计)
ipsum_record
URL
http://localhost/zc/index.shtml
http://localhost/zc/zcxw/1.shtml
http://localhost/zc/2.shtml

我的想法是将ipsum_record中url按照栏目进行汇总,然后插入到另外一张表(id(自增长),classid(与ipsum_class的id外键关联),urlcount)
按照上面的测试数据我想要的结果
id         classid       urlcount
1             1                       3
2             2                       1


不知道说清楚了吗?很急,谢谢各位帮忙了啊
如果不清楚请联系我,msn:teng_s2000@126.com
qq:37210956

------解决方案--------------------
insert into newTable(classid,urlcount)
select
a.id,count(b.URL)
from
ipsum_class a
left join
ipsum_record b
on
b.URL like a.classpath+ '% '
group by
a.id
------解决方案--------------------
create table ipsum_class(id int,classname varchar(20),classpath varchar(100))
insert ipsum_class
select 1, '足彩 ', 'http://localhost/zc ' union all
select 2, '足彩新闻 ', 'http://localhost/zc/zcxw '


create table ipsum_record(URL varchar(100))
insert ipsum_record
select 'http://localhost/zc/index.shtml ' union all
select 'http://localhost/zc/zcxw/1.shtml ' union all
select 'http://localhost/zc/2.shtml '


insert 表
select id,urlcount=(select count(1) from ipsum_record where charindex(classpath,URL)> 0 ) from ipsum_class