http://community.csdn.net/Expert/topic/3728/3728001.xml?temp=2.212161E-02
A
1 B | C
2 D E | F G
3 H |
数字1,2,3代表层,在实际表里,这应该是不存在的
如果我想算出2层里在求出下面的两个条件呢?
求出A的a区下面与A相关的有多少个
求出A的b区下面与A相关的有多少个
再求出大于2层以上A的a区跟b区的比例为多少
<%
Db="data.Mdb"
Set Conn = Server.Createobject("Adodb.Connection")
Connstr="Provider=Microsoft.Jet.Oledb.4.0;Data Source=" & Server.Mappath(""&Db&"")
Conn.Open Connstr
Dim Icount
Response.Write "Level 1-7 a:b "
Icount=0
Counter "jxc","a",1,7,0
Response.Write Icount&":"
Icount=0
Counter "jxc","b",1,7,0
Response.Write Icount
Response.Write "<br>Level 8-? a:b "
Icount=0
Counter "jxc","a",8,99999,0
Response.Write Icount&":"
Icount=0
Counter "jxc","b",8,99999,0
Response.Write Icount
Conn.Close
Set Conn=Nothing
Function Counter(Id,Belong,Fromlevel,Endlevel,Level)
Level=Level+1
If Belong<>"" Then'第一次
Sql="Select * From data Where upname='"&Id&"' And register='"&Belong&"'"
Else
Sql="Select * From data Where upname='"&Id&"'"
End If
Set Rs=Conn.Execute(Sql)
Do While Not Rs.Eof
If Endlevel>=Level And Fromlevel<=Level Then
Icount=Icount+1
End If
If Conn.Execute("Select Count(*) From data Where upname='"&Rs("name")&"'")(0)>0 and Endlevel>=Level Then
Counter Rs("name"),"",Fromlevel,Endlevel,Level
End If
Rs.Movenext
Loop
Rs.Close
Set Rs=Nothing
Level=Level-1
End Function
%>