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

求一SQL语句,该如何解决

2012-01-16 
求一SQL语句,在SqlMobile下有一表idnameurlpida根arootb子aac子aad根broot求一Select语句,能够查出满足条

求一SQL语句,
在Sql   Mobile下有一表
id     name   url   pid
a       根       a       root
b       子       a       a
c       子       a       a
d       根       b       root

求一Select语句,能够查出满足条件的节点的子节点数。得到结果如下:
id   name   url   pid   subcounts
a     根       a       root   2
d     根       b       root   0

[解决办法]
看不明白!!
[解决办法]
create table T(id varchar(10), name varchar(10), url varchar(10), pid varchar(10))
insert T select 'a ', '根 ', 'a ', 'root '
union all select 'b ', '子 ', 'a ', 'a '
union all select 'c ', '子 ', 'a ', 'a '
union all select 'd ', '根 ', 'b ', 'root '


create function fun(@id varchar(10))
returns int
as
begin
declare @re int
select @re=count(*) from T where pid=@id

return @re
end


select *, subcounts=dbo.fun(id) from T
where pid= 'root '

--result
id name url pid subcounts
---------- ---------- ---------- ---------- -----------
a 根 a root 2
d 根 b root 0

(2 row(s) affected)
[解决办法]
select id, name, url, pid, subcounts=(select count(pid) from T where pid=a.id)
from T a
where a.pid= 'root '
[解决办法]
用group by 分组就可以

热点排行