Commit b133c2ef authored by solho's avatar solho

feat:點數完成 組織異動相關修改,重構

parent 86e684d4
...@@ -43,80 +43,44 @@ BEGIN ...@@ -43,80 +43,44 @@ BEGIN
BEGIN BEGIN
SELECT @QryEmpItem= manager_EmpItem, @QryEmpDS=manager_DeptName from evw_qResult_EmpItemLeader where manager_wadeID=@p_EmpID SELECT @QryEmpItem= manager_EmpItem, @QryEmpDS=manager_DeptName from evw_qResult_EmpItemLeader where manager_wadeID=@p_EmpID
END END
print('1-1:'+convert(varchar(20),getdate(),126)) print('1:'+convert(varchar(20),getdate(),126))
;With tmpemp0 as( select case when a.job_status in ('離職','已離職') THEN 1 ELSE 0 END IsEmpLeave
select DISTINCT a.USER_NAME AS Emp_ID,a.user_id ,*
--, CASE WHEN Emp_ID like '12%' THEN Emp_DS2 ELSE Emp_Name END as Emp_Name INTO #tmpEmp from [dbo].evw_Employee a
, a.cn_name as Emp_Name
, a.Emp_DS, a.Emp_DSNum, a.Emp_Item, a.Emp_ItemNum
,'' as Emp_Sort,job_status --2020/09/07
--, case when c.Emp_LeaveDate<>'' OR LEFT(CAST(ISNULL(a.hiredate,'') as char(30)),10)<>'' THEN 1 ELSE 0 END IsEmpLeave,
-- ISNULL((select value from dbo.[ufn_split](EmpCompTypeList,',') a where a.ID=1),'') as FirstEmpCompType
from [dbo].evw_Employee a
--where exists(select user_id from #tempfurther tb where a.user_id=tb.user_id)
where a.user_id in(select user_id from #tempfurther) where a.user_id in(select user_id from #tempfurther)
)
-- 取得 員工data (因員工有多個部別, 所以先抓 DISTINCT Emp_ID資料)
SELECT Emp_ID, Emp_Name, Emp_DS, Emp_DSNum, Emp_Item
,cast( (CASE WHEN Emp_Item='' THEN 'N' ELSE Emp_ItemNum END) as varchar(2)) as Emp_ItemNum
, Emp_Sort, IsEmpLeave, FirstEmpCompType,user_id
INTO #tmpEmp
FROM (
select DISTINCT a.*
, case when a.job_status in ('離職','已離職') THEN 1 ELSE 0 END IsEmpLeave,
ISNULL((select value from dbo.[ufn_split](EmpCompTypeList,',') a where a.ID=1),'') as FirstEmpCompType
from tmpemp0 a
left join
(
select LoginID,
(STUFF ((SELECT distinct ',' + a.EmpCompType from evw_qresult_EmpEMail a where a.LoginID=b.LoginID FOR XML PATH('')), 1, 1, N''))
as EmpCompTypeList
--STRING_AGG(EmpCompType, ',')
from evw_qresult_EmpEMail b
group by LoginID
) b on a.Emp_ID=b.LoginID
--inner join [evw_qResult_Emp] c on a.user_id=c.Wade_user_ID
) a ;
print('2:'+convert(varchar(20),getdate(),126))
-- 設定深圳所, 分為翼勝、紫藤
update #tmpEmp SET Emp_DS=(CASE WHEN FirstEmpCompType='' THEN Emp_DS+'-未設定'ELSE Emp_DS+'-'+FirstEmpCompType END ),
Emp_DSNum=Emp_DSNum+(CASE FirstEmpCompType WHEN '翼勝' THEN 1 WHEN '紫藤' THEN 2 ELSE 3 END)
where Emp_DS='深圳所';
-- 取得 TODOS Data -- 取得 TODOS Data
print('3:'+convert(varchar(20),getdate(),126)) print('2:'+convert(varchar(20),getdate(),126))
SELECT a.FinishedDate, SELECT a.FinishedDate,a.AssignedTo_userid,d.case_volume, a.sn ,case when isnull(a.PointsType,'POINT')<>'MP' then a.points else 0 end as points
b.Emp_ID as AssignedTo,a.AssignedTo_userid, ,convert(varchar(7),a.FinishedDate,126) as FH_YM
a.caseNO AS CaseNo , cast(a.sn as varchar(10)) as flowKey ,case when isnull(a.PointsType,'POINT')<>'MP' then a.points else 0 end as points,convert(varchar(7),a.FinishedDate,126) as FH_YM
into #tmpTodos into #tmpTodos
FROM evw_esn_todos a FROM evw_esn_todos a
inner join #tmpEmp b on a.AssignedTo_userid=b.user_id inner join #tmpEmp b on a.AssignedTo_userid=b.user_id
Inner join p_proc_info c on a.proc_id=c.proc_id Inner join p_proc_info c on a.proc_id=c.proc_id
WHERE a.FinishedDate between @p_StartDate and @p_EndDate Inner join p_case_info d on c.case_id=d.case_id
--AND ISNULL(b.Emp_ID ,'')<>'' AND b.Emp_ID NOT IN ('0','55','56','69') -- 55=TP程序, 56=SH程序, 69=等待, 0=SZ程序 WHERE a.FinishedDate between @p_StartDate and @p_EndDate
--AND ((b.user_id = @p_EmpID AND @p_EmpShow='showEmp') OR ( @p_EmpShow='showAll'))
; ;
print('4:'+convert(varchar(20),getdate(),126))
print('5:'+convert(varchar(20),getdate(),126)) print('5:'+convert(varchar(20),getdate(),126))
SELECT points,FH_YM,a.Emp_ID, a.Emp_Name, a.Emp_DS, a.Emp_DSNum, a.Emp_Item, a.Emp_ItemNum, a.Emp_Sort, SELECT points,FH_YM,a.user_id, a.cn_name as Emp_Name,case when isnull(a.manage_center,'')='' then '未設管理中心' else a.manage_center end as manage_center ,case when isnull(a.Emp_DS,'')='' then '未設所別' else a.Emp_DS end as Emp_DS
,case when isnull(a.Emp_DeptName,'')='' then '未設一級部門' else a.Emp_DeptName end as Emp_DeptName, case when isnull(a.Emp_DeptGroup,'')='' then '未設二級部門' else a.Emp_DeptGroup end as Emp_DeptGroup,
CASE WHEN FH_YM = @p_YM_1 THEN 1 ELSE 0 END as r01, CASE WHEN FH_YM = @p_YM_1 THEN ISNULL(points,0) ELSE 0 END as p01, CASE WHEN FH_YM = @p_YM_2 THEN 1 ELSE 0 END as r02, CASE WHEN FH_YM = @p_YM_2 THEN ISNULL(points,0) ELSE 0 END as p02, CASE WHEN FH_YM = @p_YM_1 THEN 1 ELSE 0 END as r01, CASE WHEN FH_YM = @p_YM_1 THEN ISNULL(points,0) ELSE 0 END as p01, CASE WHEN FH_YM = @p_YM_2 THEN 1 ELSE 0 END as r02, CASE WHEN FH_YM = @p_YM_2 THEN ISNULL(points,0) ELSE 0 END as p02,
CASE WHEN FH_YM = @p_YM_3 THEN 1 ELSE 0 END as r03, CASE WHEN FH_YM = @p_YM_3 THEN ISNULL(points,0) ELSE 0 END as p03, CASE WHEN FH_YM = @p_YM_4 THEN 1 ELSE 0 END as r04, CASE WHEN FH_YM = @p_YM_4 THEN ISNULL(points,0) ELSE 0 END as p04, CASE WHEN FH_YM = @p_YM_3 THEN 1 ELSE 0 END as r03, CASE WHEN FH_YM = @p_YM_3 THEN ISNULL(points,0) ELSE 0 END as p03, CASE WHEN FH_YM = @p_YM_4 THEN 1 ELSE 0 END as r04, CASE WHEN FH_YM = @p_YM_4 THEN ISNULL(points,0) ELSE 0 END as p04,
CASE WHEN FH_YM = @p_YM_5 THEN 1 ELSE 0 END as r05, CASE WHEN FH_YM = @p_YM_5 THEN ISNULL(points,0) ELSE 0 END as p05, CASE WHEN FH_YM = @p_YM_6 THEN 1 ELSE 0 END as r06, CASE WHEN FH_YM = @p_YM_6 THEN ISNULL(points,0) ELSE 0 END as p06, CASE WHEN FH_YM = @p_YM_5 THEN 1 ELSE 0 END as r05, CASE WHEN FH_YM = @p_YM_5 THEN ISNULL(points,0) ELSE 0 END as p05, CASE WHEN FH_YM = @p_YM_6 THEN 1 ELSE 0 END as r06, CASE WHEN FH_YM = @p_YM_6 THEN ISNULL(points,0) ELSE 0 END as p06,
CASE WHEN FH_YM = @p_YM_7 THEN 1 ELSE 0 END as r07, CASE WHEN FH_YM = @p_YM_7 THEN ISNULL(points,0) ELSE 0 END as p07, CASE WHEN FH_YM = @p_YM_8 THEN 1 ELSE 0 END as r08, CASE WHEN FH_YM = @p_YM_8 THEN ISNULL(points,0) ELSE 0 END as p08, CASE WHEN FH_YM = @p_YM_7 THEN 1 ELSE 0 END as r07, CASE WHEN FH_YM = @p_YM_7 THEN ISNULL(points,0) ELSE 0 END as p07, CASE WHEN FH_YM = @p_YM_8 THEN 1 ELSE 0 END as r08, CASE WHEN FH_YM = @p_YM_8 THEN ISNULL(points,0) ELSE 0 END as p08,
CASE WHEN FH_YM = @p_YM_9 THEN 1 ELSE 0 END as r09, CASE WHEN FH_YM = @p_YM_9 THEN ISNULL(points,0) ELSE 0 END as p09, CASE WHEN FH_YM = @p_YM_10 THEN 1 ELSE 0 END as r10, CASE WHEN FH_YM = @p_YM_10 THEN ISNULL(points,0) ELSE 0 END as p10, CASE WHEN FH_YM = @p_YM_9 THEN 1 ELSE 0 END as r09, CASE WHEN FH_YM = @p_YM_9 THEN ISNULL(points,0) ELSE 0 END as p09, CASE WHEN FH_YM = @p_YM_10 THEN 1 ELSE 0 END as r10, CASE WHEN FH_YM = @p_YM_10 THEN ISNULL(points,0) ELSE 0 END as p10,
CASE WHEN FH_YM = @p_YM_11 THEN 1 ELSE 0 END as r11, CASE WHEN FH_YM = @p_YM_11 THEN ISNULL(points,0) ELSE 0 END as p11, CASE WHEN FH_YM = @p_YM_12 THEN 1 ELSE 0 END as r12, CASE WHEN FH_YM = @p_YM_12 THEN ISNULL(points,0) ELSE 0 END as p12, CASE WHEN FH_YM = @p_YM_11 THEN 1 ELSE 0 END as r11, CASE WHEN FH_YM = @p_YM_11 THEN ISNULL(points,0) ELSE 0 END as p11, CASE WHEN FH_YM = @p_YM_12 THEN 1 ELSE 0 END as r12, CASE WHEN FH_YM = @p_YM_12 THEN ISNULL(points,0) ELSE 0 END as p12,
CASE WHEN b.FlowKey IS NULL THEN 0 ELSE 1 END as rTot, ISNULL(points,0) as pTot, ISNULL(FlowKey,'') FlowKey, ISNULL(CaseNo,'') CaseNo CASE WHEN b.sn IS NULL THEN 0 ELSE 1 END as rTot, ISNULL(points,0) as pTot,cast(SN as varchar(10)) as sn
into #tmpAG into #tmpAG
FROM #tmpEmp a FROM #tmpEmp a
Inner join #tmpTodos b ON a.user_id = b.AssignedTo_userid Inner join #tmpTodos b ON a.user_id = b.AssignedTo_userid
WHERE (NOT ((Emp_Item='未設部別' OR IsEmpLeave=1 ) -- and ISNULL(b.FlowKey,'')=''
) ) --select * from #tmpAG
--WHERE (NOT ((Emp_Item='未設部別' OR IsEmpLeave=1 ) -- and ISNULL(b.FlowKey,'')=''
; ;
print('6:'+convert(varchar(20),getdate(),126)) print('6:'+convert(varchar(20),getdate(),126))
--select * from #tmpAG
--結果 --結果
declare @SqlString varchar(max)='',@CommonString varchar(max)='',@SortString varchar(500)='', @cnt tinyint=1,@cntT varchar(3)='' declare @SqlString varchar(max)='',@CommonString varchar(max)='',@SortString varchar(500)='', @cnt tinyint=1,@cntT varchar(3)=''
,@groupcase1 varchar(200)='',@groupcase2 varchar(200)='',@groupcase3 varchar(200)='',@groupcase4 varchar(200)=''; ,@groupcase1 varchar(200)='',@groupcase2 varchar(200)='',@groupcase3 varchar(200)='',@groupcase4 varchar(200)='';
...@@ -124,72 +88,63 @@ BEGIN ...@@ -124,72 +88,63 @@ BEGIN
BEGIN BEGIN
Set @cntT= RIGHT(REPLICATE('0',2) + CAST(@cnt as varchar),2); Set @cntT= RIGHT(REPLICATE('0',2) + CAST(@cnt as varchar),2);
set @CommonString=@CommonString + ' SUM(r'+@cntT+') as r'+@cntT+',' +' SUM(p'+@cntT+') as p'+@cntT+',' set @CommonString=@CommonString + ' SUM(r'+@cntT+') as r'+@cntT+',' +' SUM(p'+@cntT+') as p'+@cntT+','
+ 'STUFF ((SELECT distinct '','' + ( CASE WHEN r'+@cntT+'> 0 THEN p.FlowKey END) FROM #tmpAG AS p @groupcase FOR XML PATH('''')), 1, 1, N'''') as rT'+@cntT+', ' + 'STUFF ((SELECT distinct '','' + ( CASE WHEN r'+@cntT+'> 0 THEN p.sn END) FROM #tmpAG AS p @groupcase FOR XML PATH('''')), 1, 1, N'''') as rT'+@cntT+', '
+ 'STUFF ((SELECT distinct '','' + ( CASE WHEN p'+@cntT+'> 0 THEN p.FlowKey END) FROM #tmpAG AS p @groupcase FOR XML PATH('''')), 1, 1, N'''') as pT'+@cntT+', ' + 'STUFF ((SELECT distinct '','' + ( CASE WHEN p'+@cntT+'> 0 THEN p.sn END) FROM #tmpAG AS p @groupcase FOR XML PATH('''')), 1, 1, N'''') as pT'+@cntT+', '
SET @cnt = @cnt + 1; SET @cnt = @cnt + 1;
END END
set @CommonString=@CommonString set @CommonString=@CommonString
+ 'SUM(rTot) as rTot, SUM(pTot) as pTot, ' + 'SUM(rTot) as rTot, SUM(pTot) as pTot, '
+ 'STUFF ((SELECT distinct '','' + p.FlowKey FROM #tmpAG AS p @groupcase FOR XML PATH('''')), 1, 1, N'''') as rTTot,' + 'STUFF ((SELECT distinct '','' + p.sn FROM #tmpAG AS p @groupcase FOR XML PATH('''')), 1, 1, N'''') as rTTot,'
+ 'STUFF ((SELECT distinct '','' + p.FlowKey FROM #tmpAG AS p @groupcase FOR XML PATH('''')), 1, 1, N'''') as pTTot '; + 'STUFF ((SELECT distinct '','' + p.sn FROM #tmpAG AS p @groupcase FOR XML PATH('''')), 1, 1, N'''') as pTTot ';
Set @SqlString= ' ' + Set @SqlString= ' ' +
' select * from ('; ' select * from (';
IF @p_RptType='byDS' IF @p_RptType='byDS'
--select cast(@CommonString as varchar(max)); --debug query ; --select cast(@CommonString as varchar(max)); --debug query ;
BEGIN BEGIN
--for xml path 條件 --for xml path 條件
set @groupcase1='where p.Emp_DS = a.Emp_DS and p.Emp_DSNum = a.Emp_DSNum and p.Emp_Item = a.Emp_Item and p.Emp_ItemNum = a.Emp_ItemNum'; set @groupcase1='where p.Emp_DS = a.Emp_DS ';
set @groupcase2='where p.Emp_DS = a.Emp_DS and p.Emp_DSNum = a.Emp_DSNum '; --set @groupcase2='where p.Emp_DS = a.Emp_DS and p.Emp_DSNum = a.Emp_DSNum ';
set @groupcase3='WHERE Emp_DS like ''深圳所%'' '; --set @groupcase3='WHERE Emp_DS like ''深圳所%'' ';
set @groupcase4=' '; set @groupcase4=' ';
--Set @CommonString=replace(@CommonString,'@groupcase',@groupcase1); --Set @CommonString=replace(@CommonString,'@groupcase',@groupcase1);
Set @SqlString= @SqlString Set @SqlString= @SqlString
+ 'SELECT Emp_DS,Emp_DSNum,Emp_Item, cast(Emp_ItemNum as varchar(2)) as Emp_ItemNum, '+replace(@CommonString,'@groupcase',@groupcase1) + 'From #tmpAG a ' + 'SELECT 1 as sort, Emp_DS, '+replace(@CommonString,'@groupcase',@groupcase1) + 'From #tmpAG a '
+'GROUP BY Emp_DS, Emp_DSNum, Emp_Item, Emp_ItemNum ' +' GROUP BY Emp_DS '
+'union ALL '
+'SELECT Emp_DS,Emp_DSNum, ''合計'' as Emp_Item, ''S'' as Emp_ItemNum,'+replace(@CommonString,'@groupcase',@groupcase2) +'From #tmpAG a '
+'Group by Emp_DS, Emp_DSNum '
+'union ALL '
+'SELECT ''深圳所'' as Emp_DS, max(Emp_DSNum) as Emp_DSNum, ''合計'' as Emp_Item, ''S'' as Emp_ItemNum, ' + replace(@CommonString,'@groupcase',@groupcase3) +'From #tmpAG a WHERE Emp_DS like ''深圳所%'' '
+'union ALL ' +'union ALL '
+'SELECT ''總計'' as Emp_DS, max(Emp_DSNum) +1 as Emp_DSNum, ''總計'' as Emp_Item, ''T'' as Emp_ItemNum, ' + replace(@CommonString,'@groupcase',@groupcase4) +'From #tmpAG a ' +'SELECT 99 as sort,''總計'' as Emp_DS, ' + replace(@CommonString,'@groupcase',@groupcase4) +'From #tmpAG a '
Set @SortString='Order by Emp_DSNum,Emp_ItemNum;' ; Set @SortString='Order by sort,Emp_DS;' ;
END END
ELSE IF @p_RptType='byItem' ELSE IF @p_RptType='byManage'
BEGIN BEGIN
--for xml path 條件 --for xml path 條件
set @groupcase1='where p.Emp_DS = a.Emp_DS and p.Emp_DSNum = a.Emp_DSNum and p.Emp_Item = a.Emp_Item and p.Emp_ItemNum = a.Emp_ItemNum'; set @groupcase1='where p.manage_center = a.manage_center ';
set @groupcase2='where p.Emp_Item = a.Emp_Item and p.Emp_ItemNum = a.Emp_ItemNum '; --set @groupcase2='where p.Emp_Item = a.Emp_Item and p.Emp_ItemNum = a.Emp_ItemNum ';
set @groupcase3='WHERE Emp_DS like ''深圳所%'' '; --set @groupcase3='WHERE Emp_DS like ''深圳所%'' ';
set @groupcase4=' '; set @groupcase4=' ';
Set @SqlString= @SqlString + 'SELECT Emp_Item, cast(Emp_ItemNum as varchar(2)) as Emp_ItemNum, Emp_DS, cast(Emp_DSNum as varchar(2)) as Emp_DSNum,'+replace(@CommonString,'@groupcase',@groupcase1) + 'From #tmpAG a ' Set @SqlString= @SqlString + 'SELECT 1 as sort, manage_center,'+replace(@CommonString,'@groupcase',@groupcase1) + 'From #tmpAG a '
+' GROUP BY Emp_Item, Emp_ItemNum, Emp_DS, Emp_DSNum ' +' GROUP BY manage_center '
+'union ALL '
+'SELECT Emp_Item, cast(Emp_ItemNum as varchar(2)) as Emp_ItemNum, ''合計'' as Emp_DS, ''S'' as Emp_DSNum,'+replace(@CommonString,'@groupcase',@groupcase2) +'From #tmpAG a '
+'Group by Emp_Item, Emp_ItemNum '
+'union ALL '
+'SELECT ''深圳所'' as Emp_DS, cast(max(Emp_DSNum) as varchar(2)) as Emp_DSNum, ''合計'' as Emp_Item, ''S'' as Emp_ItemNum, ' + replace(@CommonString,'@groupcase',@groupcase3) +'From #tmpAG a WHERE Emp_DS like ''深圳所%'' '
+'union ALL ' +'union ALL '
+'SELECT ''總計'' as Emp_Item, ''T'' as Emp_ItemNum, ''總計'' as Emp_DS, ''T'' as Emp_DSNum, ' + replace(@CommonString,'@groupcase',@groupcase4) +'From #tmpAG a ' +'SELECT 99 as sort,''總計'' as manage_center,' + replace(@CommonString,'@groupcase',@groupcase4) +'From #tmpAG a '
Set @SortString='Order by Emp_ItemNum, Emp_DSNum; ' ; Set @SortString='Order by sort,manage_center; ' ;
END END
ELSE IF @p_RptType='byPeople' ELSE IF @p_RptType='byPeople'
BEGIN BEGIN
-- -- by 承辦人 -- -- by 承辦人
--for xml path 條件 --for xml path 條件
set @groupcase1='where p.Emp_Name = a.Emp_Name and p.Emp_DS = a.Emp_DS and p.Emp_DSNum = a.Emp_DSNum and p.Emp_Item = a.Emp_Item and p.Emp_ItemNum = a.Emp_ItemNum '; set @groupcase1='where p.Emp_Name = a.Emp_Name and p.Emp_DS = a.Emp_DS and p.manage_center = a.manage_center and p.Emp_DeptName = a.Emp_DeptName and p.Emp_DeptGroup = a.Emp_DeptGroup ';
set @groupcase2=' '; set @groupcase2=' ';
Set @SqlString= @SqlString + 'SELECT Emp_Name, Emp_Item, cast(Emp_ItemNum as varchar(2)) as Emp_ItemNum, Emp_DS, cast(Emp_DSNum as varchar(2)) as Emp_DSNum, Emp_Sort, '+replace(@CommonString,'@groupcase',@groupcase1) + 'From #tmpAG a ' Set @SqlString= @SqlString + 'SELECT 1 as sort, Emp_Name,manage_center, Emp_DS, Emp_DeptName,Emp_DeptGroup, '+replace(@CommonString,'@groupcase',@groupcase1) + 'From #tmpAG a '
+'GROUP BY Emp_Name, Emp_Item, Emp_ItemNum, Emp_DS, Emp_DSNum, Emp_Sort ' +'GROUP BY Emp_Name, Emp_DS, manage_center, Emp_DeptName, Emp_DeptGroup '
+'union ALL ' +'union ALL '
+'SELECT '''' as Emp_Name, ''總計'' as Emp_Item, ''T'' as Emp_ItemNum, ''總計'' as Emp_DS, ''T'' as Emp_DSNum, (MAX(Emp_Sort)+1) as Emp_Sort, ' + replace(@CommonString,'@groupcase',@groupcase2) +'From #tmpAG a ' +'SELECT 99 as sort, '''' as Emp_Name, '''' as manage_center, '''' as Emp_DS, '''' as Emp_DeptName, ''總計'' as Emp_DeptGroup, ' + replace(@CommonString,'@groupcase',@groupcase2) +'From #tmpAG a '
Set @SortString='Order by Emp_ItemNum,Emp_DSNum, Emp_Name; ' ; Set @SortString='Order by sort,Emp_Name,Emp_DS, manage_center, Emp_DeptName, Emp_DeptGroup; ' ;
END END
Set @SqlString=@SqlString +') a ' + @SortString +' '; Set @SqlString=@SqlString +') a ' + @SortString +' ';
print('7:'+convert(varchar(20),getdate(),126))
--Set @SqlString=@SqlString +'; select * from #TmpResult ' + @SortString +' '; --Set @SqlString=@SqlString +'; select * from #TmpResult ' + @SortString +' ';
--select cast(@SqlString as varchar(max)); --debug query --select cast(@SqlString as varchar(max)); --debug query
......
declare declare
@p_YM_F VARCHAR(50)= N'2021-10', -- 區期年月起值 @p_YM_F VARCHAR(50)= N'2021-10', -- 區期年月起值
@p_YM_T VARCHAR(50)= N'2021-10', -- 區期年月迄值 @p_YM_T VARCHAR(50)= N'2021-10', -- 區期年月迄值
@p_RptType VARCHAR(50)= N'bypeople', -- 報表類別 byDS=依所別顯示, byItem=依部別顯示, byPeople=依承辦人顯示 @p_RptType VARCHAR(50)= N'byPeople', -- 報表類別 byDS=依所別顯示, byItem=依部別顯示, byPeople=依承辦人顯示
@p_EmpID VARCHAR(50)= N'05a68aac-6158-4c5b-98e8-60b735c20479', -- 登入Wade ID @p_EmpID VARCHAR(50)= N'05a68aac-6158-4c5b-98e8-60b735c20479', -- 登入Wade ID
@p_QryEmpItem VARCHAR(50)= N'', -- 查詢部別 (空白=全部, 1=一部, 2=二部, 3=三部, 4=四部, 5=五部, 6=日文部, 7=韓文部) @p_QryEmpItem VARCHAR(50)= N'', -- 查詢部別 (空白=全部, 1=一部, 2=二部, 3=三部, 4=四部, 5=五部, 6=日文部, 7=韓文部)
@p_EmpShow VARCHAR(50)= N'showall', -- 顯示內容(主管看向下成員, 工程師看個人) ( showAll:顯示全部, showEmp:顯示各人) @p_EmpShow VARCHAR(50)= N'showall', -- 顯示內容(主管看向下成員, 工程師看個人) ( showAll:顯示全部, showEmp:顯示各人)
...@@ -48,79 +48,44 @@ declare ...@@ -48,79 +48,44 @@ declare
BEGIN BEGIN
SELECT @QryEmpItem= manager_EmpItem, @QryEmpDS=manager_DeptName from evw_qResult_EmpItemLeader where manager_wadeID=@p_EmpID SELECT @QryEmpItem= manager_EmpItem, @QryEmpDS=manager_DeptName from evw_qResult_EmpItemLeader where manager_wadeID=@p_EmpID
END END
print('1-1:'+convert(varchar(20),getdate(),126)) print('1:'+convert(varchar(20),getdate(),126))
;With tmpemp0 as( select case when a.job_status in ('離職','已離職') THEN 1 ELSE 0 END IsEmpLeave
select DISTINCT a.USER_NAME AS Emp_ID,a.user_id ,*
--, CASE WHEN Emp_ID like '12%' THEN Emp_DS2 ELSE Emp_Name END as Emp_Name INTO #tmpEmp from [dbo].evw_Employee a
, a.cn_name as Emp_Name where a.user_id in(select user_id from #tempfurther)
, a.Emp_DS, a.Emp_DSNum, a.Emp_Item, a.Emp_ItemNum
,'' as Emp_Sort,job_status --2020/09/07
--, case when c.Emp_LeaveDate<>'' OR LEFT(CAST(ISNULL(a.hiredate,'') as char(30)),10)<>'' THEN 1 ELSE 0 END IsEmpLeave,
-- ISNULL((select value from dbo.[ufn_split](EmpCompTypeList,',') a where a.ID=1),'') as FirstEmpCompType
from [dbo].evw_Employee a
where exists(select user_id from #tempfurther tb where a.user_id=tb.user_id)
)
-- 取得 員工data (因員工有多個部別, 所以先抓 DISTINCT Emp_ID資料)
SELECT Emp_ID, Emp_Name, Emp_DS, Emp_DSNum, Emp_Item
,cast( (CASE WHEN Emp_Item='' THEN 'N' ELSE Emp_ItemNum END) as varchar(2)) as Emp_ItemNum
, Emp_Sort, IsEmpLeave, FirstEmpCompType,user_id
INTO #tmpEmp
FROM (
select DISTINCT a.*
, case when a.job_status in ('離職','已離職') THEN 1 ELSE 0 END IsEmpLeave,
ISNULL((select value from dbo.[ufn_split](EmpCompTypeList,',') a where a.ID=1),'') as FirstEmpCompType
from tmpemp0 a
left join
(
select LoginID,
(STUFF ((SELECT distinct ',' + a.EmpCompType from evw_qresult_EmpEMail a where a.LoginID=b.LoginID FOR XML PATH('')), 1, 1, N''))
as EmpCompTypeList
--STRING_AGG(EmpCompType, ',')
from evw_qresult_EmpEMail b
group by LoginID
) b on a.Emp_ID=b.LoginID
--inner join [evw_qResult_Emp] c on a.user_id=c.Wade_user_ID
) a ;
print('2:'+convert(varchar(20),getdate(),126))
-- 設定深圳所, 分為翼勝、紫藤
update #tmpEmp SET Emp_DS=(CASE WHEN FirstEmpCompType='' THEN Emp_DS+'-未設定'ELSE Emp_DS+'-'+FirstEmpCompType END ),
Emp_DSNum=Emp_DSNum+(CASE FirstEmpCompType WHEN '翼勝' THEN 1 WHEN '紫藤' THEN 2 ELSE 3 END)
where Emp_DS='深圳所';
-- 取得 TODOS Data -- 取得 TODOS Data
print('3:'+convert(varchar(20),getdate(),126)) print('2:'+convert(varchar(20),getdate(),126))
SELECT a.FinishedDate, SELECT a.FinishedDate,a.AssignedTo_userid,d.case_volume, a.sn ,case when isnull(a.PointsType,'POINT')<>'MP' then a.points else 0 end as points
b.Emp_ID as AssignedTo,a.AssignedTo_userid, ,convert(varchar(7),a.FinishedDate,126) as FH_YM
a.caseNO AS CaseNo , cast(a.sn as varchar(10)) as flowKey ,case when isnull(a.PointsType,'POINT')<>'MP' then a.points else 0 end as points,convert(varchar(7),a.FinishedDate,126) as FH_YM
into #tmpTodos into #tmpTodos
FROM evw_esn_todos a FROM evw_esn_todos a
inner join #tmpEmp b on a.AssignedTo_userid=b.user_id inner join #tmpEmp b on a.AssignedTo_userid=b.user_id
Inner join p_proc_info c on a.proc_id=c.proc_id Inner join p_proc_info c on a.proc_id=c.proc_id
WHERE a.FinishedDate between @p_StartDate and @p_EndDate Inner join p_case_info d on c.case_id=d.case_id
--AND ISNULL(b.Emp_ID ,'')<>'' AND b.Emp_ID NOT IN ('0','55','56','69') -- 55=TP程序, 56=SH程序, 69=等待, 0=SZ程序 WHERE a.FinishedDate between @p_StartDate and @p_EndDate
--AND ((b.user_id = @p_EmpID AND @p_EmpShow='showEmp') OR ( @p_EmpShow='showAll'))
; ;
print('4:'+convert(varchar(20),getdate(),126))
print('5:'+convert(varchar(20),getdate(),126)) print('5:'+convert(varchar(20),getdate(),126))
SELECT points,FH_YM,a.Emp_ID, a.Emp_Name, a.Emp_DS, a.Emp_DSNum, a.Emp_Item, a.Emp_ItemNum, a.Emp_Sort, SELECT points,FH_YM,a.user_id, a.cn_name as Emp_Name,case when isnull(a.manage_center,'')='' then '未設管理中心' else a.manage_center end as manage_center ,case when isnull(a.Emp_DS,'')='' then '未設所別' else a.Emp_DS end as Emp_DS
,case when isnull(a.Emp_DeptName,'')='' then '未設一級部門' else a.Emp_DeptName end as Emp_DeptName, case when isnull(a.Emp_DeptGroup,'')='' then '未設二級部門' else a.Emp_DeptGroup end as Emp_DeptGroup,
CASE WHEN FH_YM = @p_YM_1 THEN 1 ELSE 0 END as r01, CASE WHEN FH_YM = @p_YM_1 THEN ISNULL(points,0) ELSE 0 END as p01, CASE WHEN FH_YM = @p_YM_2 THEN 1 ELSE 0 END as r02, CASE WHEN FH_YM = @p_YM_2 THEN ISNULL(points,0) ELSE 0 END as p02, CASE WHEN FH_YM = @p_YM_1 THEN 1 ELSE 0 END as r01, CASE WHEN FH_YM = @p_YM_1 THEN ISNULL(points,0) ELSE 0 END as p01, CASE WHEN FH_YM = @p_YM_2 THEN 1 ELSE 0 END as r02, CASE WHEN FH_YM = @p_YM_2 THEN ISNULL(points,0) ELSE 0 END as p02,
CASE WHEN FH_YM = @p_YM_3 THEN 1 ELSE 0 END as r03, CASE WHEN FH_YM = @p_YM_3 THEN ISNULL(points,0) ELSE 0 END as p03, CASE WHEN FH_YM = @p_YM_4 THEN 1 ELSE 0 END as r04, CASE WHEN FH_YM = @p_YM_4 THEN ISNULL(points,0) ELSE 0 END as p04, CASE WHEN FH_YM = @p_YM_3 THEN 1 ELSE 0 END as r03, CASE WHEN FH_YM = @p_YM_3 THEN ISNULL(points,0) ELSE 0 END as p03, CASE WHEN FH_YM = @p_YM_4 THEN 1 ELSE 0 END as r04, CASE WHEN FH_YM = @p_YM_4 THEN ISNULL(points,0) ELSE 0 END as p04,
CASE WHEN FH_YM = @p_YM_5 THEN 1 ELSE 0 END as r05, CASE WHEN FH_YM = @p_YM_5 THEN ISNULL(points,0) ELSE 0 END as p05, CASE WHEN FH_YM = @p_YM_6 THEN 1 ELSE 0 END as r06, CASE WHEN FH_YM = @p_YM_6 THEN ISNULL(points,0) ELSE 0 END as p06, CASE WHEN FH_YM = @p_YM_5 THEN 1 ELSE 0 END as r05, CASE WHEN FH_YM = @p_YM_5 THEN ISNULL(points,0) ELSE 0 END as p05, CASE WHEN FH_YM = @p_YM_6 THEN 1 ELSE 0 END as r06, CASE WHEN FH_YM = @p_YM_6 THEN ISNULL(points,0) ELSE 0 END as p06,
CASE WHEN FH_YM = @p_YM_7 THEN 1 ELSE 0 END as r07, CASE WHEN FH_YM = @p_YM_7 THEN ISNULL(points,0) ELSE 0 END as p07, CASE WHEN FH_YM = @p_YM_8 THEN 1 ELSE 0 END as r08, CASE WHEN FH_YM = @p_YM_8 THEN ISNULL(points,0) ELSE 0 END as p08, CASE WHEN FH_YM = @p_YM_7 THEN 1 ELSE 0 END as r07, CASE WHEN FH_YM = @p_YM_7 THEN ISNULL(points,0) ELSE 0 END as p07, CASE WHEN FH_YM = @p_YM_8 THEN 1 ELSE 0 END as r08, CASE WHEN FH_YM = @p_YM_8 THEN ISNULL(points,0) ELSE 0 END as p08,
CASE WHEN FH_YM = @p_YM_9 THEN 1 ELSE 0 END as r09, CASE WHEN FH_YM = @p_YM_9 THEN ISNULL(points,0) ELSE 0 END as p09, CASE WHEN FH_YM = @p_YM_10 THEN 1 ELSE 0 END as r10, CASE WHEN FH_YM = @p_YM_10 THEN ISNULL(points,0) ELSE 0 END as p10, CASE WHEN FH_YM = @p_YM_9 THEN 1 ELSE 0 END as r09, CASE WHEN FH_YM = @p_YM_9 THEN ISNULL(points,0) ELSE 0 END as p09, CASE WHEN FH_YM = @p_YM_10 THEN 1 ELSE 0 END as r10, CASE WHEN FH_YM = @p_YM_10 THEN ISNULL(points,0) ELSE 0 END as p10,
CASE WHEN FH_YM = @p_YM_11 THEN 1 ELSE 0 END as r11, CASE WHEN FH_YM = @p_YM_11 THEN ISNULL(points,0) ELSE 0 END as p11, CASE WHEN FH_YM = @p_YM_12 THEN 1 ELSE 0 END as r12, CASE WHEN FH_YM = @p_YM_12 THEN ISNULL(points,0) ELSE 0 END as p12, CASE WHEN FH_YM = @p_YM_11 THEN 1 ELSE 0 END as r11, CASE WHEN FH_YM = @p_YM_11 THEN ISNULL(points,0) ELSE 0 END as p11, CASE WHEN FH_YM = @p_YM_12 THEN 1 ELSE 0 END as r12, CASE WHEN FH_YM = @p_YM_12 THEN ISNULL(points,0) ELSE 0 END as p12,
CASE WHEN b.FlowKey IS NULL THEN 0 ELSE 1 END as rTot, ISNULL(points,0) as pTot, ISNULL(FlowKey,'') FlowKey, ISNULL(CaseNo,'') CaseNo CASE WHEN b.sn IS NULL THEN 0 ELSE 1 END as rTot, ISNULL(points,0) as pTot,cast(SN as varchar(10)) as sn
into #tmpAG into #tmpAG
FROM #tmpEmp a FROM #tmpEmp a
Inner join #tmpTodos b ON a.user_id = b.AssignedTo_userid Inner join #tmpTodos b ON a.user_id = b.AssignedTo_userid
WHERE (NOT ((Emp_Item='未設部別' OR IsEmpLeave=1 ) -- and ISNULL(b.FlowKey,'')=''
) ) --select * from #tmpAG
--WHERE (NOT ((Emp_Item='未設部別' OR IsEmpLeave=1 ) -- and ISNULL(b.FlowKey,'')=''
; ;
print('6:'+convert(varchar(20),getdate(),126)) print('6:'+convert(varchar(20),getdate(),126))
--select * from #tmpAG
--結果 --結果
declare @SqlString varchar(max)='',@CommonString varchar(max)='',@SortString varchar(500)='', @cnt tinyint=1,@cntT varchar(3)='' declare @SqlString varchar(max)='',@CommonString varchar(max)='',@SortString varchar(500)='', @cnt tinyint=1,@cntT varchar(3)=''
,@groupcase1 varchar(200)='',@groupcase2 varchar(200)='',@groupcase3 varchar(200)='',@groupcase4 varchar(200)=''; ,@groupcase1 varchar(200)='',@groupcase2 varchar(200)='',@groupcase3 varchar(200)='',@groupcase4 varchar(200)='';
...@@ -128,73 +93,65 @@ declare ...@@ -128,73 +93,65 @@ declare
BEGIN BEGIN
Set @cntT= RIGHT(REPLICATE('0',2) + CAST(@cnt as varchar),2); Set @cntT= RIGHT(REPLICATE('0',2) + CAST(@cnt as varchar),2);
set @CommonString=@CommonString + ' SUM(r'+@cntT+') as r'+@cntT+',' +' SUM(p'+@cntT+') as p'+@cntT+',' set @CommonString=@CommonString + ' SUM(r'+@cntT+') as r'+@cntT+',' +' SUM(p'+@cntT+') as p'+@cntT+','
+ 'STUFF ((SELECT distinct '','' + ( CASE WHEN r'+@cntT+'> 0 THEN p.FlowKey END) FROM #tmpAG AS p @groupcase FOR XML PATH('''')), 1, 1, N'''') as rT'+@cntT+', ' + 'STUFF ((SELECT distinct '','' + ( CASE WHEN r'+@cntT+'> 0 THEN p.sn END) FROM #tmpAG AS p @groupcase FOR XML PATH('''')), 1, 1, N'''') as rT'+@cntT+', '
+ 'STUFF ((SELECT distinct '','' + ( CASE WHEN p'+@cntT+'> 0 THEN p.FlowKey END) FROM #tmpAG AS p @groupcase FOR XML PATH('''')), 1, 1, N'''') as pT'+@cntT+', ' + 'STUFF ((SELECT distinct '','' + ( CASE WHEN p'+@cntT+'> 0 THEN p.sn END) FROM #tmpAG AS p @groupcase FOR XML PATH('''')), 1, 1, N'''') as pT'+@cntT+', '
SET @cnt = @cnt + 1; SET @cnt = @cnt + 1;
END END
set @CommonString=@CommonString set @CommonString=@CommonString
+ 'SUM(rTot) as rTot, SUM(pTot) as pTot, ' + 'SUM(rTot) as rTot, SUM(pTot) as pTot, '
+ 'STUFF ((SELECT distinct '','' + p.FlowKey FROM #tmpAG AS p @groupcase FOR XML PATH('''')), 1, 1, N'''') as rTTot,' + 'STUFF ((SELECT distinct '','' + p.sn FROM #tmpAG AS p @groupcase FOR XML PATH('''')), 1, 1, N'''') as rTTot,'
+ 'STUFF ((SELECT distinct '','' + p.FlowKey FROM #tmpAG AS p @groupcase FOR XML PATH('''')), 1, 1, N'''') as pTTot '; + 'STUFF ((SELECT distinct '','' + p.sn FROM #tmpAG AS p @groupcase FOR XML PATH('''')), 1, 1, N'''') as pTTot ';
Set @SqlString= ' ' + Set @SqlString= ' ' +
' select * from ('; ' select * from (';
IF @p_RptType='byDS' IF @p_RptType='byDS'
--select cast(@CommonString as varchar(max)); --debug query ; --select cast(@CommonString as varchar(max)); --debug query ;
BEGIN BEGIN
--for xml path 條件 --for xml path 條件
set @groupcase1='where p.Emp_DS = a.Emp_DS and p.Emp_DSNum = a.Emp_DSNum and p.Emp_Item = a.Emp_Item and p.Emp_ItemNum = a.Emp_ItemNum'; set @groupcase1='where p.Emp_DS = a.Emp_DS ';
set @groupcase2='where p.Emp_DS = a.Emp_DS and p.Emp_DSNum = a.Emp_DSNum '; --set @groupcase2='where p.Emp_DS = a.Emp_DS and p.Emp_DSNum = a.Emp_DSNum ';
set @groupcase3='WHERE Emp_DS like ''深圳所%'' '; --set @groupcase3='WHERE Emp_DS like ''深圳所%'' ';
set @groupcase4=' '; set @groupcase4=' ';
--Set @CommonString=replace(@CommonString,'@groupcase',@groupcase1); --Set @CommonString=replace(@CommonString,'@groupcase',@groupcase1);
Set @SqlString= @SqlString Set @SqlString= @SqlString
+ 'SELECT Emp_DS,Emp_DSNum,Emp_Item, cast(Emp_ItemNum as varchar(2)) as Emp_ItemNum, '+replace(@CommonString,'@groupcase',@groupcase1) + 'From #tmpAG a ' + 'SELECT 1 as sort, Emp_DS, '+replace(@CommonString,'@groupcase',@groupcase1) + 'From #tmpAG a '
+'GROUP BY Emp_DS, Emp_DSNum, Emp_Item, Emp_ItemNum ' +' GROUP BY Emp_DS '
+'union ALL '
+'SELECT Emp_DS,Emp_DSNum, ''合計'' as Emp_Item, ''S'' as Emp_ItemNum,'+replace(@CommonString,'@groupcase',@groupcase2) +'From #tmpAG a '
+'Group by Emp_DS, Emp_DSNum '
+'union ALL '
+'SELECT ''深圳所'' as Emp_DS, max(Emp_DSNum) as Emp_DSNum, ''合計'' as Emp_Item, ''S'' as Emp_ItemNum, ' + replace(@CommonString,'@groupcase',@groupcase3) +'From #tmpAG a WHERE Emp_DS like ''深圳所%'' '
+'union ALL ' +'union ALL '
+'SELECT ''總計'' as Emp_DS, max(Emp_DSNum) +1 as Emp_DSNum, ''總計'' as Emp_Item, ''T'' as Emp_ItemNum, ' + replace(@CommonString,'@groupcase',@groupcase4) +'From #tmpAG a ' +'SELECT 99 as sort,''總計'' as Emp_DS, ' + replace(@CommonString,'@groupcase',@groupcase4) +'From #tmpAG a '
Set @SortString='Order by Emp_DSNum,Emp_ItemNum;' ; Set @SortString='Order by sort,Emp_DS;' ;
END END
ELSE IF @p_RptType='byItem' ELSE IF @p_RptType='byManage'
BEGIN BEGIN
--for xml path 條件 --for xml path 條件
set @groupcase1='where p.Emp_DS = a.Emp_DS and p.Emp_DSNum = a.Emp_DSNum and p.Emp_Item = a.Emp_Item and p.Emp_ItemNum = a.Emp_ItemNum'; set @groupcase1='where p.manage_center = a.manage_center ';
set @groupcase2='where p.Emp_Item = a.Emp_Item and p.Emp_ItemNum = a.Emp_ItemNum '; --set @groupcase2='where p.Emp_Item = a.Emp_Item and p.Emp_ItemNum = a.Emp_ItemNum ';
set @groupcase3='WHERE Emp_DS like ''深圳所%'' '; --set @groupcase3='WHERE Emp_DS like ''深圳所%'' ';
set @groupcase4=' '; set @groupcase4=' ';
Set @SqlString= @SqlString + 'SELECT Emp_Item, cast(Emp_ItemNum as varchar(2)) as Emp_ItemNum, Emp_DS, cast(Emp_DSNum as varchar(2)) as Emp_DSNum,'+replace(@CommonString,'@groupcase',@groupcase1) + 'From #tmpAG a ' Set @SqlString= @SqlString + 'SELECT 1 as sort, manage_center,'+replace(@CommonString,'@groupcase',@groupcase1) + 'From #tmpAG a '
+' GROUP BY Emp_Item, Emp_ItemNum, Emp_DS, Emp_DSNum ' +' GROUP BY manage_center '
+'union ALL ' +'union ALL '
+'SELECT Emp_Item, cast(Emp_ItemNum as varchar(2)) as Emp_ItemNum, ''合計'' as Emp_DS, ''S'' as Emp_DSNum,'+replace(@CommonString,'@groupcase',@groupcase2) +'From #tmpAG a ' +'SELECT 99 as sort,''總計'' as manage_center,' + replace(@CommonString,'@groupcase',@groupcase4) +'From #tmpAG a '
+'Group by Emp_Item, Emp_ItemNum ' Set @SortString='Order by sort,manage_center; ' ;
+'union ALL '
+'SELECT ''深圳所'' as Emp_DS, cast(max(Emp_DSNum) as varchar(2)) as Emp_DSNum, ''合計'' as Emp_Item, ''S'' as Emp_ItemNum, ' + replace(@CommonString,'@groupcase',@groupcase3) +'From #tmpAG a WHERE Emp_DS like ''深圳所%'' '
+'union ALL '
+'SELECT ''總計'' as Emp_Item, ''T'' as Emp_ItemNum, ''總計'' as Emp_DS, ''T'' as Emp_DSNum, ' + replace(@CommonString,'@groupcase',@groupcase4) +'From #tmpAG a '
Set @SortString='Order by Emp_ItemNum, Emp_DSNum; ' ;
END END
ELSE IF @p_RptType='byPeople' ELSE IF @p_RptType='byPeople'
BEGIN BEGIN
-- -- by 承辦人 -- -- by 承辦人
--for xml path 條件 --for xml path 條件
set @groupcase1='where p.Emp_Name = a.Emp_Name and p.Emp_DS = a.Emp_DS and p.Emp_DSNum = a.Emp_DSNum and p.Emp_Item = a.Emp_Item and p.Emp_ItemNum = a.Emp_ItemNum '; set @groupcase1='where p.Emp_Name = a.Emp_Name and p.Emp_DS = a.Emp_DS and p.manage_center = a.manage_center and p.Emp_DeptName = a.Emp_DeptName and p.Emp_DeptGroup = a.Emp_DeptGroup ';
set @groupcase2=' '; set @groupcase2=' ';
Set @SqlString= @SqlString + 'SELECT Emp_Name, Emp_Item, cast(Emp_ItemNum as varchar(2)) as Emp_ItemNum, Emp_DS, cast(Emp_DSNum as varchar(2)) as Emp_DSNum, Emp_Sort, '+replace(@CommonString,'@groupcase',@groupcase1) + 'From #tmpAG a ' Set @SqlString= @SqlString + 'SELECT 1 as sort, Emp_Name,manage_center, Emp_DS, Emp_DeptName,Emp_DeptGroup, '+replace(@CommonString,'@groupcase',@groupcase1) + 'From #tmpAG a '
+'GROUP BY Emp_Name, Emp_Item, Emp_ItemNum, Emp_DS, Emp_DSNum, Emp_Sort ' +'GROUP BY Emp_Name, Emp_DS, manage_center, Emp_DeptName, Emp_DeptGroup '
+'union ALL ' +'union ALL '
+'SELECT '''' as Emp_Name, ''總計'' as Emp_Item, ''T'' as Emp_ItemNum, ''總計'' as Emp_DS, ''T'' as Emp_DSNum, (MAX(Emp_Sort)+1) as Emp_Sort, ' + replace(@CommonString,'@groupcase',@groupcase2) +'From #tmpAG a ' +'SELECT 99 as sort, '''' as Emp_Name, '''' as manage_center, '''' as Emp_DS, '''' as Emp_DeptName, ''總計'' as Emp_DeptGroup, ' + replace(@CommonString,'@groupcase',@groupcase2) +'From #tmpAG a '
Set @SortString='Order by Emp_ItemNum,Emp_DSNum, Emp_Name; ' ; Set @SortString='Order by sort,Emp_Name,Emp_DS, manage_center, Emp_DeptName, Emp_DeptGroup; ' ;
END END
Set @SqlString=@SqlString +') a ' + @SortString +' '; Set @SqlString=@SqlString +') a ' + @SortString +' ';
--Set @SqlString=@SqlString +'; select * from #TmpResult ' + @SortString +' '; --Set @SqlString=@SqlString +'; select * from #TmpResult ' + @SortString +' ';
select cast(@SqlString as varchar(max)); --debug query --select cast(@SqlString as varchar(max)); --debug query
Exec (@SqlString); Exec (@SqlString);
print('7:'+convert(varchar(20),getdate(),126))
\ No newline at end of file
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment