CREATE PROCEDURE ProTJ_YCTJ @Lev varchar(100) AS
declare @strDM varchar(10),@strMC varchar(10)
declare @sSQL varchar(8000)
declare @BaseSQL nvarchar(500),@ZJSQL nvarchar(1000), @YLLSQL nvarchar(1000),@ZLLSQL nvarchar(1000),@JSLSQL nvarchar(1000),@CSLSQL nvarchar(1000), @GSLSQL nvarchar(1000)
IF @Lev='工作站'
BEGIN
Set @BaseSQL="Select XZDM AS MCPXM, XZMC AS MC," +
"Case When LMSYQ='1-国有' then 0 " +
"When LMSYQ='2-集体' then 1 " +
"When LMSYQ='3-民营' then 2 " +
"When LMSYQ='4-外资' then 3 " +
"When LMSYQ='5-其他' then 4 " +
"End As LMSYQPXM,LMSYQ As LMSYQ, " +
"Case When YLZ='31-短轮伐用材' then 1 " +
"When YLZ='32-速丰用材林' then 2 " +
"When YLZ='33-一般用材林' then 3 " +
"End As YLZPXM,YLZ As YLZ, " +
"Case When YSDL=' 1-杉柏类' then 0 " +
"When YSDL=' 2-马尾松' then 1 " +
"When YSDL=' 3-国外松' then 2 " +
"When YSDL=' 4-软阔类' then 3 " +
"When YSDL=' 5-硬阔类' then 4 " +
"When YSDL=' 6-竹 类' then 5 " +
"End As YSDLPXM,YSDL, "
Set @ZJSQL= @BaseSQL + " Sum(XBMJ) As ZMJ,Sum(HLMXJ) As ZXJ From Xbb_New Where LZH='3-用材林' Group By XZDM,XZMC,LMSYQ,YLZ,YSDL"
Set @YLLSQL = @BaseSQL + "Sum(XBMJ) As YLLMJ,Sum(HLMXJ) As YLLXJ From Xbb_New Where LZH='3-用材林' And LZ='1-幼龄林' Group By XZDM,XZMC,LMSYQ,YLZ,YSDL"
Set @ZLLSQL = @BaseSQL + "Sum(XBMJ) As ZLLMJ,Sum(HLMXJ) As ZLLXJ From Xbb_New Where LZH='3-用材林' And LZ='2-中龄林' Group By XZDM,XZMC,LMSYQ,YLZ,YSDL"
Set @JSLSQL = @BaseSQL + "Sum(XBMJ) As JSLMJ,Sum(HLMXJ) As JSLXJ From Xbb_New Where LZH='3-用材林' And LZ='3-近熟林' Group By XZDM,XZMC,LMSYQ,YLZ,YSDL"
Set @CSLSQL = @BaseSQL + "Sum(XBMJ) As CSLMJ,Sum(HLMXJ) As CSLXJ From Xbb_New Where LZH='3-用材林' And LZ='4-成熟林' Group By XZDM,XZMC,LMSYQ,YLZ,YSDL"
Set @GSLSQL = @BaseSQL + "Sum(XBMJ) As GSLMJ,Sum(HLMXJ) As GSLXJ From Xbb_New Where LZH='3-用材林' And LZ='5-过熟林' Group By XZDM,XZMC,LMSYQ,YLZ,YSDL"
Set @sSQL = "Select A.*,B.YLLMJ,B.YLLXJ From (" + @ZJSQL + ") As A Left Join " + "(" + @YLLSQL + ") As B On A.MCPXM=B.MCPXM And A.LMSYQPXM=B.LMSYQPXM And A.YLZPXM=B.YLZPXM And A.YSDLPXM=B.YSDLPXM"
Set @sSQL = "Select A.*,B.ZLLMJ,B.ZLLXJ From (" + @sSQL + ") As A Left Join " + "(" + @ZLLSQL + ") As B On A.MCPXM=B.MCPXM And A.LMSYQPXM=B.LMSYQPXM And A.YLZPXM=B.YLZPXM And A.YSDLPXM=B.YSDLPXM"
Set @sSQL = "Select A.*,B.JSLMJ,B.JSLXJ From (" + @sSQL + ") As A Left Join " + "(" + @JSLSQL + ") As B On A.MCPXM=B.MCPXM And A.LMSYQPXM=B.LMSYQPXM And A.YLZPXM=B.YLZPXM And A.YSDLPXM=B.YSDLPXM"
Set @sSQL = "Select A.*,B.CSLMJ,B.CSLXJ From (" + @sSQL + ") As A Left Join " + "(" + @CSLSQL + ") As B On A.MCPXM=B.MCPXM And A.LMSYQPXM=B.LMSYQPXM And A.YLZPXM=B.YLZPXM And A.YSDLPXM=B.YSDLPXM"
Set @sSQL = "Select A.*,B.GSLMJ,B.GSLXJ From (" + @sSQL + ") As A Left Join " + "(" + @GSLSQL + ") As B On A.MCPXM=B.MCPXM And A.LMSYQPXM=B.LMSYQPXM And A.YLZPXM=B.YLZPXM And A.YSDLPXM=B.YSDLPXM"