楼主确保给出的数据文件没有将nodes,parent互换吧?
怎么这里的示例与文本文件上的不同?
怎么这里的示例与文本文件上的不同?
解决方案 »
- 对象名 '#temp' 无效的问题
- 100分求"能不能查看数据库中到底有哪些表进行修改"有没有记录各个数据表的日志之类的
- 绝对的需要高手,关于批量数据库A复制到数据库B的问题,求大神帮助
- NT AUTHORITY\NETWORK SERVICE默认的密码是什么
- 请教高手,一个SQL的算法问题,邹捷大侠请进!
- 转换问题,再线等
- 事件探查器出现大量的:exec sp_cursorfetch 180150001, 16, 361, 1
- 一个有关数据导入的问题!!(从文本文件导数据时,如何保证不会导入重复记录?)
- 存储过程的问题
- 50分求解,关于显示指定标识列值的问题,哪位老大帮帮忙
- SQL Server安装
- 帮帮忙吧?
如:select sum(字段) where nodes like '1.1.1.1%'
from 表
where nodes like '1.1.1%'
group by left(nodes,5)
https://hzbss.vicp.net/tj.txt是业务数据表
declare @nodes varchar(100)
set @nodes='1.1.1' --要统计的nodes--统计处理
declare @count int,@l int,@r int
declare @t table(nodes varchar(100),level int)
select @count=0,@l=0,@r=1
insert @t select @nodes,@l
while @r>0
begin
select @l=@l+1,@count=@count+@r
insert @t select a.nodes,@l
from 表 a join @t b on a.parent=b.nodes
where b.level=@l-1
set @r=@@rowcount
end
select nodes=@nodes,数量=@count
create function f_total(
@nodes varchar(100)
)returns @re table(nodes varchar(100),数量 int)
as
begin --统计处理
declare @count int,@l int,@r int
declare @t table(nodes varchar(100),level int)
select @count=0,@l=0,@r=1
insert @t select @nodes,@l
while @r>0
begin
select @l=@l+1,@count=@count+@r
insert @t select a.nodes,@l
from 表 a join @t b on a.parent=b.nodes
where b.level=@l-1
set @r=@@rowcount
end
insert @re select nodes=@nodes,数量=@count
return
end
go--调用
select * from f_total('1.1.1')
https://hzbss.vicp.net/tj.txt是业务数据表
1.1.1.1.5 0311060001
1.1.1 0311060002
1.1.1.1.5 0311070001
1.1.1.1.5 0311070003
1.1.1.1.5 0311070004
1.1.1.1.5 0311070005
parent是我后来根据nodes,加上的信息
1.1.1.1.5 就是 1.1.1的子?tj.txt是业务数据表
那你要统计什么数量,你的表中可没有数量字段哦,难道计数?
from 部门表 a join 业务表 b on a.nodes=b.nodes
where a.nodes like '1.1.1%'
group by left(a.nodes,5)
group by left(a.nodes,5) 5 ???
from 部门表 a join 业务表 b on a.nodes=b.nodes
where a.nodes like '1.1.1%'
group by left(a.nodes,5) --len('1.1.1')的长度是5