--測試
create
table
ta (
專案varchar
(20),
上級專案
varchar
(20),
num int
)insert
taselect
'a','',
100 union all
select
'b',
'a',
200 union all
select
'c',
'b',
300 union all
select
'd',
'b',
400 union all
select
'e',
'c',
500 union all
select
'f',
'd',
600 union all
select
'h',
'e',
700 union all
select
'g',
'f',
800--
如果要顯示上級的專案
:create
function
roy_f(@專案
varchar
(20))
returns
varchar
(100)
asbegin
declare
@上級專案
varchar
(20)
select
@上級專案
=上級專案
from
ta where專案=
@專案return
case
when
@上級專案
isnull
then
null
else
isnull
(dbo.
roy_f(
@上級專案
)+'-',''
)+@專案end
end--
如果顯示各級專案的彙總金額
:create
function
roy_f2(@專案
varchar
(20))
returns
intas
begin
declare
@tb table(專案
varchar
(20),
上級專案
varchar
(20),
num int
,lev int
)declare
@i int
,@sum int
set @i=
0insert
@tb select
*,@i from
ta where專案=
@專案while
@@rowcount
>
0begin
set @i=
@i+1
insert
@tbselect
a.*,
@ifrom
ta a,
@tb b
where
b.專案=a.
上級專案
andb.
lev=
@i-1
endselect
@sum=
sum(
num)
from
@tbreturn
@sum
end--測試:
select專案,
金額=dbo.
roy_f2(
專案),關係=
dbo.
roy_f(專案)
from
ta/*
專案金額
關係-------------------- -----------
---------------
a3600ab
3500
a-bc
1500
a-b-c
d1800
a-b-d
e1200
a-b-c-e
f1400
a-b-d-f
h700
a-b-c-e-h
g800
a-b-d-f-g
(所影響的行數為
8 行)
*/--
用儲存過程統計
:create
proc
roy_p @
專案varchar
(20)
asbegin
declare
@i int
set@i=
0select
*,級數
=@i into
#from
ta where專案=
@專案while
@@rowcount
>
0begin
set@i=
@i+1
insert
#select
ta.*,級數=
@ifrom
ta,# b
where
ta.上級專案=b.
專案and
b.級數
=@i-
1end
select
[sum]=
sum(
num)
from
#end
--測試
:exec
roy_p 'a'
/*sum
-----------
3600
(所影響的行數為
1 行)
*/--
刪除測試
:drop
function
roy_f,
roy_f2
drop
proc
roy_p
drop
table
ta
用儲存過程實現翻頁
use card db go object storedprocedure dbo pr get star user list v2 script date 03 05 2010 15 27 18 set ansi nulls on goset quoted identifier on go 查詢s...
用棧實現Fibnacci遞迴過程的非遞迴演算法
include include using namespace std 模擬遞迴工作棧。data表示當前狀態的引數值 state表示當前棧的完成狀態,state 2 表示未計算,state 1 表示計算了遞迴樹左部,state 0 表示計算了整個遞迴子樹 struct stacknode stack...
mysql儲存過程實現遞迴查詢
建表 create table organization orgcode varchar 40 not null primary key comment 機構編號 parentcode varchar 40 comment 父機構編號 orgname varchar 100 comment 機構名稱...