SQL 递归使用
2024-09-20 20:36:56
直接贴代码吧= =
WITH CTE AS
(
-->Begin 一个定位点成员
SELECT COUNTRYORDERID,HSNAME, COUNTRYNAME,PARENTORDERID,
IMPORTCURRENTSUMAMOUNT,
IMPORTCONTRASTSUMAMOUNTPERCENTAGE,
IMPORTCURRENTSUMAMOUNTPERCENTAGE,
CAST(COUNTRYNAME AS NVARCHAR(max)) AS TE,0 AS Levle FROM #TempTableDetail
WHERE PARENTORDERID IS NULL AND HSNAME IN (SELECT HSNAME FROM #TempTableData)
-->End
UNION ALL
-->Begin一个递归成员
SELECT #TempTableDetail.COUNTRYORDERID, #TempTableDetail.HSNAME, #TempTableDetail.COUNTRYNAME,#TempTableDetail.PARENTORDERID,
#TempTableDetail.IMPORTCURRENTSUMAMOUNT,
#TempTableDetail.IMPORTCONTRASTSUMAMOUNTPERCENTAGE,
#TempTableDetail.IMPORTCURRENTSUMAMOUNTPERCENTAGE,
CAST(REPLICATE(' ',LEN(CTE.TE))+#TempTableDetail.COUNTRYNAME AS NVARCHAR(MAX)) AS TE,Levle+1 AS Levle
FROM #TempTableDetail INNER JOIN CTE
ON #TempTableDetail.PARENTORDERID=CTE.COUNTRYORDERID
--group by #TempTableDetail.HSNAME
WHERE #TempTableDetail.HSNAME IN (SELECT HSNAME FROM #TempTableData)
-->End
) INSERT INTO #TempResult(COUNTRYORDERID,HSNAME,COUNTRYNAME,IMPORTCONTRASTSUMAMOUNTPERCENTAGE,IMPORTCURRENTSUMAMOUNTPERCENTAGE,IMPORTCURRENTSUMAMOUNT)
SELECT DISTINCT COUNTRYORDERID, HSNAME,TE,IMPORTCONTRASTSUMAMOUNTPERCENTAGE,
IMPORTCURRENTSUMAMOUNTPERCENTAGE,IMPORTCURRENTSUMAMOUNT FROM CTE ORDER BY HSNAME,COUNTRYORDERID;
效果:
最新文章
- java 读写properties
- js call 以及apply
- 【Java学习笔记】Map接口的子接口---TreeMap
- vs 中怎么用c改变部分字体颜色
- 【JavaScript】关于delete
- jsp的include两种使用方法区别
- 使用Express创建一个简单的示例
- ajax读取txt文件
- OGG数据仓库以及单向复制(一)
- MVC插件实现
- Linux基础(八)
- ant安装和验证
- android 通讯类资料整理
- HTTP接口-跨域-callback
- 第三篇 功能实现(1) (Android学习笔记)
- C# string 转 bool
- BASE_DIR 拼接文件路径
- DOM-XML(解析与创建)
- Visual Studio 2017企业版 Enterprise 注册码 专业版Professional 激活码key
- Android 内存优化[转]