国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

Recursive sum in parent-child hierarchy T-SQL

2024-07-21 02:49:28
字體:
來源:轉載
供稿:網友
Recursive sum in parent-child hierarchy T-SQL
---樹形(父子關系類)分級類統計(父子統計)--涂聚文 2014-08-14drop table BookKindListcreate table BookKindList(    BookKindID INT IDENTITY(1,1) PRIMARY KEY,    BookKindName nvarchar(500) not null,    BookKindParent int null)GOdrop table BookCostsPer---CREATE TABLE BookCostsPer(  ID INT IDENTITY(1,1) PRIMARY KEY,  NodeId INT NOT NULL,  [BookName] nvarchar(500) NOT NULL,  [CostsValue] DECIMAL(18,6) NOT NULL,  CostDate datetime default(getdate()))goselect * from BookKindListinsert into BookKindList(BookKindName,BookKindParent) values('塗聚文書目錄',null)insert into BookKindList(BookKindName,BookKindParent) values('文學',1)insert into BookKindList(BookKindName,BookKindParent) values('設計藝術',1)insert into BookKindList(BookKindName,BookKindParent) values('自然科學',1)insert into BookKindList(BookKindName,BookKindParent) values('小說',2)insert into BookKindList(BookKindName,BookKindParent) values('詩詞散曲',2)insert into BookCostsPer(NodeId,[BookName],[CostsValue],CostDate) values(3,'設計理論',450,'2014-01-02')insert into BookCostsPer(NodeId,[BookName],[CostsValue],CostDate) values(4,'計算機科學',400,'2014-01-02')insert into BookCostsPer(NodeId,[BookName],[CostsValue],CostDate) values(5,'傲慢與偏見',550,'2014-01-02')insert into BookCostsPer(NodeId,[BookName],[CostsValue],CostDate) values(6,'宋詞',150,'2014-01-02')insert into BookCostsPer(NodeId,[BookName],[CostsValue],CostDate) values(3,'版式設計',150,'2013-05-02')insert into BookCostsPer(NodeId,[BookName],[CostsValue],CostDate) values(4,'C語言設計',200,'2013-05-02')insert into BookCostsPer(NodeId,[BookName],[CostsValue],CostDate) values(5,'湯姆叔叔的小屋',530,'2013-05-02')insert into BookCostsPer(NodeId,[BookName],[CostsValue],CostDate) values(6,'唐詩',110,'2013-05-02')--視圖create view v_BookCostsPerasselect *,year(CostDate) as 'YearName' from BookCostsPergo---統計WITH DirectReport (BookKindParent, BookKindID, [BookKindName], LEVEL, Struc)AS(-- anchorSELECT a.BookKindParent, a.BookKindID, a.BookKindName, 0 AS LEVEL, cast(':' + cast(a.BookKindID AS varchar) + ':' AS varchar (100))  AS StrucFROM BookKindList aWHERE a.BookKindParent IS NULLUNION ALL-- recursiveSELECT a.BookKindParent, a.BookKindID, a.BookKindName, LEVEL +1, cast(d.Struc + cast(a.BookKindID AS varchar)+ ':'  AS varchar(100)) AS StrucFROM BookKindList a  JOIN DirectReport d ON d.BookKindID = a.BookKindParent)SELECT d.BookKindParent, d.BookKindID, d.BookKindName, d.level, d.Struc,sum(CASE WHEN d.Struc = SUBSTRING(dd.Struc, 1, len(d.Struc))THEN c.CostsValue ELSE 0 END) AS    TotCostFROM DirectReport d,DirectReport ddJOIN BookCostsPer c ON c.NodeId = dd.BookKindIDGROUP BY d.BookKindParent,d.BookKindID, d.BookKindName, d.level, d.StrucORDER BY  d.BookKindIDGO-----按年各父子類合計with DirectReport (BookKindParent, BookKindID, [BookKindName], Level, Struc, [YearName])as(  -- anchor  select a.BookKindParent, a.BookKindID, a.BookKindName, 0 as Level, cast(':' + cast(a.BookKindID as varchar) + ':' as varchar (100))  as Struc, y.[YearName]  from BookKindList a, YearNames y  where a.BookKindParent is null  union all  -- recursive  Select a.BookKindParent, a.BookKindID, a.BookKindName, Level +1, cast(d.Struc + cast(a.BookKindID as varchar)+ ':'  as varchar(100)) as Struc, d.[YearName]  from BookKindList a    join DirectReport d on d.BookKindID = a.BookKindParent  )Select d.BookKindParent, d.[YearName], d.BookKindID, d.BookKindName, d.level, d.Struc,-- dd.Struc,sum(case when d.Struc = SUBSTRING(dd.Struc, 1, len(d.Struc))then c.CostsValue else 0 end) as TotCostfrom DirectReport d  left join DirectReport dd on d.[YearName] = dd.[YearName]  join v_BookCostsPer c on c.[YearName] = dd.[YearName] and c.NodeId = dd.BookKindID group by d.BookKindParent, d.[YearName], d.BookKindID, d.BookKindName, d.level, d.Strucorder by  d.[YearName], d.BookKindIDGO


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 错那县| 永胜县| 安岳县| 西峡县| 雅安市| 南川市| 榆树市| 凤台县| 郁南县| 崇阳县| 稻城县| 抚远县| 宽甸| 惠州市| 长宁县| 永德县| 荔浦县| 辉县市| 娱乐| 陵水| 林甸县| 新邵县| 黄山市| 巴马| 大关县| 武平县| 昌乐县| 丹凤县| 图们市| 安塞县| 兴城市| 枣庄市| 新化县| 会理县| 淳化县| 济南市| 高邑县| 新津县| 万安县| 安西县| 禄劝|