您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> MSSQL >> MSSQL关于凭证科目递归,求助大神

MSSQL关于凭证科目递归,求助大神

来源:网络整理     时间:2018/1/22 2:17:04     关键词:

关于网友提出的“ MSSQL关于凭证科目递归,求助大神”问题疑问,本网通过在网上对“ MSSQL关于凭证科目递归,求助大神”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: MSSQL关于凭证科目递归,求助大神

解决方案1:

e.g.

Create table pz
(  
id int not null,  
pid int,  
kemu varchar(100),
d decimal(20,8),
c decimal(20,8),
name varchar(100)
)  
 
insert into pz(id,pid,kemu,d,c,name)   
select 1,null,'1001',200,300,'现金'
union all  
select 2,null,'1002',0,200,'存款' 
union all  
select 3,null,'1003',200,0,'票据'
union all  
select 4,2,'100201',300,0,'农行'
union all  
select 5,4,'10020102',300,0,'盐城'
union all  
select 6,5,'1002010201',500,0,'D卡'
union all  
select   8,1,'100101',1000,600,'A柜'
union all  
select 9,7,'10010102',1500,700,'A柜一层'
union all  
select 7,1,'100102',800,10001,'B柜'
union all  
select 8,1,'100101',700,1200,'A柜'
GO
;WITH CTET
AS
(
SELECT *,name2=CAST(name AS VARCHAR(100))FROM pz WHERE pid IS NULL
UNION ALL
SELECT a.*,CAST(b.name2+'->'+a.name AS VARCHAR(100)) FROM pz AS a INNER JOIN CTET AS b ON b.id=a.pid
)
SELECT  id ,
        pid ,
        kemu ,
        d ,
        c ,
        name2 AS name
FROM    CTET
ORDER BY CTET.kemu;
/*
id pid kemu d c name
1 NULL 1001 200.00000000 300.00000000 现金
8 1 100101 1000.00000000 600.00000000 现金->A柜
8 1 100101 700.00000000 1200.00000000 现金->A柜
9 7 10010102 1500.00000000 700.00000000 现金->B柜->A柜一层
7 1 100102 800.00000000 10001.00000000 现金->B柜
2 NULL 1002 0.00000000 200.00000000 存款
4 2 100201 300.00000000 0.00000000 存款->农行
5 4 10020102 300.00000000 0.00000000 存款->农行->盐城
6 5 1002010201 500.00000000 0.00000000 存款->农行->盐城->D卡
3 NULL 1003 200.00000000 0.00000000 票据
*/

  • 大神的数据挖掘代码

以上介绍了“ MSSQL关于凭证科目递归,求助大神”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/4531919.html

相关图片

相关文章