多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 數據庫 > Sqlserver > SQL Server 樹型求和的實例代碼

SQL Server 樹型求和的實例代碼

來源:程序員人生   發布時間:2014-02-12 22:27:55 閱讀次數:4488次
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go

-- this document design by zzl --
-- function : total about a tree structure
-- author : Lori.zhang ,zzl
-- display view : a1 3
-- a11 2
-- a111 1
------------------------------------------
ALTER proc [dbo].[zzl_task_tree_total] --通過指定的taskid,來獲取它和它下面的所有子元素的匯總和
@taskid int
as
declare @level_tt table(taskid nvarchar(1000),parentID nvarchar(1000),level int) --聲明一個表變更,ID,上級ID,及層次
declare @level int
set @level=0
insert @level_tt(taskid,parentID,level) --插入到表變量@level_tt,將所有上級ID為null或是為0的記錄
select taskid,parentID,@level from task where isnull (parentID,'')=''
while @@ROWCOUNT>0 --當存在這樣的記錄時
begin
set @level=@level+1 --層次變更自加1
insert @level_tt(taskid,parentID,level) --插入到表變更@level_tt,將所有的task表的上級ID等于@level_tt表的ID并且是它的低一級的記錄
select a.taskid,cast(b.parentID as varchar)+cast(a.taskid as varchar),@level
from task a,@level_tt b
where a.parentID=b.taskid and b.level=@level-1
end
select * from @level_tt --顯示級聯的結構
-- 上面程序執行的結果為:
-- taskid parentid level
-- 1 0 0
-- 2 01 1
-- 3 01 1
-- 4 012 2
-- 從上面的結果可以看到,表中的1,2,4有著關系,他們是樹型結果的,如果想求1的結果,需要將2和4的結果相加
declare @tmp table(taskid int,parentid int,total float,moneyTotal float) --再定義表變更@tmp
insert into @tmp --插入到@tmp表,從task表,@level_tt表,求和對象為realmoney,當realmoney為空時,把它設為0,求和條件為
select a.taskid,a.parentID,SUM(isnull(c.realwork,0)) as total,SUM(isnull(c.realmoney,0)) as moneytotal --parentid為parentid%,使用通配符
from task a,@level_tt b,Task c,@level_tt d
where (a.taskid=b.taskid and
c.taskid=d.taskid
and d.parentID like b.parentID+'%' )
and (a.taskid=@taskid)
group by a.taskid,a.parentID
order by a.parentID

--select @total=total from @tmp
if @@rowcount=0 --如果沒有找到記錄,就向臨時表插入空記錄
begin
insert into @tmp(taskid,parentid,total,moneytotal)values(0,0,0,0) --如果沒有記錄,就插入一個0記錄
end
select total,moneytotal from @tmp --選擇臨時表
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 国产精品久久在线观看 | 午夜爽爽爽男女免费观看hd | 日本japan色系videos护士 日本jizz在线播放 | 免费亚洲一区 | 中文字幕在线视频在线看 | 精品国产一区二区三区免费 | 免费观看福利视频 | xxx欧美888| 亚洲最大视频网站 | 最近中文字幕无吗高清视频 | 久久成人免费 | 国产精品免费一区二区三区 | 男女免费爽爽爽在线视频 | 动漫精品欧美一区二区三区 | 国产精品第一页在线 | 看片在线麻豆免费 | 女人l8毛片a一级毛片免费 | 国产精品视频分类一区 | 免费a网站 | 亚洲二区在线观看 | 免费在线一级毛片 | 一区二区三区国产精品 | 综合99| 一二三四观看在线视频中文 | 国产人人澡 | 国产在线不卡 | 欧美成视频在线观看 | 日本护士xxx | 午夜影院啪啪 | 免费亚洲一区 | 亚洲精品中文字幕乱码三区一二 | 五月婷婷伊人网 | 欧美羞羞视频 | 波多野结衣在线免费视频 | 亚洲欧美日韩在线观看看另类 | 天堂网男人 | 国产欧美日韩综合精品一区二区三区 | 国产精品原创永久在线观看 | 校园春色激情网 | 羞羞影院免费观看网址在线 | 91在线丨亚洲 |