树形细表

--二级单位在建项目;
IF 0!=EXISTSTABLE('#XMJBXX')
THEN
DROP TABLE #XMJBXX;
END;
CREATE TABLE #XMJBXX AS
SELECT 
	sjdw.F_FULL_DEPT_NAME AS DeptName,	
	-XM.F_ID AS F_ID,
	XM.F_SGXMBM_ID AS F_SGXMBM_ID,
	ext.EF_JZMJM AS JZMJ,
	ext.EF_XLCDKM AS LCKM,
	ext.EF_ZJ_K AS EFZJ
	FROM TE_XM_XMJBXX xm
LEFT JOIN T_EXT_XMJBXX ext  ON xm.F_ID = ext.F_EXT_ID 
LEFT JOIN T_ORG_DEPT  sjdw ON sjdw.F_DEPT_ID = xm.F_SGXMBM_ID
where xm.F_PID=0  	 --父子项目去重
AND xm.F_XMZT_K='ZS' 
AND ext.EF_ZJ_K IS NOT NULL;


--二级单位在建项目所有产值;
IF 0!=EXISTSTABLE('#SYCZ')
THEN
DROP TABLE #SYCZ;
END;
CREATE TABLE #SYCZ AS
SELECT 
		-----------------------分组字段-----------------
		-XM.F_ID AS ID,
		-XM.F_ID AS OrderNo,
		------------------------------------------------
		XM.DeptName AS SGJD,              
		czwcqkcx.LJHTJE AS HTE,					        --  合同额
		czwcqkcx.LJWCCZJE AS JZHTE,				        --  结转合同额
		(XM.JZMJ)/10000  AS JZMJ,					    --  建筑面积(万㎡)
		XM.LCKM  AS LCKM,				    		    --  里程
		XM.EFZJ AS EFZJ
FROM #XMJBXX XM 
LEFT JOIN #CZWCQKCX czwcqkcx  ON czwcqkcx.OrgID = xm.F_SGXMBM_ID;
 
-- 取基础施工
IF 0!=EXISTSTABLE('#JCSG')
THEN
DROP TABLE #JCSG;
END;
CREATE TABLE #JCSG AS
SELECT 	
		---------------分组字段---------------
		-SYCZ.ID AS ID,
		-1 AS PID,
		'基础施工汇总/基础施工' AS FullCode,
		'基础施工' AS Code,
		1 AS IsLeaf,
		2 AS LevelS,
		SYCZ.OrderNo AS OrderNo,
		-------------------------------------
		SYCZ.SGJD AS SGJD,					    		--  工程项目名称	
		1 as SL,                                        --  数量                     
		SYCZ.HTE AS HTE,					            --  合同额
		SYCZ.JZHTE AS JZHTE,				            --  结转合同额
		SYCZ.JZMJ AS JZMJ,				    		    --  建筑面积(万㎡)			    		
		SYCZ.LCKM  AS LC								--  里程
FROM #SYCZ SYCZ   
WHERE   SYCZ.EFZJ = 01 ;

-- 取基础施工合计
IF 0!=EXISTSTABLE('#HJJCSG')
THEN
DROP TABLE #HJJCSG;
END;
CREATE TABLE #HJJCSG AS
SELECT  
		---------------分组字段---------------
		-1 AS ID,
		-0 AS PID,
		'基础施工汇总' AS FullCode,
		'基础施工汇总' AS Code,
		0 AS IsLeaf,
		1 AS LevelS,
		1 AS OrderNo,
		-------------------------------------
		'基础施工' AS SGJD,
		COUNT(*)  AS SL,
		ISNULL(SUM (ISNULL(HTE , 0.00)), 0.00) as HTE, 
		ISNULL(SUM (ISNULL(JZHTE, 0.00)), 0.00)  as JZHTE,
	    ISNULL(SUM (ISNULL(JZMJ , 0.00)), 0.00) AS JZMJ, 
	    ISNULL(SUM (ISNULL(LC, 0.00)), 0.00)  AS LC     
FROM  #JCSG ;

-- 取主体施工
IF 0!=EXISTSTABLE('#ZTSG')
THEN
DROP TABLE #ZTSG;
END;
CREATE TABLE #ZTSG AS
SELECT 	
		---------------分组字段---------------
		-SYCZ.ID AS ID,
		-2 AS PID,
		'主体施工汇总/主体施工' AS FullCode,
		'主体施工' AS Code,
		1 AS IsLeaf,
		2 AS LevelS,
		SYCZ.OrderNo AS OrderNo,
		-------------------------------------
		SYCZ.SGJD AS SGJD,					    		--  工程项目名称	
		1 as SL,                                        --  数量                     
		SYCZ.HTE AS HTE,					            --  合同额
		SYCZ.JZHTE AS JZHTE,				            --  结转合同额
		SYCZ.JZMJ AS JZMJ,				    		    --  建筑面积(万㎡)			    		
		SYCZ.LCKM  AS LC 								--  里程
FROM #SYCZ SYCZ   
WHERE   SYCZ.EFZJ = 02 ; 


-- 取主体施工合计
IF 0!=EXISTSTABLE('#HJZTSG')
THEN
DROP TABLE #HJZTSG;
END;
CREATE TABLE #HJZTSG AS
SELECT
		---------------分组字段---------------
		-2 AS ID,
		-0 AS PID,
		'主体施工汇总' AS FullCode,
		'主体施工汇总' AS Code,
		0 AS IsLeaf,
		1 AS LevelS,
		2 AS OrderNo,
		-------------------------------------
		'主体施工' AS SGJD,
		COUNT(*)  AS SL,
		ISNULL(SUM (ISNULL(HTE , 0.00)), 0.00) as HTE, 
		ISNULL(SUM (ISNULL(JZHTE, 0.00)), 0.00)  as JZHTE,
	    ISNULL(SUM (ISNULL(JZMJ , 0.00)), 0.00) AS JZMJ, 
	    ISNULL(SUM (ISNULL(LC, 0.00)), 0.00)  AS LC  
FROM #ZTSG;

-- 取二次结构
IF 0!=EXISTSTABLE('#ECJG')
THEN
DROP TABLE #ECJG;
END;
CREATE TABLE #ECJG AS
SELECT 	
		---------------分组字段---------------
		-SYCZ.ID AS ID,
		-3 AS PID,
		'二次结构汇总/二次结构' AS FullCode,
		'二次结构' AS Code,
		1 AS IsLeaf,
		2 AS LevelS,
		SYCZ.OrderNo AS OrderNo,
		-------------------------------------
		SYCZ.SGJD AS SGJD,					    		--  工程项目名称	
		1 as SL,                                        --  数量                     
		SYCZ.HTE AS HTE,					            --  合同额
		SYCZ.JZHTE AS JZHTE,				            --  结转合同额
		SYCZ.JZMJ AS JZMJ,				    		    --  建筑面积(万㎡)			    		
		SYCZ.LCKM  AS LC								--  里程
FROM #SYCZ SYCZ   
WHERE   SYCZ.EFZJ = 03 ;

-- 取合计二次结构
IF 0!=EXISTSTABLE('#HJECJG')
THEN
DROP TABLE #HJECJG;
END;
CREATE TABLE #HJECJG AS
SELECT	
		---------------分组字段---------------
		-3 AS ID,
		-0 AS PID,
		'二次结构汇总' AS FullCode,
		'二次结构汇总' AS Code,
		0 AS IsLeaf,
		1 AS LevelS,
		3 AS OrderNo,
		-------------------------------------
		'二次结构' AS SGJD,
		COUNT(*)  AS SL,
		ISNULL(SUM (ISNULL(HTE , 0.00)), 0.00) as HTE, 
		ISNULL(SUM (ISNULL(JZHTE, 0.00)), 0.00)  as JZHTE,
	    ISNULL(SUM (ISNULL(JZMJ , 0.00)), 0.00) AS JZMJ, 
	    ISNULL(SUM (ISNULL(LC, 0.00)), 0.00)  AS LC 
FROM #ECJG;

-- 取机电及装饰装修
IF 0!=EXISTSTABLE('#JDJZSZX')
THEN
DROP TABLE #JDJZSZX;
END;
CREATE TABLE #JDJZSZX AS
SELECT 	
		---------------分组字段---------------
		-SYCZ.ID AS ID,
		-4 AS PID,
		'机电及装饰装修汇总/机电及装饰装修' AS FullCode,
		'机电及装饰装修' AS Code,
		1 AS IsLeaf,
		2 AS LevelS,
		SYCZ.OrderNo AS OrderNo,
		-------------------------------------
		SYCZ.SGJD AS SGJD,					    		--  工程项目名称	
		1 as SL,                                        --  数量                     
		SYCZ.HTE AS HTE,					            --  合同额
		SYCZ.JZHTE AS JZHTE,				            --  结转合同额
		SYCZ.JZMJ AS JZMJ,				    		    --  建筑面积(万㎡)			    		
		SYCZ.LCKM  AS LC								--  里程
FROM #SYCZ SYCZ   
WHERE   SYCZ.EFZJ = 04 ;

-- 取合计机电及装饰装修
IF 0!=EXISTSTABLE('#HJJDJZSZX')
THEN
DROP TABLE #HJJDJZSZX;
END;
CREATE TABLE #HJJDJZSZX AS
SELECT	
		---------------分组字段---------------
		-4 AS ID,
		-0 AS PID,
		'机电及装饰装修汇总' AS FullCode,
		'机电及装饰装修汇总' AS Code,
		0 AS IsLeaf,
		1 AS LevelS,
		4 AS OrderNo,
		-------------------------------------
		'机电及装饰装修' AS SGJD,
		COUNT(*)  AS SL,
		ISNULL(SUM (ISNULL(HTE , 0.00)), 0.00) as HTE, 
		ISNULL(SUM (ISNULL(JZHTE, 0.00)), 0.00)  as JZHTE,
	    ISNULL(SUM (ISNULL(JZMJ , 0.00)), 0.00) AS JZMJ, 
	    ISNULL(SUM (ISNULL(LC, 0.00)), 0.00)  AS LC 
FROM #JDJZSZX;

-- 取停工/缓建
IF 0!=EXISTSTABLE('#TGHJ')
THEN
DROP TABLE #TGHJ;
END;
CREATE TABLE #TGHJ AS
SELECT 	
		---------------分组字段---------------
		-SYCZ.ID AS ID,
		-5 AS PID,
		'停工/缓建汇总/停工/缓建' AS FullCode,
		'停工/缓建' AS Code,
		1 AS IsLeaf,
		2 AS LevelS,
		SYCZ.OrderNo AS OrderNo,
		-------------------------------------
		SYCZ.SGJD AS SGJD,					    		--  工程项目名称	
		1 as SL,                                        --  数量                     
		SYCZ.HTE AS HTE,					            --  合同额
		SYCZ.JZHTE AS JZHTE,				            --  结转合同额
		SYCZ.JZMJ AS JZMJ,				    		    --  建筑面积(万㎡)			    		
		SYCZ.LCKM  AS LC								--  里程
FROM #SYCZ SYCZ   
WHERE   SYCZ.EFZJ = 05 ;

-- 取合计停工/缓建
IF 0!=EXISTSTABLE('#HJTGHJ')
THEN
DROP TABLE #HJTGHJ;
END;
CREATE TABLE #HJTGHJ AS
SELECT 
	---------------分组字段---------------
	-5 AS ID,
	-0 AS PID,
	'停工/缓建汇总' AS FullCode,
	'停工/缓建汇总' AS Code,
	0 AS IsLeaf,
	1 AS LevelS,
	5 AS OrderNo,
	-------------------------------------
		'停工/缓建' AS SGJD,
		COUNT(*)  AS SL,
		ISNULL(SUM (ISNULL(HTE , 0.00)), 0.00) as HTE, 
		ISNULL(SUM (ISNULL(JZHTE, 0.00)), 0.00)  as JZHTE,
	    ISNULL(SUM (ISNULL(JZMJ , 0.00)), 0.00) AS JZMJ, 
	    ISNULL(SUM (ISNULL(LC, 0.00)), 0.00)  AS LC 
FROM #TGHJ;

-- 取收尾
IF 0!=EXISTSTABLE('#SW')
THEN
DROP TABLE #SW;
END;
CREATE TABLE #SW AS
SELECT 	
		---------------分组字段---------------
		-SYCZ.ID AS ID,
		-6 AS PID,
		'收尾汇总/收尾' AS FullCode,
		'收尾' AS Code,
		1 AS IsLeaf,
		2 AS LevelS,
		SYCZ.OrderNo AS OrderNo,
		-------------------------------------	
		SYCZ.SGJD AS SGJD,					    		--  工程项目名称	
		1 as SL,                                        --  数量                     
		SYCZ.HTE AS HTE,					            --  合同额
		SYCZ.JZHTE AS JZHTE,				            --  结转合同额
		SYCZ.JZMJ AS JZMJ,				    		    --  建筑面积(万㎡)			    		
		SYCZ.LCKM  AS LC								--  里程
FROM #SYCZ SYCZ   
WHERE   SYCZ.EFZJ = 06 ;

-- 取合计收尾
IF 0!=EXISTSTABLE('#HJSW')
THEN
DROP TABLE #HJSW;
END;
CREATE TABLE #HJSW AS
SELECT 
		---------------分组字段---------------
		-6 AS ID,
		-0 AS PID,
		'收尾汇总' AS FullCode,
		'收尾汇总' AS Code,
		0 AS IsLeaf,
		1 AS LevelS,
		6 AS OrderNo,
		-------------------------------------
		'收尾' AS SGJD,
		COUNT(*)  AS SL,
		ISNULL(SUM (ISNULL(HTE , 0.00)), 0.00) as HTE, 
		ISNULL(SUM (ISNULL(JZHTE, 0.00)), 0.00)  as JZHTE,
	    ISNULL(SUM (ISNULL(JZMJ , 0.00)), 0.00) AS JZMJ, 
	    ISNULL(SUM (ISNULL(LC, 0.00)), 0.00)  AS LC 
FROM #SW;

--输出---
SELECT * FROM #HJJCSG 
UNION ALL 
SELECT * FROM #JCSG 
UNION ALL 
SELECT * FROM #HJZTSG
UNION ALL 
SELECT * FROM #ZTSG
UNION ALL 
SELECT * FROM #HJECJG
UNION ALL 
SELECT * FROM #ECJG
UNION ALL 
SELECT * FROM #HJJDJZSZX 
UNION ALL 
SELECT * FROM #JDJZSZX 
UNION ALL 
SELECT * FROM #HJTGHJ
UNION ALL 
SELECT * FROM #TGHJ
UNION ALL 
SELECT * FROM #HJSW
UNION ALL 
SELECT * FROM #SW;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值