补充说明:
计算方法只涉及表一
不使用表二。
计算方法只涉及表一
不使用表二。
解决方案 »
- SQL server 中怎么样将一列时间DATETIME型转换成一列字符串类型
- SQL server2000 如何实现异地服务器商品资料数据同步啊?比较新手
- MS SQL2000获取当前时间问题
- 如何把一个数据库备份重命名后恢复到数据库中
- 有趣而实用的问题
- exec动态语句的问题
- asp配置文件安全问题!!!!!!
- sqlserver2000中使用JDBC,addBatch方法,报内存溢出???
- 层次记录集 ADO SHAPE语言 XML MS-SQLServer2000
- 大家来看看这个问题!100分
- 关于消除重复数据的问题,大力,邹建,马可帮忙呀!在线等待,解决马上给分,嫌分不够可再加
- 求一动态sql
--至少要遍历你表的某一节点
create table BOM(产品编码 INT,子产品编码 INT)
insert into BOM select 1,2
insert into BOM select 2,3
insert into BOM select 3,4
insert into BOM select 5,4
insert into BOM select 6,4
--创建用户定义函数
create function f_getlevel(@Product_ID INT)
returns @t table(Product_ID INT,Level INT)
as
begin
declare @i int
set @i = 0
insert into @t select @Product_ID,@i
while @@rowcount<>0
begin
set @i = @i + 1
insert into @t select a.产品编码,@i from BOM a,@t b where a.子产品编码=b.Product_ID
delete a from @t a where a.level = (@i-1) and exists(select 1 from BOM where 子产品编码=a.Product_ID)
end
return
end
--执行查询
select * from dbo.f_getlevel(4)
--输出结果
Product_ID Level
---------- ------
1 3
5 1
6 1