SQLServer树型求和
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 ------------------------------------------ ALT
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 --选择临时表

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

匯入步驟如下:將 MDF 檔案複製到 SQL Server 的資料目錄(通常為 C:\Program Files\Microsoft SQL Server\MSSQL\DATA)。在 SQL Server Management Studio(SSMS)中,開啟資料庫並選擇「附加」。點選“新增”按鈕,選擇 MDF 檔案。確認資料庫名稱,點選確定按鈕即可。

對於 SQL Server 資料庫中已存在同名對象,需要採取下列步驟:確認物件類型(表格、檢視、預存程序)。如果物件為空,可使用 IF NOT EXISTS 跳過建立。如果物件有數據,使用不同名稱或修改結構。使用 DROP 刪除現有物件(謹慎操作,建議備份)。檢查架構更改,確保沒有引用刪除或重新命名的物件。

當 SQL Server 服務無法啟動時,可採取下列步驟解決:檢查錯誤日誌以確定根本原因。確保服務帳戶具有啟動服務的權限。檢查依賴項服務是否正在執行。禁用防毒軟體。修復 SQL Server 安裝。如果修復不起作用,重新安裝 SQL Server。

若要查看 SQL Server 連接埠號碼:開啟 SSMS,連線到伺服器。在物件資源管理器中找到伺服器名稱,右鍵單擊它,然後選擇“屬性”。在「連線」標籤中,查看「TCP 連接埠」欄位。

SQL Server 資料庫檔案通常儲存在下列預設位置:Windows: C:\Program Files\Microsoft SQL Server\MSSQL\DATALinux: /var/opt/mssql/data可透過修改資料庫檔案路徑設定來自訂資料庫檔案位置。

若誤刪 SQL Server 資料庫,可採取下列步驟還原:停止資料庫活動;備份日誌檔案;檢查資料庫日誌;復原選項:從備份還原;從交易日誌還原;使用 DBCC CHECKDB;使用第三方工具。請定期備份資料庫並啟用交易日誌以防止資料遺失。

在Python中,元組是不可變的序列,可以儲存不同類型的多個元素。它們通常用於表示相關值的集合。元組求和涉及將兩個或多個元組的相應元素相加以產生新的元組。然而,在某些場景下,可能需要計算元素的絕對和而不是傳統的和。在這篇文章中,我們將探討如何在Python中執行絕對元組求和。傳統元組求和在深入研究絕對元組求和之前,讓我們先了解如何進行傳統的元組求和。給定兩個長度相同的元組,我們可以使用簡單的Python循環或列表推導來計算對應元素的和 −deftuple_sum(t1,t2):

如果 SQL Server 安裝失敗,可透過下列步驟清理:解除安裝 SQL Server刪除註冊表項刪除檔案和資料夾重新啟動計算機
