SQL 递归使用
2015-06-12 16:09
337 查看
直接贴代码吧= =
效果:
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;
效果:
相关文章推荐
- PL/SQL Developer 远程连接Oracle数据库
- Oracle 使用小计(3)
- 什么是SQL注入
- MongoDB管道聚合各阶段
- MongoDB管道聚合各阶段
- 第五章:mongodb 性能监控
- 第四章:mongodb 命令行操作&进程控制&性能优化
- IOS开发模块总结(一)本地数据存储2 sqlite
- 第三章:MongoDB导出&备份恢复&用户管理
- 第二章:MongoDB简单的增删改查
- sql2005,sql2008,sql2012清空日志语句
- Mysql 数据库权限导出
- SQL Server2000 错误21002:[SQL-DMO] 用户***已经存在的解决方法
- mysql事务
- oracle分页查询语句
- R语言使用RMySQL连接及读写Mysql数据库
- mysql主从复制(Master-Slave)
- Oracle Exadata一体机简介
- nc 服务类接口查询数据库方法
- 第一章:mysql安装for windows