Commit d9246323 authored by solho's avatar solho

Initial commit

parents
select a.*
from esn_Todos a
left join esn_todos_points b on a.sn=b.sn
where b.date_points_settlement between '2021-07-01' and '2021-07-31'
--批次生成
begin tran tran1
declare @dateStart varchar(10)='2021-06-01',@dateEnd varchar(10)='2021-6-30'
--清除結算日期
update esn_todos_points set date_points_settlement=null
from
(
select a.*
from esn_Todos a
left join esn_todos_points b on a.sn=b.sn
where b.date_points_settlement between @dateStart and @dateEnd
and a.sn in(885723,885774,888378,889285,892131,893586,896663,897707,898021,898375,898386,898462,898471,898548,898565,898575,898664,899220,899265,899307,899718,900054,900557,900558,900559,900592,901214,902051,902076,902079,902135,905261,905277,905301,905374,905384,905385,905456,905465,905468,905781,912904,912949,912952,913247,914667)
) as aa
where aa.sn=esn_todos_points.sn
rollback tran tran1
--重置審核
update esn_todos_Flow set Is_Settlement=0,StepType_id=2
from
(
select a.*
from esn_Todos a
left join esn_todos_points b on a.sn=b.sn
left join esn_todos_Flow c on a.sn=c.esn_todos_sn
where b.date_points_settlement between @dateStart and @dateEnd or c.StepType_id=5
) as aa
where aa.sn=esn_todos_Flow.esn_todos_sn
--commit tran tran1
rollback tran tran1
--重置審核 END
--審核資料生成
begin tran tran1
declare @FinishedDateStart varchar(10)='2021-05-01',@FinishedDateEnd varchar(10)='2021-05-31'
truncate table esn_todos_Flow;
truncate table esn_todos_Flow_his;
insert into esn_todos_Flow(esn_todos_sn,StepType_id,StepType_id_Previous,PG_IsConfirm,PE_IsConfirm,Leader_IsConfirm,Description,create_user_id,Create_time,update_user_id,Update_time,Is_Settlement)
select esn_todos_sn=a.sn,StepType_id=5,StepType_id_Previous=5,PG_IsConfirm=1,PE_IsConfirm=0,Leader_IsConfirm=0,Description=''
,create_user_id='C253F126-77AC-41DE-8776-CA1DE5A0680F'
,Create_time=GETDATE(),update_user_id='C253F126-77AC-41DE-8776-CA1DE5A0680F',Update_time=GETDATE(),Is_Settlement=1
from esn_Todos a
left join esn_todos_points b on a.sn=b.sn
left join esn_Todos_auto_points c on a.sn=c.sn
left join evw_Employee d on a.AssignedTo_userid=d.user_id
where a.FinishedDate between @FinishedDateStart and @FinishedDateEnd
and b.date_points_settlement between @FinishedDateStart and @FinishedDateEnd
and (c.points_tobe <>0 or a.Points <>0)
and d.Emp_DS not like '%外包所%'
;
insert into esn_todos_Flow(esn_todos_sn,StepType_id,StepType_id_Previous,PG_IsConfirm,PE_IsConfirm,Leader_IsConfirm,Description,create_user_id,Create_time,update_user_id,Update_time,Is_Settlement)
select esn_todos_sn=a.sn,StepType_id=2,StepType_id_Previous=1,PG_IsConfirm=1,PE_IsConfirm=0,Leader_IsConfirm=0,Description=''
,create_user_id='C253F126-77AC-41DE-8776-CA1DE5A0680F'
,Create_time=GETDATE(),update_user_id='C253F126-77AC-41DE-8776-CA1DE5A0680F',Update_time=GETDATE(),Is_Settlement=0
from esn_Todos a
left join esn_todos_points b on a.sn=b.sn
left join esn_Todos_auto_points c on a.sn=c.sn
left join evw_Employee d on a.AssignedTo_userid=d.user_id
where a.FinishedDate between @FinishedDateStart and @FinishedDateEnd
and isnull(b.date_points_settlement,'')=''
and (c.points_tobe <>0 or a.Points <>0)
and d.Emp_DS not like '%外包所%'
--select * from esn_todos_Flow
commit tran tran1
select * from esn_todos_Flow a 
select * from esn_todos_Flow_StepType a 
--rollback tran tran1
--審核資料生成 END
--批次生成 END
select a.create_user_id,a.*,c.* from esn_todos_Flow a
inner join esn_Todos b on a.esn_todos_sn=b.sn
inner join evw_Employee c on b.AssignedTo_userid=c.user_id
where b.FinishedDate between '2021-02-01' and '2021-03-31'
--批次生成預設關帳資料
truncate table [esn_todos_Settle]
declare @Settle_Date varchar(10)='2021-08-01'
insert into [esn_todos_Settle] (Settle_Date,isClosed,DSNum,DeptNum,ItemNum,update_user_id,update_time,Create_user_id,Create_time)
select @Settle_Date as Settle_Date,1 as isClosed,a.Emp_DSNum as DSNum,'' as DeptNum,'' as ItemNum,'cb76971e-22d1-4f81-ade1-03c280f68cce' as update_user_id
,getdate() as update_time,'cb76971e-22d1-4f81-ade1-03c280f68cce' as Create_user_id,getdate() as Create_time
from [evw_qResult_EmpDS] a
--DSNUM To targetid
begin tran tran1
update esn_todos_Settle set DSNum=s.ID
from (
select a.DSNum ,b.ID from esn_todos_Settle a
left join evw_qResult_EmpDS b on a.DSNum=b.Emp_DSNum
) s
where esn_todos_Settle.DSNum=s.DSNum
select * from esn_todos_Settle
rollback tran tran1
--other
select * from [evw_qResult_EmpDS]
order
SELECT top 1 CONVERT(varchar(7),Settle_Date,126)+'-01' from [esn_todos_Settle] a
left join [evw_qResult_EmpDS] b on a.DSNum=b.Emp_DSNum
left join [evw_qResult_Dept] c on a.DeptNum=c.targetID
left join [evw_qResult_EmpItem] d on a.ItemNum=d.Emp_ItemNum
where 1=1
and isClosed=0 and b.ID in(11328,11329,1101949,1101951,1109009) order by a.Settle_Date
select Settle_Date as 結算日期,isClosed as 已關帳,Emp_DS as 所別 from [esn_todos_Settle] a
left join [evw_qResult_EmpDS] b on a.DSNum=b.Emp_DSNum
left join [evw_qResult_Dept] c on a.DeptNum=c.targetID
left join [evw_qResult_EmpItem] d on a.ItemNum=d.Emp_ItemNum
where 1=1 and isClosed=1 and b.ID in(11328,11329,1101949,1101951,1109009)
select * from [esn_todos_Settle]
/****** SSMS 中 SelectTopNRows 命令的指令碼 ******/
SELECT TOP (1000) [Emp_Item]
,[ID]
,[thisOrder]
,[Description]
,[Emp_ItemNum]
,[Emp_ItemType]
FROM [IPEasy_test].[dbo].[evw_qResult_EmpItem]
/****** SSMS 中 SelectTopNRows 命令的指令碼 ******/
SELECT TOP (1000) [Emp_DS]
,[ID]
,[thisOrder]
,[Emp_DSContury]
,[Emp_DSNum]
FROM [IPEasy_test].[dbo].[evw_qResult_EmpDS]
/****** SSMS 中 SelectTopNRows 命令的指令碼 ******/
SELECT TOP (1000) [targetID]
,[targetType]
,[dept]
FROM [IPEasy_test].[dbo].[evw_qResult_Dept]
select * from [esn_todos_Settle] where 1=1 and DSNum in(11328,11329,1101949,1101951,1109009)
 
update [esn_todos_Settle] set isClosed=true , update_user_id=@update_user_id ,update_time=GETDATE()
where id=@id
SELECT top 1 CONVERT(varchar(7),Settle_Date,126) Settle_Month from [esn_todos_Settle] a left join [evw_qResult_EmpDS] b on a.DSNum=b.Emp_DSNum left join [evw_qResult_Dept] c on a.DeptNum=c.targetID left join [evw_qResult_EmpItem] d on a.ItemNum=d.Emp_ItemNum where 1=1 and isClosed=0 and b.ID in(11328,11329,1101949,1101951,1109009)
\ No newline at end of file
USE [IPEasy_test]
GO
/****** Object: StoredProcedure [dbo].[esp_PD_CalPointsFlow] Script Date: 2021/11/8 下午 02:03:29 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- ==========================================================================================
-- Author: nina
-- Create date: 2021-06-22
-- Description: 批量提成試算, 提成提交
/* 條件 :1.有承辦人 且有 TargetID
2.有完成日期
3.完成狀態=已完成
4.排除部門=外包
5.排除指派狀態in (AS01,AS04,AS05)
6.排除子事項 = 確認委託且承辦人所別 not in (台北,台中,高雄) -->意思,確認委託只要抓台北台中高雄,其他都不抓
7.在指定時間區間
8.排除,確認委託 , 承辦人(Steven, hugo)
*/
-- ==========================================================================================
CREATE PROCEDURE [dbo].[esp_PD_CalPointsFlow]
--declare
@p_DateF varchar(10), -- 日期起
@p_DateT varchar(10), -- 日期迄
@p_Filter varchar(20), -- 其他條件組合
@p_MtiCaseNo varchar(4000), -- 案件編號
@p_FlowUserID varchar(100), -- Flow user_id
@p_UserID varchar(50) -- 登入員工user_id
AS
BEGIN
--SELECT @p_DateF='2021-09-01', @p_DateT='2021-09-30', @p_MtiCaseNo=''
--SELECT @p_FlowUserID='49E9C2FF-2E97-40B9-BF9D-23DB089DA9FD,e41ea051-4ae4-436e-bbcc-6a1ccccd7219' /*setella,華星組*/, @p_UserID='49E9C2FF-2E97-40B9-BF9D-23DB089DA9FD'
--SELECT @p_FlowUserID='732049ab-5ae7-47a7-8d1a-10dcc0b5d82b'/*nina*/, @p_UserID='732049ab-5ae7-47a7-8d1a-10dcc0b5d82b'
--SELECT @p_FlowUserID='FEF90161-17FA-42FA-9C04-AC9B80E99D39'/*孟婷婷*/, @p_UserID='FEF90161-17FA-42FA-9C04-AC9B80E99D39'
--SELECT @p_Filter='1,0,1,0,0,0,0,' --已完成, 可提交 (程序只能查這2個條件, asp 寫固定)
--SELECT @p_Filter='1,1,0,0,0,0,1,' --已完成, 未完成, 可試數 (只抓有缺公式之資料, asp 寫固定)
--SELECT @p_Filter='0,1,0,0,0,0,1,' -- 未完成, 可試數 (IT 自由查)
--SELECT @p_DateF='', @p_DateT='', @p_Filter='', @p_MtiCaseNo='954999,962994,950221,950224,950227,' --依todos.sn資料抓取
IF OBJECT_ID('tempdb..#tmpFilter') IS NOT NULL DROP TABLE #tmpFilter
SELECT * into #tmpFilter from dbo.ufn_split(@p_Filter,',') where value<>''
declare @IsCheck_FinishDate varchar(1)=(select value from #tmpFilter where id=1) --判斷條件:已完成
declare @IsCheck_NoFinishDate varchar(1)=(select value from #tmpFilter where id=2) --判斷條件:未完成
declare @IsCheck_CanFlow varchar(1)=(select value from #tmpFilter where id=3) --判斷條件:可提交
declare @IsCheck_NoSubTodos03 varchar(1)=(select value from #tmpFilter where id=4) --判斷條件:排除内部看稿
declare @IsCheck_NoSubTodos01 varchar(1)=(select value from #tmpFilter where id=5) --判斷條件:排除確認委託
declare @IsCheck_NoClose varchar(1)=(select value from #tmpFilter where id=6) --判斷條件:排除結案
declare @IsCheck_CanReCal varchar(1)=(select value from #tmpFilter where id=7) --判斷條件:可試算
if @p_FlowUserID=@p_UserID and exists(select * from evw_Employee where user_id=@p_FlowUserID and Emp_DeptName='信息管理部') SET @p_FlowUserID='ALL'
--print @p_FlowUserID
IF OBJECT_ID('tempdb..#tmpTSN') IS NOT NULL DROP TABLE #tmpTSN
CREATE TABLE #tmpTSN (SN int, case_id varchar(50), flow_user_id varchar(50), case_volume varchar(50), TaskClass_id varchar(20), points decimal(10,2), AssignStatus varchar(20), IsCheck_FinishDate varchar(1), IsCheck_NoFinishDate varchar(1), IsCheck_CanFlow varchar(1), IsCheck_CanReCal varchar(1), IsQry_NoneParam varchar(1))
--抓初步條件的SN , 條件1.要有承辦人
if @IsCheck_FinishDate='1' AND @IsCheck_NoFinishDate='1' AND @IsCheck_CanReCal='1' and @p_DateF='2021-01-01' --and @p_DateT=''
begin
-- 只抓有缺公式之資料 (傳入條件日期固定 2021-01-01 ~ '' , Filter='1,1,0,0,0,0,1,' 勾選已完成, 未完成, 可試算
INSERT #tmpTSN SELECT distinct a.SN, a.case_id, p.flow_user_id, a.caseno as case_volume, a.TaskClass_id, a.points, a.AssignStatus, IsCheck_FinishDate=@IsCheck_FinishDate, IsCheck_NoFinishDate=@IsCheck_NoFinishDate, IsCheck_CanFlow=@IsCheck_CanFlow, IsCheck_CanReCal=@IsCheck_CanReCal, IsQry_NoneParam='1'/*只抓有缺公式之資料flag*/
FROM esn_Todos a
inner join esn_OthData b on b.FldName='Points_tobe' and Oth_ID=Cast(a.SN as varchar(10)) and FldMemo like '%error.2.%'
inner join p_case_info p on p.case_id=a.case_id
WHERE a.active=1 AND ISNULL(a.AssignedTo_userid,'')<>'' --有承辦人才能算點數
and a.AssignStatus not in ('AS01','AS02','AS05','AS06') --派點狀態:AS00=待計算, AS01=運營辦指派, AS02=指派完成, AS03=系統指派, AS04=公式準備中, AS05=主管轉運營辦, AS06=已人工填寫, AS08=COO指派
and a.ToDosStatus not in ('TDS03')
and ( (isnull(a.FinishedDate_c10,'')<>'' AND isnull(convert(varchar(10),a.FinishedDate,120),'')>='2021-09-01')
or (isnull(a.FinishedDate_c10,'')='' AND isnull(convert(varchar(10),a.Create_time,120),'')>=@p_DateF) )
and ((@p_FlowUserID='ALL' and 1=1) or
(@p_FlowUserID<>'ALL' and exists(select 1 from dbo.ufn_split(@p_FlowUserID,',') where value=p.flow_user_id and value<>'') ) --案件流程人员
)
end
else if @p_Filter='' and @p_DateF='' and @p_DateT='' and @p_MtiCaseNo<>'' --依Todos.SN 查詢, 不卡程序權限
begin
INSERT #tmpTSN
SELECT distinct a.SN, a.case_id, p.flow_user_id, a.caseno as case_volume, a.TaskClass_id, a.points, a.AssignStatus, IsCheck_FinishDate='0', IsCheck_NoFinishDate='0', IsCheck_CanFlow='0', IsCheck_CanReCal='0', IsQry_NoneParam='2'/*只抓傳入Todos.SN之資料flag*/
FROM esn_Todos a
inner join p_case_info p on p.case_id=a.case_id
WHERE a.active=1 AND ISNULL(a.AssignedTo_userid,'')<>'' --有承辦人才能算點數
and a.AssignStatus not in ('AS01','AS02','AS05','AS06') --派點狀態:AS00=待計算, AS01=運營辦指派, AS02=指派完成, AS03=系統指派, AS04=公式準備中, AS05=主管轉運營辦, AS06=已人工填寫, AS08=COO指派
--and a.ToDosStatus not in ('TDS03')
and a.SN in (select value from dbo.ufn_split(@p_MtiCaseNo,',') where value<>'')
end
else
begin
--條件2.有完成日期 , 3.完成狀態=已完成 , 5.排除指派狀態in (AS01,AS04,AS05), 7.在指定時間區間
if @p_MtiCaseNo<>''
begin
INSERT #tmpTSN SELECT a.SN, a.case_id, b.flow_user_id, b.case_volume, a.TaskClass_id, a.points, a.AssignStatus, IsCheck_FinishDate=@IsCheck_FinishDate, IsCheck_NoFinishDate=@IsCheck_NoFinishDate, IsCheck_CanFlow=@IsCheck_CanFlow, IsCheck_CanReCal=@IsCheck_CanReCal, IsQry_NoneParam='0'
FROM esn_Todos a
inner join p_case_info b on b.case_id=a.case_id
where a.active=1 AND ISNULL(a.AssignedTo_userid,'')<>''
and exists(select 1 from dbo.ufn_split(@p_MtiCaseNo,',') where value=b.case_volume and value<>'')
and ((@p_FlowUserID='ALL' and 1=1) or
(@p_FlowUserID<>'ALL' and exists(select 1 from dbo.ufn_split(@p_FlowUserID,',') where value=b.flow_user_id and value<>'') ) --案件流程人员
)
and ((@IsCheck_FinishDate='0' AND 1=1) OR (@IsCheck_FinishDate='1' AND ToDosStatus='TDS02'/*已完成*/ AND ISNULL(a.FinishedDate,'')<>'' AND isnull(convert(varchar(10),a.FinishedDate,120),'') between @p_DateF and @p_DateT) ) --已完成
and ((@IsCheck_NoFinishDate='0' AND 1=1) OR (@IsCheck_NoFinishDate='1' AND ISNULL(a.FinishedDate,'')='' and isnull(convert(varchar(10),a.StartDate2,120),'') between @p_DateF and @p_DateT)) --未完成
and ((@IsCheck_NoSubTodos03='0' AND 1=1) OR (@IsCheck_NoSubTodos03='1' AND TaskClass_id<>'SubTodos_03')) --排除内部看稿
and ((@IsCheck_NoSubTodos01='0' AND 1=1) OR (@IsCheck_NoSubTodos01='1' AND TaskClass_id<>'SubTodos_01')) --排除確認委託
and ((@IsCheck_NoClose='0' AND 1=1) OR (@IsCheck_NoClose='1' AND ToDosStatus<>'TDS03')) --排除結案
and ((@IsCheck_CanFlow='0' AND 1=1) OR (@IsCheck_CanFlow='1' AND AssignStatus NOT in ('AS01','AS04','AS05')) ) --勾選可提交
and ((@IsCheck_CanReCal='0' AND 1=1) OR (@IsCheck_CanReCal='1' AND AssignStatus NOT in ('AS01','AS05')) ) --勾選可試算
end
else
begin
--if @IsCheck_FinishDate='1'
INSERT #tmpTSN SELECT a.SN, a.case_id, b.flow_user_id, b.case_volume, a.TaskClass_id, a.points, a.AssignStatus, IsCheck_FinishDate=@IsCheck_FinishDate, IsCheck_NoFinishDate=@IsCheck_NoFinishDate, IsCheck_CanFlow=@IsCheck_CanFlow, IsCheck_CanReCal=@IsCheck_CanReCal, IsQry_NoneParam='0'
FROM esn_Todos a
inner join p_case_info b on b.case_id=a.case_id
where a.active=1 AND ISNULL(a.AssignedTo_userid,'')<>''
and ((@IsCheck_FinishDate='0' AND 1=1) OR (@IsCheck_FinishDate='1' AND ToDosStatus='TDS02'/*已完成*/ AND ISNULL(a.FinishedDate,'')<>'' AND isnull(convert(varchar(10),a.FinishedDate,120),'') between @p_DateF and @p_DateT) ) --已完成
and ((@IsCheck_NoFinishDate='0' AND 1=1) OR (@IsCheck_NoFinishDate='1' AND ISNULL(a.FinishedDate,'')='' and isnull(convert(varchar(10),a.StartDate2,120),'') between @p_DateF and @p_DateT)) --未完成
and ((@IsCheck_NoSubTodos03='0' AND 1=1) OR (@IsCheck_NoSubTodos03='1' AND TaskClass_id<>'SubTodos_03')) --排除内部看稿
and ((@IsCheck_NoSubTodos01='0' AND 1=1) OR (@IsCheck_NoSubTodos01='1' AND TaskClass_id<>'SubTodos_01')) --排除確認委託
and ((@IsCheck_NoClose='0' AND 1=1) OR (@IsCheck_NoClose='1' AND ToDosStatus<>'TDS03')) --排除結案
and ((@IsCheck_CanFlow='0' AND 1=1) OR (@IsCheck_CanFlow='1' AND AssignStatus NOT in ('AS01','AS04','AS05')) ) --勾選可提交
and ((@IsCheck_CanReCal='0' AND 1=1) OR (@IsCheck_CanReCal='1' AND AssignStatus NOT in ('AS01','AS05')) ) --勾選可試算
if @p_FlowUserID<>'ALL'
begin
delete a from #tmpTSN a where not exists(select 1 from dbo.ufn_split(@p_FlowUserID,',') where value=flow_user_id and value<>'') --案件流程人员
end
end
end
--刪除程序已確認或已結算
delete #tmpTSN where dbo.efn_IsCheckClose('IsCheckClose',sn) ='1'
--select * from #tmpTSN
IF OBJECT_ID('tempdb..#tmpEMP') IS NOT NULL DROP TABLE #tmpEMP
select * INTO #tmpEMP from evw_Employee where targetID <>0
--第2次篩選, 要的資料及欄位 條件: 1.承辦人要有targetid, 4.排除部門=外包, 6.排除子事項 = 確認委託且承辦人所別 not in (台北,台中,高雄)
IF OBJECT_ID('tempdb..#tmpDA') IS NOT NULL DROP TABLE #tmpDA
select a.SN, p.case_volume, p.case_name, p.customer_name, p.country_id, a.case_id, p.case_type_id, p.apply_type_id, p.apply_type_zh_tw,
c.ctrl_proc_zh_tw, b.TaskClass_id, b.TaskDescription, b.AssignedTo_userid, AssignedTo_Name=ISNULL(s.cn_name,''), AssignedTo_maineamil=ISNULL(s.main_email,''), AssignedTo_DSContury=ISNULL(s.Emp_DSContury,''), AssignedTo_DS=ISNULL(s.Emp_DS,''),
director_email=isnull(s.director_email,''), director_name=isnull(s.director_name,''), /*主管Email, 主管名稱*/
director_badge=isnull(s.director_badge,''),
director_userid=cast('' as varchar(50)),--isnull((SELECT TOP 1 user_id from evw_Employee where emp_no=s.director_badge and is_enabled=1),''), /*主管user_id*/
director_DSContury=cast('' as varchar(50)),--isnull((SELECT TOP 1 Emp_DSContury from evw_Employee where emp_no=s.director_badge and is_enabled=1),''), /*主管的國別*/
b.FinishedDate_c10, Points=isnull(b.Points,0), b.ToDosStatus, b.ToDosStatus_Name, b.AssignStatus, b.AssignStatus_name
,points_tobe=CASE WHEN ap.points_tobe is null then '' ELSE Cast(ap.points_tobe as varchar(20)) end
--派點狀態為如下時, 不顯示提成說明 (AS00=待計算, AS01=運營辦指派, AS02=指派完成, AS03=系統指派, AS04=公式準備中, AS05=主管轉運營辦, AS06=已人工填寫, AS08=COO指派)
,points_tobe_desc=CASE WHEN b.AssignStatus in ('AS01','AS02','AS05','AS06','AS08') then '' ELSE ISNULL((select TOP 1 FldMemo From esn_OthData where FldName='Points_tobe' AND Oth_ID=Cast(a.SN as varchar(10)) Order by update_time DESC),'') END
--可試算
,IsCanReCal=dbo.efn_IsCanTobeFlow('IsCanReCal', 0, b.AssignedTo_userid, s.Emp_DS, s.targetID, b.FinishedDate, b.ToDosStatus, b.AssignStatus,b.Points, b.TaskClass_id, p.Apply_type_id, c.ctrl_proc_id)
--可提交
,IsCanFlow=dbo.efn_IsCanTobeFlow('IsCanFlow', b.sn, b.AssignedTo_userid, s.Emp_DS, s.targetID, b.FinishedDate, b.ToDosStatus, b.AssignStatus,b.Points, b.TaskClass_id, p.Apply_type_id, c.ctrl_proc_id)
--涉外案
,Case_country_id=ISNULL(p.country_id,''), Customer_country_id=ISNULL(p.Customer_country_id,''), isCheck_Country=dbo.efn_isCheck('checkCountry_id',0,p.case_id,'')
,p.flow_user_id, p.flow_UserCName, a.IsCheck_FinishDate, a.IsCheck_NoFinishDate, a.IsCheck_CanFlow, a.IsCheck_CanReCal, a.IsQry_NoneParam, c.proc_note
INTO #tmpDA
from #tmpTSN a
inner join esn_Todos b on b.sn=a.sn
inner join evw_p_case_info p on p.case_id=a.case_id
inner join evw_p_proc_info c on c.proc_id=b.proc_id and c.case_id=a.case_id
left join #tmpEMP s on s.user_id=b.AssignedTo_userid
left join esn_Todos_auto_points ap on a.sn=ap.sn
where ((a.IsQry_NoneParam='1' and 1=1 /*只抓有缺件*/ ) OR (a.IsQry_NoneParam='2' and 1=1 /*依Todos.SN*/ ) OR
(a.IsQry_NoneParam='0' AND s.Emp_DS<>'外包所'
and isnull(s.targetID,0)<>0 /*檢查承辦人有沒TargetID*/
and ((a.IsCheck_CanFlow='0' AND 1=1) OR (a.IsCheck_CanFlow='1' and not (b.TaskClass_id='SubTodos_01' /*確認委託*/ and ISNULL(s.Emp_DS,'') not in ('台北所','台中所','高雄所')) ) ) --排除子事項 = 確認委託且承辦人所別 not in (台北,台中,高雄), (在勾可提交下, 要排除)
and ((a.IsCheck_CanFlow='0' AND 1=1) OR (a.IsCheck_CanFlow='1' and not (b.TaskClass_id='SubTodos_01' /*確認委託*/ and b.AssignedTo_userid in ('0E416C5E-0885-4563-8838-C7781F39E116','FD67D192-041B-4725-A3E1-CB5E62A5CC61')) ) ) --8.排除,確認委託 , 承辦人(Steven, hugo)
) )
--這樣寫會比較快
update a set director_userid=isnull((SELECT TOP 1 user_id from #tmpEMP where emp_no=a.director_badge and is_enabled=1),''), /*主管user_id*/
director_DSContury=isnull((SELECT TOP 1 Emp_DSContury from #tmpEMP where emp_no=a.director_badge and is_enabled=1),'') /*主管的國別*/
from #tmpDA a
where director_badge<>''
--顯示結果
select * from #tmpDA
WHERE ((IsQry_NoneParam='1' AND points_tobe_desc like '%error.2.%' /*只抓有缺件*/) OR
(IsQry_NoneParam='0' AND 1=1) OR
(IsQry_NoneParam='2' AND 1=1)
)
order by case_volume, SN
END
GO
/****** Object: UserDefinedFunction [dbo].[f_GetMultiplyingPoints_cn] Script Date: 2021/5/28 上午 10:24:09 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date, ,>
-- Description: <Description,绩效系数提成_CN >
-- =============================================
Create FUNCTION [dbo].[f_GetMultiplyingPoints_cn]
(
@point float
)
RETURNS float
AS
BEGIN
DECLARE @rpoint FLOAT;
Set @rpoint= ROUND(CASE
WHEN @point <= 4.0 THEN @point * 800
WHEN @point > 4.0 and @point<=8.0 THEN @point*900-400
WHEN @point > 8.0 and @point<=10.0 THEN @point*1000-1200
WHEN @point > 10.0 and @point<=12.0 THEN @point*1100-2200
WHEN @point > 12.0 and @point<=14.0 THEN @point*1200-3400
WHEN @point > 14 THEN @point*1300-4800
END, 2) ;
RETURN(@rpoint)
END
GO
USE [IPEasy_test]
GO
/****** Object: UserDefinedFunction [dbo].[f_GetNewMultiplyingPoints_sol] Script Date: 2021/10/20 下午 04:55:20 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Penny>
-- Create date: <2021-04-01>
-- Description: <計算點數加乘 >
-- =============================================
Create FUNCTION [dbo].[f_GetNewMultiplyingPoints_sol]
(
@i_user_id varchar(255),
@i_is_engineer int,
@i_is_sales int,
@i_acting_points float,
@i_non_acting_points float
)
RETURNS @TABLE TABLE (user_id varchar(255),acting_points int, non_acting_points int)
as
begin
declare @i_points float,
--@v_is_engineer int,
--@v_is_sales int,
--工程師
@v_first_range float,
@v_second_range float,
@v_first_range_points float,
@v_second_range_points float,
--業務
@weighting1 float = 1.15,
@weighting2 float = 1.3,
@bracket1 int = 6000,
@bracket2 int= 8000,
--加乘點數
@o_multiplying_points float,
@o_acting_points float,
@o_non_acting_points float;
set @i_points = isnull(@i_acting_points,0) + isnull(@i_non_acting_points,0)
if @i_points = 0
begin
insert @TABLE
(user_id,acting_points,non_acting_points)
values (@i_user_id,@o_acting_points,@o_non_acting_points);
end
else
begin
--select
--@v_is_engineer = is_engineer,
--@v_is_sales = is_sales
--from evw_ehr_employee_zh_tw
--where wade_user_id = @i_user_id;
if @i_is_sales = 1
begin
set @o_multiplying_points= round(case when @i_points <= @bracket1 then @i_points
when @i_points <= @bracket2 then @bracket1 + @weighting1 * (@i_points - @bracket1)
else @bracket1 + (@bracket2 - @bracket1) * @weighting1 + (@i_points - @bracket2) * @weighting2
end, 0);
end
else
begin
set @v_first_range = 6500;
set @v_second_range = 8500;
set @v_first_range_points = case when @i_points > 0 and @v_first_range > 0 and @i_points > @v_second_range then @v_second_range - @v_first_range
when @i_points > 0 and @v_first_range > 0 and @i_points > @v_first_range and @i_points <= @v_second_range then @i_points - @v_first_range
else 0 end;
set @v_second_range_points = case when @i_points > 0 and @v_first_range > 0 and @i_points > @v_second_range then @i_points - @v_second_range
else 0 end
set @o_multiplying_points = case when @i_points <= 6500 then @i_points
when @i_points > @v_first_range then @v_first_range + @v_first_range_points * 1.15 + @v_second_range_points * 1.3
when @i_points is null then null
else @i_points end;
end
set @o_multiplying_points = round(@o_multiplying_points,0)
set @o_acting_points = case when @o_multiplying_points is null then null
when isnull(@i_acting_points,0) = 0 then null
else @o_multiplying_points * (@i_acting_points / @i_points)
end
set @o_acting_points = round(isnull(@o_acting_points,0),0)
set @o_non_acting_points = case when @o_multiplying_points is null then null
when isnull(@i_non_acting_points,0) = 0 then null
else @o_multiplying_points - @o_acting_points
end
insert @TABLE
(user_id,acting_points,non_acting_points)
values (@i_user_id,@o_acting_points,@o_non_acting_points);
end
return
end
GO
--IF OBJECT_ID('tempdb..#tmp', 'U') IS NOT NULL DROP TABLE #tmp
IF OBJECT_ID('tempdb..#tmp2', 'U') IS NOT NULL DROP TABLE #tmp2
-- select a.case_id into #tmp from p_proc_info a
-- group by case_id
-- EXCEPT
-- select a.case_id from esn_todos a
-- group by a.case_id
select b.*,
point_list_id,eflow_id,d.user_id,user_level,input_date,audit_type_id,status,point_num,currency_id,point_type,part_owner_id,point_note,point_bonus_time,work_type_id,work_type_num,work_coefficient,cus_coefficient
,d.user_name as AssignedTo,d.cn_name as AssignedTo_Name,ec.FlowKey as PatentType,ec.Names as PatentType_Name,
into #tmp2 from #tmp a
inner join p_proc_info b on a.case_id=b.case_id
inner join evw_p_case_info pci on pci.case_id=a.case_id
inner join p_proc_point_list c on b.proc_id=c.proc_id
inner join esn_category ec on ParentID='PatentType' AND ec.QryKey1=pci.apply_type_id
left join s_user_info d on d.user_id=c.user_id
where c.point_num > 0
select * from #tmp2
--and
--c.proc_id in(
--'AD58075C-BC5E-476E-B7A2-140C316B33F3','B595EC03-AEC0-46CA-B01C-1F0B73AEE9CB','E35D1FD1-7FB1-4666-B685-D3C5DB1F59BA','5C3FCFF2-EB85-4A25-9BED-F6759B479F31','C67BF38A-2016-4BFF-AF78-EC669AB785D1','448CEEB4-B254-4ACC-AF98-520C889E94B8','A71AE4D3-B65A-4653-9148-993CED499478','35172890-1843-41E2-83DE-35AA6F7EFE46','8B513B48-3114-4476-B3B8-12E034CBE4B1','C9C84A83-D0A3-48A4-A4F5-7FD1D54A33E7','E37A09F8-8834-4220-A70F-805B30C5354B','71F9A510-5C6F-4B5D-9230-CACC078E859C','BD389D94-0552-49A2-9868-1C85C53E7CBD','EDFF2A48-6DE6-443B-8B82-61E9E0C32ACD','A3E65682-F660-4AF7-944C-314556776E5F','61187307-69DA-4C5B-B942-1B05B5CAB3A7','05FC9C85-7B83-4395-A120-6534B5A3A8C8','1C771658-21CC-43F9-93CB-DC79652FF7E0','83C90F12-E208-4F2F-AD89-2DD569179034','A7253FF9-3C63-48CB-AA23-47E68FDFCAC1','AD57EF9D-EA28-496E-996D-13ACBE4826B1','8D309415-2270-401A-8483-E77E0E08CAD6','FAD25842-DCA5-4AB3-B088-B31991679D8B','140ED335-0982-40F5-8EC9-13532A845290'
--)
order by proc_id
insert into esn_todos_tmp
(
proc_id,SubSeq,CaseType,CaseType_Name,CaseNo,TaskDescription,StartDate2,StartDate2_c10,LegalDueDate,LegalDueDate_c10
,AttorneyDueDate,AttorneyDueDate_c10,FinishedDate,FinishedDate_c10,AssignedTo_userid,AssignedTo,AssignedTo_Name,PointsType
,Points,ExchangeRate,Matter,Matter_Name,PatentType,PatentType_Name,ToDosStatus,ToDosStatus_Name,Status,Status_Name,AssignStatus
,AssignStatus_name,Memo,Create_Userid,Create_User,Create_time,Update_Userid,Update_User,Update_time,IPS_FlowKey
,IPS_ParentId,case_id,date_point_settlement
)
select a.proc_id,a.case_type_Code as CaseType ,a.case_type_zh_tw as CaseType_Name, a.Case_Volume as caseno ,'完成初稿' as TaskDescription,a.create_time as StartDate2,a.create_time_c10 as StartDate2_c10,a.legal_due_date, a.LegalDueDate_c10
,a.int_due_date as AttorneyDueDate ,a.int_due_date_c10 as AttorneyDueDate_c10 ,a.back_date as FinishedDate,a.AssignedTo_userid,a.AssignedTo,a.AssignedTo_Name
,a.point_type as PointsType,a.point_num as Points,'as' as ExchangeRate, 'tudfutut' as esn_to
from #tmp2 a
select * from esn_todos_tmp
select * from esn_Todos a
where AssignedTo_Name like '%LISA%' and case_id='TP200020CN'
--new
select distinct pc.case_id as attr_caseID,
'CaseNo' as class_33,
pc.case_volume as attr_caseNo,
pc.case_volume as CaseNo,
'asst_office_case_no' as class_34,
asst_office_case_no,
isnull(ui.cn_name,'') as AssignedTo,
isnull(ui.Emp_DS,'') as 所別,
isnull(ui.Emp_DeptName,'') as 部門,
isnull(ui.Emp_Item,'') as 部別,
ca.agency_name_cn as Agency,
(select max(legal_due_date) from p_proc_info pi where pi.case_id=pc.case_id) as LegalDueDate_latest,
STUFF(ISNULL((SELECT ',' + contact_name FROM evw_p_contact_list WHERE obj_id = pc.case_id AND contact_is_enabled = 1 FOR XML PATH('')),'' ), 1, 1, '') as contact_name,
CaseLevelDesc as CaseLevelDesc
from (select pci.case_id,pci.case_volume,pcai.asst_office_case_no
from p_case_info pci
left join p_case_advance_info pcai on pci.case_id = pcai.case_id
where pci.case_volume in ('TP190062-CN', 'TP190062PCT', 'TP190062-US', 'TP190063-CN', 'TP190064-CN', 'TP190065-CN', 'TP190066-CN', 'TP190068-CN', 'TP190069-CN', 'TP190070-CN', 'TP190071-CN', 'TP190072-CN', 'TP190073-CN', 'TP190074-CN', 'TP190075-CN', 'TP190076-CN', 'TP190077-CN', 'TP190078-CN', 'TP190079-CN', 'TP190079PCT', 'TP190079-US', 'TP190080-CN', 'TP190081-CN', 'TP190082-CN', 'TP190082PCT', 'TP190082-US', 'TP190083-CN', 'TP190084-CN', 'TP190085-CN', 'TP190085PCT', 'TP190086-CN', 'TP190087-CN', 'TP190088-CN', 'TP190088PCT', 'TP190088-US', 'TP190089-CN', 'TP190090-CN', 'TP190090PCT', 'TP190090-US', 'TP190091-CN', 'TP190091PCT', 'TP190091-US', 'TP190092-CN', 'TP190093-CN', 'TP190094-CN', 'TP190095-CN', 'TP190096-CN', 'TP190096PCT', 'TP190096-US', 'TP190097-CN', 'TP190098-CN', 'TP190099-CN', 'TP190100-CN', 'TP190190-CN', 'TP190102-CN', 'TP190103-CN', 'TP190103PCT', 'TP190104-CN', 'TP190104PCT', 'TP190104-US', 'TP190105-CN', 'TP190105PCT', 'TP190105-US', 'TP190107-CN', 'TP190108-CN', 'TP190108PCT', 'TP190221-CN', 'TP190110-CN', 'TP190110PCT', 'TP190111-CN', 'TP190112-CN', 'TP190112PCT', 'TP190113-CN', 'TP190114-CN', 'TP190114PCT', 'TP190114-US', 'TP190115-CN', 'TP190116-CN', 'TP190117-CN', 'TP190118-CN', 'TP190118PCT', 'TP190118-US', 'TP190119-CN', 'TP190120-CN', 'TP190120PCT', 'TP190120-US', 'TP190121-CN', 'TP190122-CN', 'TP190123-CN', 'TP190124-CN', 'TP190125-CN', 'TP190126-CN', 'TP190127-CN', 'TP190128-CN', 'TP190129-CN', 'TP190130-CN', 'TP190131-CN', 'TP190131PCT', 'TP190132-CN', 'TP190132PCT', 'TP190132-US', 'TP190133-CN', 'TP190133PCT', 'TP190133-US', 'TP190134-CN', 'TP190135-CN', 'TP190135PCT', 'TP190136-CN', 'TP190137-CN', 'TP190138-CN', 'TP190139-CN', 'TP190139PCT', 'TP190139-US', 'TP190140-CN', 'TP190141-CN', 'TP190142-CN', 'TP190143-CN', 'TP190143PCT', 'TP190144-CN', 'TP190144PCT', 'TP190145-CN', 'TP190146-CN', 'TP190147-CN', 'TP190148-CN', 'TP190149-CN', 'TP190150-CN', 'TP190150PCT', 'TP190151-CN', 'TP190152-CN', 'TP190174-CN', 'TP190174PCT', 'TP190182-CN', 'TP190109-CN', 'TP190177-CN', 'TP190177PCT', 'TP190177-US', 'TP190178-CN', 'TP190179-CN', 'TP190179PCT', 'TP190180-CN', 'TP190180PCT', 'TP190180-US', 'TP190181-CN', 'TP190186-CN', 'TP190176-CN', 'TP190185PCT', 'TP190222-CN', 'TP190187-CN', 'TP190187PCT', 'TP190188-CN', 'TP190188PCT', 'TP190189-CN', 'TP190189PCT', 'TP190189-US', 'TP190190PCT', 'TP190191-CN', 'TP190192-CN', 'TP190192PCT', 'TP190193-CN', 'TP190193PCT', 'TP190194-CN', 'TP190194PCT', 'TP190195-CN', 'TP190195PCT', 'TP190196-CN', 'TP190196PCT', 'TP190196-US', 'TP190197-CN', 'TP190198-CN', 'TP190199-CN', 'TP190199PCT', 'TP190200-CN', 'TP190200PCT', 'TP190200-US', 'TP190201-CN', 'TP190201PCT', 'TP190201-US', 'TP190202-CN', 'TP190202PCT', 'TP190202-US', 'TP190231-CN', 'TP190203PCT', 'TP190203-US', 'TP190204-CN', 'TP190205-CN', 'TP190205PCT', 'TP190205-US', 'TP190206-CN', 'TP190206PCT', 'TP190206-US', 'TP190207-CN', 'TP190207PCT', 'TP190208-CN', 'TP190208PCT', 'TP190208-US', 'TP190209-CN', 'TP190210-CN', 'TP190210PCT', 'TP190210-US', 'TP190211-CN', 'TP190211PCT', 'TP190211-US', 'TP190212-CN', 'TP190213-CN', 'TP190213PCT', 'TP190214-CN', 'TP190215-CN', 'TP190215PCT', 'TP190216-CN', 'TP190217-CN', 'TP190217PCT', 'TP190218-CN', 'TP190218PCT', 'TP190219-CN', 'TP190219PCT', 'TP190220-CN', 'TP190220PCT', 'TP190203-CN', 'TP190221PCT', 'TP190223-CN', 'TP190222PCT', 'TP190224-CN', 'TP190223PCT', 'TP190223-US', 'TP190224PCT', 'TP190224-US', 'TP190225-CN', 'TP190225PCT', 'TP190226-CN', 'TP190226PCT', 'TP190227-CN', 'TP190227PCT', 'TP190228-CN', 'TP190228PCT', 'TP190228-US', 'TP190229-CN', 'TP190230-CN', 'TP190185-CN', 'TP190231PCT', 'TP190231-US', 'TP190323-CN', 'TP190233-CN', 'TP190233PCT', 'TP190234-CN', 'TP190234PCT', 'TP190234-US', 'TP190235-CN', 'TP190235PCT', 'TP190236-CN', 'TP190236PCT', 'TP190237-CN', 'TP190237PCT', 'TP190237-US', 'TP190238-CN', 'TP190238PCT', 'TP190239-CN', 'TP190239PCT', 'TP190240-CN', 'TP190240PCT', 'TP190240-US', 'TP190241-CN', 'TP190241PCT', 'TP190241-US', 'TP190242-CN', 'TP190242PCT', 'TP190243-CN', 'TP190243PCT', 'TP190244-CN', 'TP190245-CN', 'TP190245PCT', 'TP190246-CN', 'TP190246PCT', 'TP190246-US', 'TP190247-CN', 'TP190247PCT', 'TP190248-CN', 'TP190248PCT', 'TP190249-CN', 'TP190249PCT', 'TP190250-CN', 'TP190250PCT', 'TP190250-US', 'TP190316-CN', 'TP190252-CN', 'TP190252PCT', 'TP190252-US', 'TP190253-CN', 'TP190255-CN', 'TP190255PCT', 'TP190255-US', 'TP190256-CN', 'TP190256PCT', 'TP190256-US', 'TP190257-CN', 'TP190257PCT', 'TP190257-US', 'TP190258-CN', 'TP190259-CN', 'TP190259PCT', 'TP190259-US', 'TP190260-CN', 'TP190260PCT', 'TP190260-US', 'TP190261-CN', 'TP190261PCT', 'TP190261-US', 'TP190262-CN', 'TP190262PCT', 'TP190262-US', 'TP190263-CN', 'TP190263PCT', 'TP190264-CN', 'TP190264PCT', 'TP190264-US', 'TP190266-CN', 'TP190267-CN', 'TP190268-CN', 'TP190268PCT', 'TP190269-CN', 'TP190270-CN', 'TP190271-CN', 'TP190272-CN', 'TP190272PCT', 'TP190273-CN', 'TP190279-CN', 'TP190279PCT', 'TP190279-US', 'TP190280-CN', 'TP190281-CN', 'TP190281PCT', 'TP190282-CN', 'TP190282PCT', 'TP140797-JP2', 'TP190285-CN', 'TP190285PCT', 'TP190286-CN', 'TP190286PCT', 'TP190286-US', 'TP190287-CN', 'TP161035-JP', 'TP161106-JP', 'TP190290-CN', 'TP190330-CN', 'TP190293-CN', 'TP190294-CN', 'TP190295-CN', 'TP190297-CN', 'TP190300-CN', 'TP190301-CN', 'TP190302-CN', 'TP190304-CN', 'TP190305-CN', 'TP190306-CN', 'TP190307-CN', 'TP190335-CN', 'TP190309-CN', 'TP190310-CN', 'TP190311-CN', 'TP190312-CN', 'TP190314-CN', 'TP190315-CN', 'TP190358-CN', 'TP190317-CN', 'TP190318-CN', 'TP190319-CN', 'TP190320-CN', 'TP190321-CN', 'TP190322-CN', 'TP190175-CN', 'TP190324-CN', 'TP190325-CN', 'TP190326-CN', 'TP190327-CN', 'TP190328-CN', 'TP190329-CN', 'TP190308-CN', 'TP190331-CN', 'TP190332-CN', 'TP190333-CN', 'TP190334-CN', 'TP190291-CN', 'TP190336-CN', 'TP190337-CN', 'TP190338-CN', 'TP190339-CN', 'TP190340-CN', 'TP190341-CN', 'TP190342-CN', 'TP190343-CN', 'TP190345-CN', 'TP190346-CN', 'TP190347-CN', 'TP190348-CN', 'TP190351-CN', 'TP190352-CN', 'TP190353-CN', 'TP190354-CN', 'TP190355-CN', 'TP190356-CN', 'TP190357-CN', 'TP190419-CN', 'TP190359-CN', 'TP190360-CN', 'TP190361-CN', 'TP190362-CN', 'TP190363-CN', 'TP190367-CN', 'TP190367PCT', 'TP190368-CN', 'TP190369-CN', 'TP190369PCT', 'TP190370-CN', 'TP190371-CN', 'TP190372-CN', 'TP190373-CN', 'TP190373PCT', 'TP190374-CN', 'TP190375-CN', 'TP190375PCT', 'TP190376-CN', 'TP190377-CN', 'TP190377PCT', 'TP190378-CN', 'TP190379-CN', 'TP190379PCT', 'TP190380-CN', 'TP161110-JP', 'TP190380-KR', 'TP190380PCT', 'TP190380-US', 'TP190381-CN', 'TP190381PCT', 'TP190382-CN', 'TP190382PCT', 'TP190382-US', 'TP190383-CN', 'TP190383PCT', 'TP190383-US', 'TP190384-CN', 'TP190384PCT', 'TP190385-CN', 'TP190385PCT', 'TP190385-US', 'TP190386-CN', 'TP190386PCT', 'TP190386-US', 'TP190387-CN', 'TP190388-CN', 'TP190389-CN', 'TP190390-CN', 'TP190391-CN', 'TP190391PCT', 'TP190392-CN', 'TP190392PCT', 'TP190393-CN', 'TP190393PCT', 'TP190394-CN', 'TP190394PCT', 'TP190395-CN', 'TP190395PCT', 'TP190396-CN', 'TP190396PCT', 'TP190397-CN', 'TP190397PCT', 'TP190398-CN', 'TP190398PCT', 'TP190399-CN', 'TP190399PCT', 'TP190399-US', 'TP190400-CN', 'TP190401-CN', 'TP190401PCT', 'TP190402-CN', 'TP190403-CN', 'TP190403PCT', 'TP190404-CN', 'TP190404PCT', 'TP190404-US', 'TP190405-CN', 'TP190405PCT', 'TP190406-CN', 'TP190407-CN', 'TP190408-CN', 'TP190413-CN', 'TP190413PCT', 'TP190413-US', 'TP190414-CN', 'TP190415-CN', 'TP190416-CN', 'TP190417-CN', 'TP190418-CN', 'TP190418PCT', 'TP190431-CN', 'TP190419PCT', 'TP190420-CN', 'TP190420PCT', 'TP190420-US', 'TP190421-CN', 'TP190421PCT', 'TP190422-CN', 'TP190422PCT', 'TP190423-CN', 'TP190423PCT', 'TP190426-CN', 'TP190426PCT', 'TP190427-CN', 'TP190427PCT', 'TP190428-CN', 'TP190428PCT', 'TP190429-CN', 'TP190429PCT', 'TP190430-CN', 'TP190430PCT', 'TP190505-CN', 'TP190433-CN', 'TP190433PCT', 'TP190434-CN', 'TP190434PCT', 'TP190435-CN', 'TP190435PCT', 'TP190436-CN', 'TP190437-CN', 'TP190437PCT', 'TP190438-CN', 'TP190438PCT', 'TP190438-US', 'TP190439-CN', 'TP190440-CN', 'TP190441-CN', 'TP190442-CN', 'TP190443-CN', 'TP190444-CN', 'TP190444PCT', 'TP190444-US', 'TP190449-CN', 'TP190449PCT', 'TP190450-CN', 'TP190450PCT', 'TP190454-CN', 'TP190454PCT', 'TP190455-CN', 'TP190455PCT', 'TP190455-US', 'TP190457-CN', 'TP190457PCT', 'TP190457-US', 'TP190458-CN', 'TP190459-CN', 'TP190473-CN', 'TP190473PCT', 'TP190492-CN', 'TP190492PCT', 'TP190493-CN', 'TP190493PCT', 'TP190495-CN', 'TP190495PCT', 'TP190495-US', 'TP190580-CN', 'TP190498-CN', 'TP190498PCT', 'TP190498-US', 'TP190499-CN', 'TP190499PCT', 'TP190499-US', 'TP190500-CN', 'TP190500PCT', 'TP190501-CN', 'TP190501PCT', 'TP190503-CN', 'TP190503PCT', 'TP190512-CN', 'TP190505PCT', 'TP190507-CN', 'TP190507PCT', 'TP190508-CN', 'TP190508PCT', 'TP190508-US', 'TP190526-CN', 'TP190510-CN', 'TP190510PCT', 'TP190512PCT', 'TP190513-CN', 'TP190513PCT', 'TP190513-US', 'TP190514-CN', 'TP190514PCT', 'TP190514-US', 'TP190515-CN', 'TP190515PCT', 'TP190518-CN', 'TP190518PCT', 'TP190519-CN', 'TP190519PCT', 'TP190519-US', 'TP190521-CN', 'TP190521PCT', 'TP190522-CN', 'TP190522PCT', 'TP190522-US', 'TP190523-CN', 'TP190523PCT', 'TP190524-CN', 'TP190524PCT', 'TP190525-CN', 'TP190525PCT', 'TP190535-CN', 'TP190526PCT', 'TP190526-US', 'TP190527-CN', 'TP190527PCT', 'TP190527-US', 'TP190528-CN', 'TP190529-CN', 'TP190530-CN', 'TP190531-CN', 'TP190531PCT', 'TP190532-CN', 'TP190532PCT', 'TP190533-CN', 'TP190533PCT', 'TP190534-CN', 'TP190534PCT', 'TP190534-US', 'TP190536-CN', 'TP190535PCT', 'TP190541-CN', 'TP190536PCT', 'TP190538-CN', 'TP190538PCT', 'TP190613-CN', 'TP190539PCT', 'TP190540-CN', 'TP190540PCT', 'TP190540-US', 'TP190542-CN', 'TP190543-CN', 'TP190544-CN', 'TP190563-CN', 'TP190545-CN', 'TP190545PCT', 'TP190546-CN', 'TP190547-CN', 'TP190547PCT', 'TP190549-CN', 'TP190549PCT', 'TP190550-CN', 'TP190550PCT', 'TP190551-CN', 'TP190551PCT', 'TP190551-US', 'TP190552-CN', 'TP190552PCT', 'TP190553-CN', 'TP190553PCT', 'TP190554-CN', 'TP190554PCT', 'TP190554-US', 'TP190555-CN', 'TP190555PCT', 'TP190555-US', 'TP190556-CN', 'TP190557-CN', 'TP190557PCT', 'TP190558-CN', 'TP190558PCT', 'TP190559-CN', 'TP190559PCT', 'TP190560-CN', 'TP190560PCT', 'TP190560-US', 'TP190564-CN', 'TP190563PCT', 'TP190614-CN', 'TP190564PCT', 'TP190565-CN', 'TP190565PCT', 'TP190566-CN', 'TP190566PCT', 'TP190567-CN', 'TP190567PCT', 'TP190568-CN', 'TP190569-CN', 'TP190570-CN', 'TP190570PCT', 'TP190571-CN', 'TP190571PCT', 'TP190572-CN', 'TP190572PCT', 'TP190573-CN', 'TP190573PCT', 'TP190573-US', 'TP190574-CN', 'TP190575-CN', 'TP190575PCT', 'TP190575-US', 'TP190576-CN', 'TP190577-CN', 'TP190577PCT', 'TP190577-US', 'TP190578-CN', 'TP190578PCT', 'TP190579-CN', 'TP190579PCT', 'TP190606-CN', 'TP190580PCT', 'TP190580-US', 'TP190581-CN', 'TP190581PCT', 'TP190581-US', 'TP190582-CN', 'TP190582PCT', 'TP190583-CN', 'TP190583PCT', 'TP190583-US', 'TP190584-CN', 'TP190585-CN', 'TP190586-CN', 'TP190586PCT', 'TP190587-CN', 'TP190588-CN', 'TP190589-CN', 'TP190589PCT', 'TP190590-CN', 'TP190591-CN', 'TP190592-CN', 'TP190593-CN', 'TP190593PCT', 'TP190593-US', 'TP190594-CN', 'TP190595-CN', 'TP190596-CN', 'TP190597-CN', 'TP190598-CN', 'TP190598PCT', 'TP190599-CN', 'TP190599PCT', 'TP190599-US', 'TP190600-CN', 'TP190600PCT', 'TP190601-CN', 'TP190601PCT', 'TP190601-US', 'TP190602-CN', 'TP190602PCT', 'TP190603-CN', 'TP190603PCT', 'TP190604-CN', 'TP190604PCT', 'TP190605-CN', 'TP190605PCT', 'TP190539-CN', 'TP190606PCT', 'TP190607-CN', 'TP190607PCT', 'TP190608-CN', 'TP190608PCT', 'TP190608-US', 'TP190609-CN', 'TP190609PCT', 'TP190610-CN', 'TP190610PCT', 'TP190611-CN', 'TP190611PCT', 'TP190611-US', 'TP190496-CN', 'TP190613PCT', 'TP190615-CN', 'TP190615PCT', 'TP190615-US', 'TP190616-CN', 'TP190617-CN', 'TP190618-CN', 'TP190619-CN', 'TP190619PCT', 'TP190620-CN', 'TP190621-CN', 'TP190621PCT', 'TP190623-CN', 'TP190624-CN', 'TP190625-CN', 'TP190625PCT', 'TP190626-CN', 'TP190626PCT', 'TP190627-CN', 'TP190627PCT', 'TP190627-US', 'TP190772-CN', 'TP190793-CN', 'TP190695-CN', 'TP190694-CN', 'TP190694PCT', 'TP190694-US', 'TP190710-CN', 'TP190696-CN', 'TP190697-CN', 'TP190697PCT', 'TP190697-US', 'TP190698-CN', 'TP190698PCT', 'TP190698-US', 'TP190699-CN', 'TP190699PCT', 'TP190700-CN', 'TP190700PCT', 'TP190693-CN', 'TP161113-JP', 'TP190711-CN', 'TP161140-JP', 'TP190703-CN', 'TP190703PCT', 'TP190704-CN', 'TP190704PCT', 'TP190704-US', 'TP190705-CN', 'TP190705PCT', 'TP190705-US', 'TP190706-CN', 'TP190706PCT', 'TP190707-CN', 'TP190707PCT', 'TP190707-US', 'TP190708-CN', 'TP190708PCT', 'TP190709-CN', 'TP190709PCT', 'TP190709-US', 'TP190790-CN', 'TP190710PCT', 'TP190710-US', 'TP190711PCT', 'TP190712-CN', 'TP190712PCT', 'TP190712-US', 'TP190713-CN', 'TP190713PCT', 'TP190713-US', 'TP190714-CN', 'TP190714PCT', 'TP190715-CN', 'TP190716-CN', 'TP190716PCT', 'TP190716-US', 'TP190717-CN', 'TP190718-CN', 'TP190718PCT', 'TP190719-CN', 'TP190719PCT', 'TP190719-US', 'TP190720-CN', 'TP190721-CN', 'TP190721PCT', 'TP190721-US', 'TP190722-CN', 'TP190722PCT', 'TP190722-US', 'TP190723-CN', 'TP190723PCT', 'TP190724-CN', 'TP190724PCT', 'TP190724-US', 'TP190725PCT', 'TP190725-US', 'TP190726-CN', 'TP190726PCT', 'TP190727-CN', 'TP190727PCT', 'TP190728-CN', 'TP190728PCT', 'TP190728-US', 'TP190729-CN', 'TP190729PCT', 'TP190730-CN', 'TP190730PCT', 'TP190730-US', 'TP190731-CN', 'TP190731PCT', 'TP190733-CN', 'TP190734-CN', 'TP190735-CN', 'TP190735PCT', 'TP190735-US', 'TP190736-CN', 'TP190736PCT', 'TP190737-CN', 'TP190738-CN', 'TP190738PCT', 'TP190740-CN', 'TP190740PCT', 'TP190740-US', 'TP190741-CN', 'TP190742-CN', 'TP190745-CN', 'TP190746-CN', 'TP190746PCT', 'TP190747-CN', 'TP190747PCT', 'TP190747-US', 'TP190748-CN', 'TP190748PCT', 'TP190749-CN', 'TP190749PCT', 'TP190749-US', 'TP190750-CN', 'TP190751-CN', 'TP190751PCT', 'TP190751-US', 'TP190752-CN', 'TP190752PCT', 'TP190752-US', 'TP190753-CN', 'TP190753PCT', 'TP190754-CN', 'TP190754PCT', 'TP190754-US', 'TP190755-CN', 'TP190755PCT', 'TP190756-CN', 'TP190756PCT', 'TP190757-CN', 'TP190757PCT', 'TP190757-US', 'TP190758-CN', 'TP190759-CN', 'TP190759PCT', 'TP190759-US', 'TP190760-CN', 'TP190760PCT', 'TP190760-US', 'TP190761PCT', 'TP190761-US', 'TP190762-CN', 'TP190762PCT', 'TP190764-CN', 'TP190765-CN', 'TP190765PCT', 'TP190789-CN', 'TP190767-CN', 'TP190767PCT', 'TP190768-CN', 'TP190768PCT', 'TP190769-CN', 'TP190770-CN', 'TP190771-CN', 'TP190836-CN', 'TP190773-CN', 'TP190774-CN', 'TP190774PCT', 'TP190775-CN', 'TP190775PCT', 'TP190776-CN', 'TP190776PCT', 'TP190777-CN', 'TP190777PCT', 'TP190778-CN', 'TP190778PCT', 'TP190778-US', 'TP190779-CN', 'TP190779PCT', 'TP190779-US', 'TP190780-CN', 'TP190781-CN', 'TP190781PCT', 'TP190781-US', 'TP190782-CN', 'TP190782PCT', 'TP190782-US', 'TP190783-CN', 'TP190783PCT', 'TP190784-CN', 'TP190784PCT', 'TP190837-CN', 'TP161143-JP', 'TP190788-CN', 'TP190788PCT', 'TP190788-US', 'TP190725-CN', 'TP190789PCT', 'TP190761-CN', 'TP190790PCT', 'TP190791-CN', 'TP190791PCT', 'TP190792-CN', 'TP190792PCT', 'TP190792-US', 'TP190807-CN', 'TP190794-CN', 'TP190794PCT', 'TP190795-CN', 'TP190795PCT', 'TP190796-CN', 'TP190796PCT', 'TP190808-CN', 'TP190797PCT', 'TP190797-US', 'TP190798-CN', 'TP190798PCT', 'TP190800-CN', 'TP190805-CN', 'TP190805PCT', 'TP190805-US', 'TP190806-CN', 'TP190806PCT', 'TP190101-CN', 'TP190807PCT', 'TP190797-CN', 'TP190808PCT', 'TP190812-CN', 'TP190812PCT', 'TP190813-CN', 'TP190813PCT', 'TP190814-CN', 'TP190814PCT', 'TP190815-CN', 'TP190815PCT', 'TP190815-US', 'TP190816-CN', 'TP190816PCT', 'TP190816-US', 'TP190817-CN', 'TP190817PCT', 'TP190818-CN', 'TP190818PCT', 'TP190819-CN', 'TP190819PCT', 'TP190819-US', 'TP190820-CN', 'TP190820PCT', 'TP190820-US', 'TP190821-CN', 'TP190821PCT', 'TP190822-CN', 'TP190822PCT', 'TP190823-CN', 'TP190823PCT', 'TP190824-CN', 'TP190824PCT', 'TP190825-CN', 'TP190825PCT', 'TP190826-CN', 'TP190826PCT', 'TP190827-CN', 'TP190827PCT', 'TP190827-US', 'TP190828-CN', 'TP190828PCT', 'TP190828-US', 'TP190829-CN', 'TP190829PCT', 'TP190829-US', 'TP190830-CN', 'TP190830PCT', 'TP190830-US', 'TP190831-CN', 'TP190832-CN', 'TP190799-CN', 'TP190834PCT', 'TP190835-CN', 'TP190834-CN', 'TP190836PCT', 'TP190836-US', 'TP190766-CN', 'TP190837PCT', 'TP190837-US', 'TP170732-US2', 'TP190847-CN', 'TP190847PCT', 'TP190848-CN', 'TP190848PCT', 'TP190849-CN', 'TP190849PCT', 'TP190850-CN', 'TP190850PCT', 'TP190851-CN', 'TP190851PCT', 'TP190852-CN', 'TP190852PCT', 'TP190853-CN', 'TP190853PCT', 'TP190854-CN', 'TP190854PCT', 'TP190855-CN', 'TP190855PCT', 'TP190856-CN', 'TP190856PCT', 'TP190857-CN', 'TP190857PCT', 'TP190858-CN', 'TP190858PCT', 'TP190859-CN', 'TP190859PCT', 'TP190860-CN', 'TP190860PCT', 'TP190929-CN', 'TP190929PCT', 'TP190962-CN', 'TP190963-CN', 'TP190963PCT', 'TP190963-US', 'TP190964-CN', 'TP190964PCT', 'TP190964-US', 'TP190965-CN', 'TP190965PCT', 'TP190966-CN', 'TP190966PCT', 'TP190967-CN', 'TP190967PCT', 'TP190969-CN', 'TP190969PCT', 'TP190969-US', 'TP190970-CN', 'TP190970PCT', 'TP190972-CN', 'TP190973-CN', 'TP190973PCT', 'TP190974-CN', 'TP190974PCT', 'TP190974-US', 'TP190975-CN', 'TP190975PCT', 'TP190976-CN', 'TP190976PCT', 'TP190977-CN', 'TP190977PCT', 'TP190978-CN', 'TP190979-CN', 'TP190979PCT', 'TP190979-US', 'TP190980-CN', 'TP190980PCT', 'TP190980-US', 'TP190981-CN', 'TP190981PCT', 'TP190982-CN', 'TP190982PCT', 'TP190983-CN', 'TP190983PCT', 'TP190983-US', 'TP190984-CN', 'TP190984PCT', 'TP190985-CN', 'TP190985PCT', 'TP190986-CN', 'TP190986PCT', 'TP190986-US', 'TP190987-CN', 'TP190987PCT', 'TP190987-US', 'TP190988-CN', 'TP190988PCT', 'TP190988-US', 'TP190989-CN', 'TP190990-CN', 'TP190990PCT', 'TP190991-CN', 'TP190992-CN', 'TP190992PCT', 'TP190992-US', 'TP190994-CN', 'TP190995-CN', 'TP190995PCT', 'TP190995-US', 'TP190996-CN', 'TP190997-CN', 'TP190997PCT', 'TP190997-US', 'TP190998-CN', 'TP190999-CN', 'TP190999PCT', 'TP190999-US', 'TP191000-CN', 'TP191000PCT', 'TP191001-CN', 'TP191002-CN', 'TP191002PCT', 'TP191003-CN', 'TP191004-CN', 'TP191004PCT', 'TP191006-CN', 'TP191006PCT', 'TP191007-CN', 'TP191007PCT', 'TP191008-CN', 'TP191008PCT', 'TP191008-US', 'TP191009-CN', 'TP191009PCT', 'TP191010-CN', 'TP191010PCT', 'TP191011-CN', 'TP191011PCT', 'TP191011-US', 'TP191012-CN', 'TP191012PCT', 'TP191013-CN', 'TP191013PCT', 'TP191013-US', 'TP191014-CN', 'TP191014PCT', 'TP191015-CN', 'TP191015PCT', 'TP191016-CN', 'TP191016PCT', 'TP191016-US', 'TP191017-CN', 'TP191017PCT', 'TP191018-CN', 'TP191018PCT', 'TP191018-US', 'TP191019-CN', 'TP191019PCT', 'TP191020-CN', 'TP191020PCT', 'TP191020-US', 'TP191022-CN', 'TP191022PCT', 'TP191023-CN', 'TP191023PCT', 'TP191024-CN', 'TP191024PCT', 'TP191024-US', 'TP191025-CN', 'TP191025PCT', 'TP191025-US', 'TP191026-CN', 'TP191026PCT', 'TP191026-US', 'TP191028-CN', 'TP191028PCT', 'TP191030-CN', 'TP191031-CN', 'TP191031PCT', 'TP191031-US', 'TP191032-CN', 'TP191032PCT', 'TP191033-CN', 'TP191033PCT', 'TP191034-CN', 'TP191034PCT', 'TP191034-US', 'TP191035-CN', 'TP191037-CN', 'TP191037PCT', 'TP191037-US', 'TP191038-CN', 'TP191038PCT', 'TP191039-CN', 'TP191039PCT', 'TP191040-CN', 'TP191040PCT', 'TP191040-US', 'TP191041-CN', 'TP191041PCT', 'TP191042-CN', 'TP191042PCT', 'TP191044-CN', 'TP191044PCT', 'TP191045-CN', 'TP191045PCT', 'TP191045-US', 'TP191046-CN', 'TP191046PCT', 'TP191047-CN', 'TP191047PCT', 'TP191048-CN', 'TP191048PCT', 'TP191048-US', 'TP191049-CN', 'TP191049PCT', 'TP191049-US', 'TP191050-CN', 'TP191050PCT', 'TP191050-US', 'TP191051-CN', 'TP191051PCT', 'TP191052-CN', 'TP191052PCT', 'TP191052-US', 'TP191053-CN', 'TP191053PCT', 'TP191055-CN', 'TP191055PCT', 'TP191055-US', 'TP191056-CN', 'TP191056PCT', 'TP191056-US', 'TP191057-CN', 'TP191057PCT', 'TP191057-US', 'TP191058-CN', 'TP191058PCT', 'TP191058-US', 'TP191060-CN', 'TP191060PCT', 'TP191060-US', 'TP191061-CN', 'TP191061PCT', 'TP191061-US', 'TP191062-CN', 'TP191062PCT', 'TP191063-CN', 'TP191063PCT', 'TP191064-CN', 'TP191064PCT', 'TP191064-US', 'TP191066-CN', 'TP191066PCT', 'TP191067-CN', 'TP191067PCT', 'TP191068-CN', 'TP191068PCT', 'TP191069-CN', 'TP191069PCT', 'TP191069-US', 'TP191070-CN', 'TP191071-CN', 'TP191071PCT', 'TP191071-US', 'TP191072-CN', 'TP191073-CN', 'TP191073PCT', 'TP191073-US', 'TP191074-CN', 'TP191075-CN', 'TP191076-CN', 'TP191076PCT', 'TP191078-CN', 'TP191078PCT', 'TP191078-US', 'TP191079-CN', 'TP191080-CN', 'TP191081-CN', 'TP191082-CN', 'TP191082PCT', 'TP191083-CN', 'TP191084-CN', 'TP191084PCT', 'TP191084-US', 'TP191085-CN', 'TP191085PCT', 'TP191086-CN', 'TP191086PCT', 'TP191087-CN', 'TP191089-CN', 'TP191089PCT', 'TP191089-US', 'TP191090-CN', 'TP191090PCT', 'TP191090-US', 'TP191091-CN', 'TP191091PCT', 'TP191091-US', 'TP191092-CN', 'TP191092PCT', 'TP191092-US', 'TP191093-CN', 'TP191093PCT', 'TP191093-US', 'TP191094-CN', 'TP191094PCT', 'TP191094-US', 'TP191095-CN', 'TP191095PCT', 'TP191095-US', 'TP191096-CN', 'TP191096PCT', 'TP191096-US', 'TP191097-CN', 'TP191097PCT', 'TP191097-US', 'TP191098-CN', 'TP191098PCT', 'TP191099-CN', 'TP191100-CN', 'TP191100PCT', 'TP191100-US', 'TP191101-CN', 'TP191101PCT', 'TP191101-US', 'TP191102-CN', 'TP191103-CN', 'TP191103PCT', 'TP191103-US', 'TP191104-CN', 'TP191104PCT', 'TP191104-US', 'TP191105-CN', 'TP191105PCT', 'TP191108-CN', 'TP191108PCT', 'TP191109-CN', 'TP191109PCT', 'TP191109-US', 'TP191110-CN', 'TP191110PCT', 'TP191111-CN', 'TP191111PCT', 'TP191112-CN', 'TP191112PCT', 'TP191113-CN', 'TP191113PCT', 'TP191114-CN', 'TP191114PCT', 'TP191115-CN', 'TP191115PCT', 'TP191115-US', 'TP191116-CN', 'TP191116PCT', 'TP191116-US', 'TP191117-CN', 'TP191117PCT', 'TP191117-US', 'TP191118-CN', 'TP191118PCT', 'TP191119-CN', 'TP191119PCT', 'TP191119-US', 'TP191120-CN', 'TP191120PCT', 'TP191120-US', 'TP191121-CN', 'TP191121PCT', 'TP191121-US', 'TP191122-CN', 'TP191122PCT', 'TP191123-CN', 'TP191123PCT', 'TP191124-CN', 'TP191124PCT', 'TP191124-US', 'TP191125-CN', 'TP191125PCT', 'TP202215-CN', 'TP202230-CN', 'TP202232-CN', 'TP202234-CN', 'TP202235-CN', 'TP202238-CN', 'TP202239-CN', 'TP202240-CN', 'TP202243-CN', 'TP202247-CN', 'TP202253-CN', 'TP202265-CN', 'TP202269-CN', 'TP202271-CN', 'TP202275-CN', 'TP202278-CN', 'TP202279-CN', 'TP202286-CN', 'TP202291-CN', 'TP202309-CN', 'TP202320-CN', 'TP202324-CN', 'TP202365-CN', 'TP202376-CN', 'TP202378-CN', 'TP202383-CN', 'TP202385-CN', 'TP202399-CN', 'TP202403-CN', 'TP202407-CN', 'TP202427-CN', 'TP202429-CN', 'TP202432-CN', 'TP202433-CN', 'TP202444-CN', 'TP202449-CN', 'TP202452-CN', 'TP201817-CN', 'TP202180-CN', 'TP202188-CN', 'TP202200-CN', 'TP202212-CN', 'TP202213-CN', 'TP202252-CN', 'TP202266-CN', 'TP202276-CN', 'TP202284-CN', 'TP202285-CN', 'TP202299-CN', 'TP202302-CN', 'TP202392-CN', 'TP202435-CN', 'TP202437-CN', 'TP202448-CN', 'TP202450-CN', 'TP202523-CN', 'TP202524-CN', 'TP202525-CN', 'TP202526-CN', 'TP202527-CN', 'TP202528-CN', 'TP202529-CN', 'TP202530-CN', 'TP202531-CN', 'TP202532-CN', 'TP202533-CN', 'TP202534-CN', 'TP202535-CN')
) pc
left join p_proc_pic_list ppl on ppl.obj_id=pc.case_id
left join evw_Employee ui on ui.user_id=ppl.pic_id
left join p_agency_list al on al.is_enabled=1 and al.obj_id=pc.case_id
left join c_agency ca on ca.agency_id=al.agency_id
left join evw_qresult_caselevel eqc ON eqc.case_id = pc.case_id
--old
select distinct pc.case_id as attr_caseID,
'CaseNo' as class_33,
pc.case_volume as attr_caseNo,
pc.case_volume as CaseNo,
'asst_office_case_no' as class_34,
asst_office_case_no,
isnull(ui.cn_name,'') as AssignedTo,
isnull(ui.Emp_DS,'') as 所別,
isnull(ui.Emp_DeptName,'') as 部門,
isnull(ui.Emp_Item,'') as 部別,
ca.agency_name_cn as Agency,
(select max(legal_due_date) from p_proc_info pi where pi.case_id=pc.case_id) as LegalDueDate_latest,
STUFF(ISNULL((SELECT ',' + contact_name FROM evw_p_contact_list WHERE obj_id = pc.case_id AND contact_is_enabled = 1 FOR XML PATH('')),'' ), 1, 1, '') as contact_name,
CaseLevelDesc as CaseLevelDesc
from (select left(pci0.case_volume,CHARINDEX('-',pci0.case_volume)-1) as case_volume0,
pci0.*
from evw_p_case_info pci0
left join p_agency_list al ON al.is_enabled = 1 AND al.obj_id = pci0.case_id
left join c_agency ca ON ca.agency_id = al.agency_id
LEFT JOIN evw_p_case_pic_list ppl ON ppl.obj_id = pci0.case_id
where pci0.case_volume in ('TP190062-CN', 'TP190062PCT', 'TP190062-US', 'TP190063-CN', 'TP190064-CN', 'TP190065-CN', 'TP190066-CN', 'TP190068-CN', 'TP190069-CN', 'TP190070-CN', 'TP190071-CN', 'TP190072-CN', 'TP190073-CN', 'TP190074-CN', 'TP190075-CN', 'TP190076-CN', 'TP190077-CN', 'TP190078-CN', 'TP190079-CN', 'TP190079PCT', 'TP190079-US', 'TP190080-CN', 'TP190081-CN', 'TP190082-CN', 'TP190082PCT', 'TP190082-US', 'TP190083-CN', 'TP190084-CN', 'TP190085-CN', 'TP190085PCT', 'TP190086-CN', 'TP190087-CN', 'TP190088-CN', 'TP190088PCT', 'TP190088-US', 'TP190089-CN', 'TP190090-CN', 'TP190090PCT', 'TP190090-US', 'TP190091-CN', 'TP190091PCT', 'TP190091-US', 'TP190092-CN', 'TP190093-CN', 'TP190094-CN', 'TP190095-CN', 'TP190096-CN', 'TP190096PCT', 'TP190096-US', 'TP190097-CN', 'TP190098-CN', 'TP190099-CN', 'TP190100-CN', 'TP190190-CN', 'TP190102-CN', 'TP190103-CN', 'TP190103PCT', 'TP190104-CN', 'TP190104PCT', 'TP190104-US', 'TP190105-CN', 'TP190105PCT', 'TP190105-US', 'TP190107-CN', 'TP190108-CN', 'TP190108PCT', 'TP190221-CN', 'TP190110-CN', 'TP190110PCT', 'TP190111-CN', 'TP190112-CN', 'TP190112PCT', 'TP190113-CN', 'TP190114-CN', 'TP190114PCT', 'TP190114-US', 'TP190115-CN', 'TP190116-CN', 'TP190117-CN', 'TP190118-CN', 'TP190118PCT', 'TP190118-US', 'TP190119-CN', 'TP190120-CN', 'TP190120PCT', 'TP190120-US', 'TP190121-CN', 'TP190122-CN', 'TP190123-CN', 'TP190124-CN', 'TP190125-CN', 'TP190126-CN', 'TP190127-CN', 'TP190128-CN', 'TP190129-CN', 'TP190130-CN', 'TP190131-CN', 'TP190131PCT', 'TP190132-CN', 'TP190132PCT', 'TP190132-US', 'TP190133-CN', 'TP190133PCT', 'TP190133-US', 'TP190134-CN', 'TP190135-CN', 'TP190135PCT', 'TP190136-CN', 'TP190137-CN', 'TP190138-CN', 'TP190139-CN', 'TP190139PCT', 'TP190139-US', 'TP190140-CN', 'TP190141-CN', 'TP190142-CN', 'TP190143-CN', 'TP190143PCT', 'TP190144-CN', 'TP190144PCT', 'TP190145-CN', 'TP190146-CN', 'TP190147-CN', 'TP190148-CN', 'TP190149-CN', 'TP190150-CN', 'TP190150PCT', 'TP190151-CN', 'TP190152-CN', 'TP190174-CN', 'TP190174PCT', 'TP190182-CN', 'TP190109-CN', 'TP190177-CN', 'TP190177PCT', 'TP190177-US', 'TP190178-CN', 'TP190179-CN', 'TP190179PCT', 'TP190180-CN', 'TP190180PCT', 'TP190180-US', 'TP190181-CN', 'TP190186-CN', 'TP190176-CN', 'TP190185PCT', 'TP190222-CN', 'TP190187-CN', 'TP190187PCT', 'TP190188-CN', 'TP190188PCT', 'TP190189-CN', 'TP190189PCT', 'TP190189-US', 'TP190190PCT', 'TP190191-CN', 'TP190192-CN', 'TP190192PCT', 'TP190193-CN', 'TP190193PCT', 'TP190194-CN', 'TP190194PCT', 'TP190195-CN', 'TP190195PCT', 'TP190196-CN', 'TP190196PCT', 'TP190196-US', 'TP190197-CN', 'TP190198-CN', 'TP190199-CN', 'TP190199PCT', 'TP190200-CN', 'TP190200PCT', 'TP190200-US', 'TP190201-CN', 'TP190201PCT', 'TP190201-US', 'TP190202-CN', 'TP190202PCT', 'TP190202-US', 'TP190231-CN', 'TP190203PCT', 'TP190203-US', 'TP190204-CN', 'TP190205-CN', 'TP190205PCT', 'TP190205-US', 'TP190206-CN', 'TP190206PCT', 'TP190206-US', 'TP190207-CN', 'TP190207PCT', 'TP190208-CN', 'TP190208PCT', 'TP190208-US', 'TP190209-CN', 'TP190210-CN', 'TP190210PCT', 'TP190210-US', 'TP190211-CN', 'TP190211PCT', 'TP190211-US', 'TP190212-CN', 'TP190213-CN', 'TP190213PCT', 'TP190214-CN', 'TP190215-CN', 'TP190215PCT', 'TP190216-CN', 'TP190217-CN', 'TP190217PCT', 'TP190218-CN', 'TP190218PCT', 'TP190219-CN', 'TP190219PCT', 'TP190220-CN', 'TP190220PCT', 'TP190203-CN', 'TP190221PCT', 'TP190223-CN', 'TP190222PCT', 'TP190224-CN', 'TP190223PCT', 'TP190223-US', 'TP190224PCT', 'TP190224-US', 'TP190225-CN', 'TP190225PCT', 'TP190226-CN', 'TP190226PCT', 'TP190227-CN', 'TP190227PCT', 'TP190228-CN', 'TP190228PCT', 'TP190228-US', 'TP190229-CN', 'TP190230-CN', 'TP190185-CN', 'TP190231PCT', 'TP190231-US', 'TP190323-CN', 'TP190233-CN', 'TP190233PCT', 'TP190234-CN', 'TP190234PCT', 'TP190234-US', 'TP190235-CN', 'TP190235PCT', 'TP190236-CN', 'TP190236PCT', 'TP190237-CN', 'TP190237PCT', 'TP190237-US', 'TP190238-CN', 'TP190238PCT', 'TP190239-CN', 'TP190239PCT', 'TP190240-CN', 'TP190240PCT', 'TP190240-US', 'TP190241-CN', 'TP190241PCT', 'TP190241-US', 'TP190242-CN', 'TP190242PCT', 'TP190243-CN', 'TP190243PCT', 'TP190244-CN', 'TP190245-CN', 'TP190245PCT', 'TP190246-CN', 'TP190246PCT', 'TP190246-US', 'TP190247-CN', 'TP190247PCT', 'TP190248-CN', 'TP190248PCT', 'TP190249-CN', 'TP190249PCT', 'TP190250-CN', 'TP190250PCT', 'TP190250-US', 'TP190316-CN', 'TP190252-CN', 'TP190252PCT', 'TP190252-US', 'TP190253-CN', 'TP190255-CN', 'TP190255PCT', 'TP190255-US', 'TP190256-CN', 'TP190256PCT', 'TP190256-US', 'TP190257-CN', 'TP190257PCT', 'TP190257-US', 'TP190258-CN', 'TP190259-CN', 'TP190259PCT', 'TP190259-US', 'TP190260-CN', 'TP190260PCT', 'TP190260-US', 'TP190261-CN', 'TP190261PCT', 'TP190261-US', 'TP190262-CN', 'TP190262PCT', 'TP190262-US', 'TP190263-CN', 'TP190263PCT', 'TP190264-CN', 'TP190264PCT', 'TP190264-US', 'TP190266-CN', 'TP190267-CN', 'TP190268-CN', 'TP190268PCT', 'TP190269-CN', 'TP190270-CN', 'TP190271-CN', 'TP190272-CN', 'TP190272PCT', 'TP190273-CN', 'TP190279-CN', 'TP190279PCT', 'TP190279-US', 'TP190280-CN', 'TP190281-CN', 'TP190281PCT', 'TP190282-CN', 'TP190282PCT', 'TP140797-JP2', 'TP190285-CN', 'TP190285PCT', 'TP190286-CN', 'TP190286PCT', 'TP190286-US', 'TP190287-CN', 'TP161035-JP', 'TP161106-JP', 'TP190290-CN', 'TP190330-CN', 'TP190293-CN', 'TP190294-CN', 'TP190295-CN', 'TP190297-CN', 'TP190300-CN', 'TP190301-CN', 'TP190302-CN', 'TP190304-CN', 'TP190305-CN', 'TP190306-CN', 'TP190307-CN', 'TP190335-CN', 'TP190309-CN', 'TP190310-CN', 'TP190311-CN', 'TP190312-CN', 'TP190314-CN', 'TP190315-CN', 'TP190358-CN', 'TP190317-CN', 'TP190318-CN', 'TP190319-CN', 'TP190320-CN', 'TP190321-CN', 'TP190322-CN', 'TP190175-CN', 'TP190324-CN', 'TP190325-CN', 'TP190326-CN', 'TP190327-CN', 'TP190328-CN', 'TP190329-CN', 'TP190308-CN', 'TP190331-CN', 'TP190332-CN', 'TP190333-CN', 'TP190334-CN', 'TP190291-CN', 'TP190336-CN', 'TP190337-CN', 'TP190338-CN', 'TP190339-CN', 'TP190340-CN', 'TP190341-CN', 'TP190342-CN', 'TP190343-CN', 'TP190345-CN', 'TP190346-CN', 'TP190347-CN', 'TP190348-CN', 'TP190351-CN', 'TP190352-CN', 'TP190353-CN', 'TP190354-CN', 'TP190355-CN', 'TP190356-CN', 'TP190357-CN', 'TP190419-CN', 'TP190359-CN', 'TP190360-CN', 'TP190361-CN', 'TP190362-CN', 'TP190363-CN', 'TP190367-CN', 'TP190367PCT', 'TP190368-CN', 'TP190369-CN', 'TP190369PCT', 'TP190370-CN', 'TP190371-CN', 'TP190372-CN', 'TP190373-CN', 'TP190373PCT', 'TP190374-CN', 'TP190375-CN', 'TP190375PCT', 'TP190376-CN', 'TP190377-CN', 'TP190377PCT', 'TP190378-CN', 'TP190379-CN', 'TP190379PCT', 'TP190380-CN', 'TP161110-JP', 'TP190380-KR', 'TP190380PCT', 'TP190380-US', 'TP190381-CN', 'TP190381PCT', 'TP190382-CN', 'TP190382PCT', 'TP190382-US', 'TP190383-CN', 'TP190383PCT', 'TP190383-US', 'TP190384-CN', 'TP190384PCT', 'TP190385-CN', 'TP190385PCT', 'TP190385-US', 'TP190386-CN', 'TP190386PCT', 'TP190386-US', 'TP190387-CN', 'TP190388-CN', 'TP190389-CN', 'TP190390-CN', 'TP190391-CN', 'TP190391PCT', 'TP190392-CN', 'TP190392PCT', 'TP190393-CN', 'TP190393PCT', 'TP190394-CN', 'TP190394PCT', 'TP190395-CN', 'TP190395PCT', 'TP190396-CN', 'TP190396PCT', 'TP190397-CN', 'TP190397PCT', 'TP190398-CN', 'TP190398PCT', 'TP190399-CN', 'TP190399PCT', 'TP190399-US', 'TP190400-CN', 'TP190401-CN', 'TP190401PCT', 'TP190402-CN', 'TP190403-CN', 'TP190403PCT', 'TP190404-CN', 'TP190404PCT', 'TP190404-US', 'TP190405-CN', 'TP190405PCT', 'TP190406-CN', 'TP190407-CN', 'TP190408-CN', 'TP190413-CN', 'TP190413PCT', 'TP190413-US', 'TP190414-CN', 'TP190415-CN', 'TP190416-CN', 'TP190417-CN', 'TP190418-CN', 'TP190418PCT', 'TP190431-CN', 'TP190419PCT', 'TP190420-CN', 'TP190420PCT', 'TP190420-US', 'TP190421-CN', 'TP190421PCT', 'TP190422-CN', 'TP190422PCT', 'TP190423-CN', 'TP190423PCT', 'TP190426-CN', 'TP190426PCT', 'TP190427-CN', 'TP190427PCT', 'TP190428-CN', 'TP190428PCT', 'TP190429-CN', 'TP190429PCT', 'TP190430-CN', 'TP190430PCT', 'TP190505-CN', 'TP190433-CN', 'TP190433PCT', 'TP190434-CN', 'TP190434PCT', 'TP190435-CN', 'TP190435PCT', 'TP190436-CN', 'TP190437-CN', 'TP190437PCT', 'TP190438-CN', 'TP190438PCT', 'TP190438-US', 'TP190439-CN', 'TP190440-CN', 'TP190441-CN', 'TP190442-CN', 'TP190443-CN', 'TP190444-CN', 'TP190444PCT', 'TP190444-US', 'TP190449-CN', 'TP190449PCT', 'TP190450-CN', 'TP190450PCT', 'TP190454-CN', 'TP190454PCT', 'TP190455-CN', 'TP190455PCT', 'TP190455-US', 'TP190457-CN', 'TP190457PCT', 'TP190457-US', 'TP190458-CN', 'TP190459-CN', 'TP190473-CN', 'TP190473PCT', 'TP190492-CN', 'TP190492PCT', 'TP190493-CN', 'TP190493PCT', 'TP190495-CN', 'TP190495PCT', 'TP190495-US', 'TP190580-CN', 'TP190498-CN', 'TP190498PCT', 'TP190498-US', 'TP190499-CN', 'TP190499PCT', 'TP190499-US', 'TP190500-CN', 'TP190500PCT', 'TP190501-CN', 'TP190501PCT', 'TP190503-CN', 'TP190503PCT', 'TP190512-CN', 'TP190505PCT', 'TP190507-CN', 'TP190507PCT', 'TP190508-CN', 'TP190508PCT', 'TP190508-US', 'TP190526-CN', 'TP190510-CN', 'TP190510PCT', 'TP190512PCT', 'TP190513-CN', 'TP190513PCT', 'TP190513-US', 'TP190514-CN', 'TP190514PCT', 'TP190514-US', 'TP190515-CN', 'TP190515PCT', 'TP190518-CN', 'TP190518PCT', 'TP190519-CN', 'TP190519PCT', 'TP190519-US', 'TP190521-CN', 'TP190521PCT', 'TP190522-CN', 'TP190522PCT', 'TP190522-US', 'TP190523-CN', 'TP190523PCT', 'TP190524-CN', 'TP190524PCT', 'TP190525-CN', 'TP190525PCT', 'TP190535-CN', 'TP190526PCT', 'TP190526-US', 'TP190527-CN', 'TP190527PCT', 'TP190527-US', 'TP190528-CN', 'TP190529-CN', 'TP190530-CN', 'TP190531-CN', 'TP190531PCT', 'TP190532-CN', 'TP190532PCT', 'TP190533-CN', 'TP190533PCT', 'TP190534-CN', 'TP190534PCT', 'TP190534-US', 'TP190536-CN', 'TP190535PCT', 'TP190541-CN', 'TP190536PCT', 'TP190538-CN', 'TP190538PCT', 'TP190613-CN', 'TP190539PCT', 'TP190540-CN', 'TP190540PCT', 'TP190540-US', 'TP190542-CN', 'TP190543-CN', 'TP190544-CN', 'TP190563-CN', 'TP190545-CN', 'TP190545PCT', 'TP190546-CN', 'TP190547-CN', 'TP190547PCT', 'TP190549-CN', 'TP190549PCT', 'TP190550-CN', 'TP190550PCT', 'TP190551-CN', 'TP190551PCT', 'TP190551-US', 'TP190552-CN', 'TP190552PCT', 'TP190553-CN', 'TP190553PCT', 'TP190554-CN', 'TP190554PCT', 'TP190554-US', 'TP190555-CN', 'TP190555PCT', 'TP190555-US', 'TP190556-CN', 'TP190557-CN', 'TP190557PCT', 'TP190558-CN', 'TP190558PCT', 'TP190559-CN', 'TP190559PCT', 'TP190560-CN', 'TP190560PCT', 'TP190560-US', 'TP190564-CN', 'TP190563PCT', 'TP190614-CN', 'TP190564PCT', 'TP190565-CN', 'TP190565PCT', 'TP190566-CN', 'TP190566PCT', 'TP190567-CN', 'TP190567PCT', 'TP190568-CN', 'TP190569-CN', 'TP190570-CN', 'TP190570PCT', 'TP190571-CN', 'TP190571PCT', 'TP190572-CN', 'TP190572PCT', 'TP190573-CN', 'TP190573PCT', 'TP190573-US', 'TP190574-CN', 'TP190575-CN', 'TP190575PCT', 'TP190575-US', 'TP190576-CN', 'TP190577-CN', 'TP190577PCT', 'TP190577-US', 'TP190578-CN', 'TP190578PCT', 'TP190579-CN', 'TP190579PCT', 'TP190606-CN', 'TP190580PCT', 'TP190580-US', 'TP190581-CN', 'TP190581PCT', 'TP190581-US', 'TP190582-CN', 'TP190582PCT', 'TP190583-CN', 'TP190583PCT', 'TP190583-US', 'TP190584-CN', 'TP190585-CN', 'TP190586-CN', 'TP190586PCT', 'TP190587-CN', 'TP190588-CN', 'TP190589-CN', 'TP190589PCT', 'TP190590-CN', 'TP190591-CN', 'TP190592-CN', 'TP190593-CN', 'TP190593PCT', 'TP190593-US', 'TP190594-CN', 'TP190595-CN', 'TP190596-CN', 'TP190597-CN', 'TP190598-CN', 'TP190598PCT', 'TP190599-CN', 'TP190599PCT', 'TP190599-US', 'TP190600-CN', 'TP190600PCT', 'TP190601-CN', 'TP190601PCT', 'TP190601-US', 'TP190602-CN', 'TP190602PCT', 'TP190603-CN', 'TP190603PCT', 'TP190604-CN', 'TP190604PCT', 'TP190605-CN', 'TP190605PCT', 'TP190539-CN', 'TP190606PCT', 'TP190607-CN', 'TP190607PCT', 'TP190608-CN', 'TP190608PCT', 'TP190608-US', 'TP190609-CN', 'TP190609PCT', 'TP190610-CN', 'TP190610PCT', 'TP190611-CN', 'TP190611PCT', 'TP190611-US', 'TP190496-CN', 'TP190613PCT', 'TP190615-CN', 'TP190615PCT', 'TP190615-US', 'TP190616-CN', 'TP190617-CN', 'TP190618-CN', 'TP190619-CN', 'TP190619PCT', 'TP190620-CN', 'TP190621-CN', 'TP190621PCT', 'TP190623-CN', 'TP190624-CN', 'TP190625-CN', 'TP190625PCT', 'TP190626-CN', 'TP190626PCT', 'TP190627-CN', 'TP190627PCT', 'TP190627-US', 'TP190772-CN', 'TP190793-CN', 'TP190695-CN', 'TP190694-CN', 'TP190694PCT', 'TP190694-US', 'TP190710-CN', 'TP190696-CN', 'TP190697-CN', 'TP190697PCT', 'TP190697-US', 'TP190698-CN', 'TP190698PCT', 'TP190698-US', 'TP190699-CN', 'TP190699PCT', 'TP190700-CN', 'TP190700PCT', 'TP190693-CN', 'TP161113-JP', 'TP190711-CN', 'TP161140-JP', 'TP190703-CN', 'TP190703PCT', 'TP190704-CN', 'TP190704PCT', 'TP190704-US', 'TP190705-CN', 'TP190705PCT', 'TP190705-US', 'TP190706-CN', 'TP190706PCT', 'TP190707-CN', 'TP190707PCT', 'TP190707-US', 'TP190708-CN', 'TP190708PCT', 'TP190709-CN', 'TP190709PCT', 'TP190709-US', 'TP190790-CN', 'TP190710PCT', 'TP190710-US', 'TP190711PCT', 'TP190712-CN', 'TP190712PCT', 'TP190712-US', 'TP190713-CN', 'TP190713PCT', 'TP190713-US', 'TP190714-CN', 'TP190714PCT', 'TP190715-CN', 'TP190716-CN', 'TP190716PCT', 'TP190716-US', 'TP190717-CN', 'TP190718-CN', 'TP190718PCT', 'TP190719-CN', 'TP190719PCT', 'TP190719-US', 'TP190720-CN', 'TP190721-CN', 'TP190721PCT', 'TP190721-US', 'TP190722-CN', 'TP190722PCT', 'TP190722-US', 'TP190723-CN', 'TP190723PCT', 'TP190724-CN', 'TP190724PCT', 'TP190724-US', 'TP190725PCT', 'TP190725-US', 'TP190726-CN', 'TP190726PCT', 'TP190727-CN', 'TP190727PCT', 'TP190728-CN', 'TP190728PCT', 'TP190728-US', 'TP190729-CN', 'TP190729PCT', 'TP190730-CN', 'TP190730PCT', 'TP190730-US', 'TP190731-CN', 'TP190731PCT', 'TP190733-CN', 'TP190734-CN', 'TP190735-CN', 'TP190735PCT', 'TP190735-US', 'TP190736-CN', 'TP190736PCT', 'TP190737-CN', 'TP190738-CN', 'TP190738PCT', 'TP190740-CN', 'TP190740PCT', 'TP190740-US', 'TP190741-CN', 'TP190742-CN', 'TP190745-CN', 'TP190746-CN', 'TP190746PCT', 'TP190747-CN', 'TP190747PCT', 'TP190747-US', 'TP190748-CN', 'TP190748PCT', 'TP190749-CN', 'TP190749PCT', 'TP190749-US', 'TP190750-CN', 'TP190751-CN', 'TP190751PCT', 'TP190751-US', 'TP190752-CN', 'TP190752PCT', 'TP190752-US', 'TP190753-CN', 'TP190753PCT', 'TP190754-CN', 'TP190754PCT', 'TP190754-US', 'TP190755-CN', 'TP190755PCT', 'TP190756-CN', 'TP190756PCT', 'TP190757-CN', 'TP190757PCT', 'TP190757-US', 'TP190758-CN', 'TP190759-CN', 'TP190759PCT', 'TP190759-US', 'TP190760-CN', 'TP190760PCT', 'TP190760-US', 'TP190761PCT', 'TP190761-US', 'TP190762-CN', 'TP190762PCT', 'TP190764-CN', 'TP190765-CN', 'TP190765PCT', 'TP190789-CN', 'TP190767-CN', 'TP190767PCT', 'TP190768-CN', 'TP190768PCT', 'TP190769-CN', 'TP190770-CN', 'TP190771-CN', 'TP190836-CN', 'TP190773-CN', 'TP190774-CN', 'TP190774PCT', 'TP190775-CN', 'TP190775PCT', 'TP190776-CN', 'TP190776PCT', 'TP190777-CN', 'TP190777PCT', 'TP190778-CN', 'TP190778PCT', 'TP190778-US', 'TP190779-CN', 'TP190779PCT', 'TP190779-US', 'TP190780-CN', 'TP190781-CN', 'TP190781PCT', 'TP190781-US', 'TP190782-CN', 'TP190782PCT', 'TP190782-US', 'TP190783-CN', 'TP190783PCT', 'TP190784-CN', 'TP190784PCT', 'TP190837-CN', 'TP161143-JP', 'TP190788-CN', 'TP190788PCT', 'TP190788-US', 'TP190725-CN', 'TP190789PCT', 'TP190761-CN', 'TP190790PCT', 'TP190791-CN', 'TP190791PCT', 'TP190792-CN', 'TP190792PCT', 'TP190792-US', 'TP190807-CN', 'TP190794-CN', 'TP190794PCT', 'TP190795-CN', 'TP190795PCT', 'TP190796-CN', 'TP190796PCT', 'TP190808-CN', 'TP190797PCT', 'TP190797-US', 'TP190798-CN', 'TP190798PCT', 'TP190800-CN', 'TP190805-CN', 'TP190805PCT', 'TP190805-US', 'TP190806-CN', 'TP190806PCT', 'TP190101-CN', 'TP190807PCT', 'TP190797-CN', 'TP190808PCT', 'TP190812-CN', 'TP190812PCT', 'TP190813-CN', 'TP190813PCT', 'TP190814-CN', 'TP190814PCT', 'TP190815-CN', 'TP190815PCT', 'TP190815-US', 'TP190816-CN', 'TP190816PCT', 'TP190816-US', 'TP190817-CN', 'TP190817PCT', 'TP190818-CN', 'TP190818PCT', 'TP190819-CN', 'TP190819PCT', 'TP190819-US', 'TP190820-CN', 'TP190820PCT', 'TP190820-US', 'TP190821-CN', 'TP190821PCT', 'TP190822-CN', 'TP190822PCT', 'TP190823-CN', 'TP190823PCT', 'TP190824-CN', 'TP190824PCT', 'TP190825-CN', 'TP190825PCT', 'TP190826-CN', 'TP190826PCT', 'TP190827-CN', 'TP190827PCT', 'TP190827-US', 'TP190828-CN', 'TP190828PCT', 'TP190828-US', 'TP190829-CN', 'TP190829PCT', 'TP190829-US', 'TP190830-CN', 'TP190830PCT', 'TP190830-US', 'TP190831-CN', 'TP190832-CN', 'TP190799-CN', 'TP190834PCT', 'TP190835-CN', 'TP190834-CN', 'TP190836PCT', 'TP190836-US', 'TP190766-CN', 'TP190837PCT', 'TP190837-US', 'TP170732-US2', 'TP190847-CN', 'TP190847PCT', 'TP190848-CN', 'TP190848PCT', 'TP190849-CN', 'TP190849PCT', 'TP190850-CN', 'TP190850PCT', 'TP190851-CN', 'TP190851PCT', 'TP190852-CN', 'TP190852PCT', 'TP190853-CN', 'TP190853PCT', 'TP190854-CN', 'TP190854PCT', 'TP190855-CN', 'TP190855PCT', 'TP190856-CN', 'TP190856PCT', 'TP190857-CN', 'TP190857PCT', 'TP190858-CN', 'TP190858PCT', 'TP190859-CN', 'TP190859PCT', 'TP190860-CN', 'TP190860PCT', 'TP190929-CN', 'TP190929PCT', 'TP190962-CN', 'TP190963-CN', 'TP190963PCT', 'TP190963-US', 'TP190964-CN', 'TP190964PCT', 'TP190964-US', 'TP190965-CN', 'TP190965PCT', 'TP190966-CN', 'TP190966PCT', 'TP190967-CN', 'TP190967PCT', 'TP190969-CN', 'TP190969PCT', 'TP190969-US', 'TP190970-CN', 'TP190970PCT', 'TP190972-CN', 'TP190973-CN', 'TP190973PCT', 'TP190974-CN', 'TP190974PCT', 'TP190974-US', 'TP190975-CN', 'TP190975PCT', 'TP190976-CN', 'TP190976PCT', 'TP190977-CN', 'TP190977PCT', 'TP190978-CN', 'TP190979-CN', 'TP190979PCT', 'TP190979-US', 'TP190980-CN', 'TP190980PCT', 'TP190980-US', 'TP190981-CN', 'TP190981PCT', 'TP190982-CN', 'TP190982PCT', 'TP190983-CN', 'TP190983PCT', 'TP190983-US', 'TP190984-CN', 'TP190984PCT', 'TP190985-CN', 'TP190985PCT', 'TP190986-CN', 'TP190986PCT', 'TP190986-US', 'TP190987-CN', 'TP190987PCT', 'TP190987-US', 'TP190988-CN', 'TP190988PCT', 'TP190988-US', 'TP190989-CN', 'TP190990-CN', 'TP190990PCT', 'TP190991-CN', 'TP190992-CN', 'TP190992PCT', 'TP190992-US', 'TP190994-CN', 'TP190995-CN', 'TP190995PCT', 'TP190995-US', 'TP190996-CN', 'TP190997-CN', 'TP190997PCT', 'TP190997-US', 'TP190998-CN', 'TP190999-CN', 'TP190999PCT', 'TP190999-US', 'TP191000-CN', 'TP191000PCT', 'TP191001-CN', 'TP191002-CN', 'TP191002PCT', 'TP191003-CN', 'TP191004-CN', 'TP191004PCT', 'TP191006-CN', 'TP191006PCT', 'TP191007-CN', 'TP191007PCT', 'TP191008-CN', 'TP191008PCT', 'TP191008-US', 'TP191009-CN', 'TP191009PCT', 'TP191010-CN', 'TP191010PCT', 'TP191011-CN', 'TP191011PCT', 'TP191011-US', 'TP191012-CN', 'TP191012PCT', 'TP191013-CN', 'TP191013PCT', 'TP191013-US', 'TP191014-CN', 'TP191014PCT', 'TP191015-CN', 'TP191015PCT', 'TP191016-CN', 'TP191016PCT', 'TP191016-US', 'TP191017-CN', 'TP191017PCT', 'TP191018-CN', 'TP191018PCT', 'TP191018-US', 'TP191019-CN', 'TP191019PCT', 'TP191020-CN', 'TP191020PCT', 'TP191020-US', 'TP191022-CN', 'TP191022PCT', 'TP191023-CN', 'TP191023PCT', 'TP191024-CN', 'TP191024PCT', 'TP191024-US', 'TP191025-CN', 'TP191025PCT', 'TP191025-US', 'TP191026-CN', 'TP191026PCT', 'TP191026-US', 'TP191028-CN', 'TP191028PCT', 'TP191030-CN', 'TP191031-CN', 'TP191031PCT', 'TP191031-US', 'TP191032-CN', 'TP191032PCT', 'TP191033-CN', 'TP191033PCT', 'TP191034-CN', 'TP191034PCT', 'TP191034-US', 'TP191035-CN', 'TP191037-CN', 'TP191037PCT', 'TP191037-US', 'TP191038-CN', 'TP191038PCT', 'TP191039-CN', 'TP191039PCT', 'TP191040-CN', 'TP191040PCT', 'TP191040-US', 'TP191041-CN', 'TP191041PCT', 'TP191042-CN', 'TP191042PCT', 'TP191044-CN', 'TP191044PCT', 'TP191045-CN', 'TP191045PCT', 'TP191045-US', 'TP191046-CN', 'TP191046PCT', 'TP191047-CN', 'TP191047PCT', 'TP191048-CN', 'TP191048PCT', 'TP191048-US', 'TP191049-CN', 'TP191049PCT', 'TP191049-US', 'TP191050-CN', 'TP191050PCT', 'TP191050-US', 'TP191051-CN', 'TP191051PCT', 'TP191052-CN', 'TP191052PCT', 'TP191052-US', 'TP191053-CN', 'TP191053PCT', 'TP191055-CN', 'TP191055PCT', 'TP191055-US', 'TP191056-CN', 'TP191056PCT', 'TP191056-US', 'TP191057-CN', 'TP191057PCT', 'TP191057-US', 'TP191058-CN', 'TP191058PCT', 'TP191058-US', 'TP191060-CN', 'TP191060PCT', 'TP191060-US', 'TP191061-CN', 'TP191061PCT', 'TP191061-US', 'TP191062-CN', 'TP191062PCT', 'TP191063-CN', 'TP191063PCT', 'TP191064-CN', 'TP191064PCT', 'TP191064-US', 'TP191066-CN', 'TP191066PCT', 'TP191067-CN', 'TP191067PCT', 'TP191068-CN', 'TP191068PCT', 'TP191069-CN', 'TP191069PCT', 'TP191069-US', 'TP191070-CN', 'TP191071-CN', 'TP191071PCT', 'TP191071-US', 'TP191072-CN', 'TP191073-CN', 'TP191073PCT', 'TP191073-US', 'TP191074-CN', 'TP191075-CN', 'TP191076-CN', 'TP191076PCT', 'TP191078-CN', 'TP191078PCT', 'TP191078-US', 'TP191079-CN', 'TP191080-CN', 'TP191081-CN', 'TP191082-CN', 'TP191082PCT', 'TP191083-CN', 'TP191084-CN', 'TP191084PCT', 'TP191084-US', 'TP191085-CN', 'TP191085PCT', 'TP191086-CN', 'TP191086PCT', 'TP191087-CN', 'TP191089-CN', 'TP191089PCT', 'TP191089-US', 'TP191090-CN', 'TP191090PCT', 'TP191090-US', 'TP191091-CN', 'TP191091PCT', 'TP191091-US', 'TP191092-CN', 'TP191092PCT', 'TP191092-US', 'TP191093-CN', 'TP191093PCT', 'TP191093-US', 'TP191094-CN', 'TP191094PCT', 'TP191094-US', 'TP191095-CN', 'TP191095PCT', 'TP191095-US', 'TP191096-CN', 'TP191096PCT', 'TP191096-US', 'TP191097-CN', 'TP191097PCT', 'TP191097-US', 'TP191098-CN', 'TP191098PCT', 'TP191099-CN', 'TP191100-CN', 'TP191100PCT', 'TP191100-US', 'TP191101-CN', 'TP191101PCT', 'TP191101-US', 'TP191102-CN', 'TP191103-CN', 'TP191103PCT', 'TP191103-US', 'TP191104-CN', 'TP191104PCT', 'TP191104-US', 'TP191105-CN', 'TP191105PCT', 'TP191108-CN', 'TP191108PCT', 'TP191109-CN', 'TP191109PCT', 'TP191109-US', 'TP191110-CN', 'TP191110PCT', 'TP191111-CN', 'TP191111PCT', 'TP191112-CN', 'TP191112PCT', 'TP191113-CN', 'TP191113PCT', 'TP191114-CN', 'TP191114PCT', 'TP191115-CN', 'TP191115PCT', 'TP191115-US', 'TP191116-CN', 'TP191116PCT', 'TP191116-US', 'TP191117-CN', 'TP191117PCT', 'TP191117-US', 'TP191118-CN', 'TP191118PCT', 'TP191119-CN', 'TP191119PCT', 'TP191119-US', 'TP191120-CN', 'TP191120PCT', 'TP191120-US', 'TP191121-CN', 'TP191121PCT', 'TP191121-US', 'TP191122-CN', 'TP191122PCT', 'TP191123-CN', 'TP191123PCT', 'TP191124-CN', 'TP191124PCT', 'TP191124-US', 'TP191125-CN', 'TP191125PCT', 'TP202215-CN', 'TP202230-CN', 'TP202232-CN', 'TP202234-CN', 'TP202235-CN', 'TP202238-CN', 'TP202239-CN', 'TP202240-CN', 'TP202243-CN', 'TP202247-CN', 'TP202253-CN', 'TP202265-CN', 'TP202269-CN', 'TP202271-CN', 'TP202275-CN', 'TP202278-CN', 'TP202279-CN', 'TP202286-CN', 'TP202291-CN', 'TP202309-CN', 'TP202320-CN', 'TP202324-CN', 'TP202365-CN', 'TP202376-CN', 'TP202378-CN', 'TP202383-CN', 'TP202385-CN', 'TP202399-CN', 'TP202403-CN', 'TP202407-CN', 'TP202427-CN', 'TP202429-CN', 'TP202432-CN', 'TP202433-CN', 'TP202444-CN', 'TP202449-CN', 'TP202452-CN', 'TP201817-CN', 'TP202180-CN', 'TP202188-CN', 'TP202200-CN', 'TP202212-CN', 'TP202213-CN', 'TP202252-CN', 'TP202266-CN', 'TP202276-CN', 'TP202284-CN', 'TP202285-CN', 'TP202299-CN', 'TP202302-CN', 'TP202392-CN', 'TP202435-CN', 'TP202437-CN', 'TP202448-CN', 'TP202450-CN', 'TP202523-CN', 'TP202524-CN', 'TP202525-CN', 'TP202526-CN', 'TP202527-CN', 'TP202528-CN', 'TP202529-CN', 'TP202530-CN', 'TP202531-CN', 'TP202532-CN', 'TP202533-CN', 'TP202534-CN', 'TP202535-CN')
) pc
left join p_proc_pic_list ppl on ppl.obj_id=pc.case_id
left join evw_Employee ui on ui.user_id=ppl.pic_id
left join p_agency_list al on al.is_enabled=1 and al.obj_id=pc.case_id
left join c_agency ca on ca.agency_id=al.agency_id
LEFT JOIN evw_p_case_sales_list b1 ON b1.obj_id = pc.case_id AND b1.is_enabled = 1
LEFT JOIN evw_qresult_caselevel eqc ON eqc.case_id = pc.case_id
\ No newline at end of file
begin tran tran1;
UPDATE esn_todos
SET
FinishedDate = '2018/11/14',
finishedDate_c10 = '2018-11-13',
ToDosStatus = 'TDS02',
ToDosStatus_Name = '已完成',
Update_Userid = 'cb76971e-22d1-4f81-ade1-03c280f68cce',
Update_User = '何震中',
Update_time = '2020/04/23 09:49:49'
WHERE SN IN(537183);
SELECT SN,
taskdescription AS taskName,
proc_ID,
FinishedDate,
ToDosStatus_Name
FROM esn_todos
WHERE SN IN(537183);
UPDATE p_proc_info
SET
finish_date = '2018/11/13'
WHERE proc_id = 'AC7BA60F-2393-4C2B-AFA4-6F1C1617E4D4';
WAITFOR DELAY '00:00:15';
begin tran tran2;
UPDATE esn_todos
SET
FinishedDate = '2018/11/1',
finishedDate_c10 = '2018-11-13',
ToDosStatus = 'TDS02-test',
ToDosStatus_Name = '已完成',
Update_Userid = 'cb76971e-22d1-4f81-ade1-03c280f68cce',
Update_User = '何震中',
Update_time = '2020/04/23 09:49:49'
WHERE SN IN(537183);
SELECT SN,
taskdescription AS taskName,
proc_ID,
FinishedDate,
ToDosStatus_Name
FROM esn_todos
WHERE SN IN(537183);
--UPDATE p_proc_info
-- SET
-- finish_date = '2018/11/13'
--WHERE proc_id = 'AC7BA60F-2393-4C2B-AFA4-6F1C1617E4D4';
WAITFOR DELAY '00:00:15';
rollback tran tran1;
rollback tran tran2;
SELECT cntr_value AS NumOfDeadLocks,a.*
FROM sys.dm_os_performance_counters a
WHERE object_name = 'SQLServer:Locks'
AND counter_name = 'Number of Deadlocks/sec'
AND instance_name = '_Total'
select * from sys.dm_tran_locks
SELECT request_session_id AS spid,
resource_type AS rt,
resource_databASe_id AS rdb,
(CASE resource_type
WHEN 'OBJECT' then object_name(resource_ASsociated_entity_id)
WHEN 'DATABASE' then '<db_name>'
ELSE
(SELECT object_name(object_id) FROM sys.partitions
WHERE hobt_id = resource_ASsociated_entity_id) END) AS objname,
resource_description AS rd,
request_mode AS rm,
request_status AS rs
FROM sys.dm_tran_locks
select substring(CaseNo,1,9),COUNT(distinct substring(CaseNo,1,7)) from esn_Todos a
where a.CaseNo like 'TP20000%'
group by substring(CaseNo,1,3), substring(CaseNo,1,9)
select * from p_proc_info a
where a.proc_id='d40cf158-f34b-438e-8143-c29be26e5b3c'
select * from esn_todos a
where a.CaseNo='TP190155-TW'
select a.create_time,a.finish_date, ips.status_code,ips.proc_status_zh_tw as "狀態(父)" ,c.case_volume as 案號,icp.ctrl_proc_zh_tw as "處理事項名稱(父)"
,icp.country_id,b.ToDosStatus,b.ToDosStatus_Name, b.TaskDescription as "處理事項名稱(子)" from p_proc_info a
left join esn_Todos b on a.proc_id=b.proc_id
left join evw_p_case_info c on a.case_id=c.case_id
left join i_proc_status ips on a.proc_status_id =ips.proc_status_id
left join i_ctrl_proc icp on a.ctrl_proc_id =icp.ctrl_proc_id
where b.ToDosStatus='TDS01' and ips.proc_status_zh_tw like '結%'
Begin tran tran1;
with CTE as (
select
b.sn,a.proc_id,a.create_time,a.finish_date, ips.status_code,ips.proc_status_zh_tw as "狀態(父)" ,c.case_volume as 案號,icp.ctrl_proc_zh_tw as "處理事項名稱(父)"
,icp.country_id,b.ToDosStatus,b.ToDosStatus_Name, b.TaskDescription as "處理事項名稱(子)"
from p_proc_info a
left join esn_Todos b on a.proc_id=b.proc_id
left join evw_p_case_info c on a.case_id=c.case_id
left join i_proc_status ips on a.proc_status_id =ips.proc_status_id
left join i_ctrl_proc icp on a.ctrl_proc_id =icp.ctrl_proc_id
where b.ToDosStatus='TDS01' and ips.proc_status_zh_tw like '結%'
--order by b.sn
)
--select a.* from esn_Todos a
-- inner join CTE b on a.sn=b.sn
update esn_todos set ToDosStatus='TDS03',ToDosStatus_Name='結案'
From esn_todos a inner join CTE b on a.sn=b.sn
;
--commit tran tran1;
rollback tran tran1;
:on error
select top 100 * from esn_todos
\ No newline at end of file
with tempt as(
select top 1000
a.case_volume,b.CaseNo--,SUBSTRING(a.case_volume ,9,3),SUBSTRING(a.case_volume ,1,8)
--a.*,b.CaseNo
from p_case_info a
left join evw_qresult_caselevel b on SUBSTRING(a.case_volume ,1,8)=SUBSTRING(b.CaseNo ,1,8) and right(a.case_volume,2)=right(b.CaseNo,2)
where CHARINDEX('-', a.case_volume,0)=0 and CHARINDEX('-', b.CaseNo,0)>0
)
--查詢
select * from q_result_text a
inner join tempt on a.text=tempt.CaseNo
--修改
update q_result_text set text=tempt.case_volume
where text=tempt.CaseNo
select a.sn,a.CaseNo as 案號,c.ctrl_proc_zh_cn '處理事項(父)',a.TaskDescription as '處理事項(子)',a.FinishedDate 完成日 ,
a.AssignedTo_Name 承辦人,a.PointsType,a.points, * from esn_Todos a
left join p_proc_info b on a.proc_id=b.proc_id
left join i_ctrl_proc c on b.ctrl_proc_id=c.ctrl_proc_id
where a.FinishedDate between '2021-03-01' and '2021-03-31' and TaskDescription='點數補正' and PointsType='MP'
update esn_Todos set PointsType='POINT'
where FinishedDate between '2021-03-01' and '2021-03-31'and TaskDescription='點數補正' and PointsType='MP'
--清除非法資料
begin tran tran1
delete a from esn_todos_Flow_his a
select * from esn_todos_Flow_his a
left join esn_todos_Flow b on a.Flow_id=b.id
where
((a.FromType_id=3 and a.ToType_id=4) or (a.FromType_id=4 and a.ToType_id=4)) --只取 主管->審核完成,審核完成->審核完成
and ConfirmUserClass <> 'Leader'
order by Update_time desc
and
b.esn_todos_sn in(959085,901646,901640,951854,941535,880299,897526,932877,944275,944277,947256,947257,955381,954899,948130,948999,958248,957957,955374,956797,956795,955372,907294,909427,935342,923075,943083,920994,945659,957667,947563,950926,934931,957865,954381,945671,957924,946690,945397,959423,917332,942126,924128,940621,942741,944818,947694,947344,955548,959414,943955,946379,946385,947205,947211,948377,950172,950175,953883,954266,955221,908977,943588,947247,932878,958072,924007,932771,905494,948361,934211,954404,954114,914067,940944,961733,958429,959428,959383,959391,923987,939734,948629,956097,956100,956103,956106,956109,956112,956115,956118,956121,956124,951677,949579,955471,955141,949857)
update esn_todos_Flow
set StepType_id=3,StepType_id_Previous=2
where
--StepType_id=4 and StepType_id_Previous=4 --只取 前步與現在皆是審核完成
--and
esn_todos_sn in(959085,901646,901640,951854,941535,880299,897526,932877,944275,944277,947256,947257,955381,954899,948130,948999,958248,957957,955374,956797,956795,955372,907294,909427,935342,923075,943083,920994,945659,957667,947563,950926,934931,957865,954381,945671,957924,946690,945397,959423,917332,942126,924128,940621,942741,944818,947694,947344,955548,959414,943955,946379,946385,947205,947211,948377,950172,950175,953883,954266,955221,908977,943588,947247,932878,958072,924007,932771,905494,948361,934211,954404,954114,914067,940944,961733,958429,959428,959383,959391,923987,939734,948629,956097,956100,956103,956106,956109,956112,956115,956118,956121,956124,951677,949579,955471,955141,949857)
rollback tran tran1
--commit tran tran1
--清除非法資料 END
select * from esn_todos_Flow a
where a.esn_todos_sn=959085
return
--select d.sn,a.case_volume,c.ctrl_proc_zh_cn,d.TaskDescription,d.Points,d.AssignedTo_Name,d.AssignStatus_name,d.FinishedDate,f.Step_Text,
--f1.Step_Text,f2.Step_Text,g.cn_name,ee.Create_time
select d.sn
from p_case_info a
inner join p_proc_info b on a.case_id = b.case_id
inner join i_ctrl_proc c on b.ctrl_proc_id = c.ctrl_proc_id
inner join esn_Todos d on a.case_id = d.case_id and b.proc_id = d.proc_id and d.active = 1
inner join esn_todos_Flow e on d.sn = e.esn_todos_sn
inner join esn_todos_Flow_his ee on e.id = ee.Flow_id
inner join esn_todos_Flow_StepType f on e.StepType_id = f.id
inner join esn_todos_Flow_StepType f1 on ee.FromType_id = f1.id
inner join esn_todos_Flow_StepType f2 on ee.ToType_id = f2.id
inner join s_user_info g on ee.ConfirmUserId = g.user_id
where d.FinishedDate >= '2021-09-01' and
f.Step_Text = '審核完成' and
f1.Step_Text = '主管審核中' and
f2.Step_Text = '審核完成' and
ee.ConfirmUserId not in
(select user_id
from evw_dept_manager
where dept like '%專利%'
group by name,user_id
union
select a.user_id
from s_user_code_role a
where a.role_name = 'dept_manager'
group by a.user_id)
order by ee.Create_time asc
\ No newline at end of file
declare @jall nvarchar(max),@fall nvarchar(max)
-- 建立简繁对照表
-- 以下几行是简繁对照的编码表,会特~别长,复制时请注意)
select @jall=N'啊阿埃挨哎唉哀皑癌蔼矮艾碍爱隘鞍氨安俺按暗岸胺案肮昂盎凹敖熬翱袄傲奥懊澳芭捌扒叭吧笆八疤巴拔跋靶把耙坝霸罢爸白柏百摆佰败拜稗斑班搬扳般颁板版扮拌伴瓣半办绊邦帮梆榜膀绑棒磅蚌镑傍谤苞胞包褒剥薄雹保堡饱宝抱报暴豹鲍爆杯碑悲卑北辈背贝钡倍狈备惫焙被奔苯本笨崩绷甭泵蹦迸逼鼻比鄙笔彼碧蓖蔽毕毙毖币庇痹闭敝弊必辟壁臂避陛鞭边编贬扁便变卞辨辩辫遍标彪膘表鳖憋别瘪彬斌濒滨宾摈兵冰柄丙秉饼炳病并玻菠播拨钵波博勃搏铂箔伯帛舶脖膊渤泊驳捕卜哺补埠不布步簿部怖擦猜裁材才财睬踩采彩菜蔡餐参蚕残惭惨灿苍舱仓沧藏操糙槽曹草厕策侧册测层蹭插叉茬茶查碴搽察岔差诧拆柴豺搀掺蝉馋谗缠铲产阐颤昌猖场尝常长偿肠厂敞畅唱倡超抄钞朝嘲潮巢吵炒车扯撤掣彻澈郴臣辰尘晨忱沉陈趁衬撑称城橙成呈乘程惩澄诚承逞骋秤吃痴持匙池迟弛驰耻齿侈尺赤翅斥炽充冲虫崇宠抽酬畴踌稠愁筹仇绸瞅丑臭初出橱厨躇锄雏滁除楚础储矗搐触处揣川穿椽传船喘串疮窗幢床闯创吹炊捶锤垂春椿醇唇淳纯蠢戳绰疵茨磁雌辞慈瓷词此刺赐次聪葱囱匆从丛凑粗醋簇促蹿篡窜摧崔催脆瘁粹淬翠村存寸磋撮搓措挫错搭达答瘩打大呆歹傣戴带殆代贷袋待逮怠耽担丹单郸掸胆旦氮但惮淡诞弹蛋当挡党荡档刀捣蹈倒岛祷导到稻悼道盗德得的蹬灯登等瞪凳邓堤低滴迪敌笛狄涤翟嫡抵底地蒂第帝弟递缔颠掂滇碘点典靛垫电佃甸店惦奠淀殿碉叼雕凋刁掉吊钓调跌爹碟蝶迭谍叠丁盯叮钉顶鼎锭定订丢东冬董懂动栋侗恫冻洞兜抖斗陡豆逗痘都督毒犊独读堵睹赌杜镀肚度渡妒端短锻段断缎堆兑队对墩吨蹲敦顿囤钝盾遁掇哆多夺垛躲朵跺舵剁惰堕蛾峨鹅俄额讹娥恶厄扼遏鄂饿恩而儿耳尔饵洱二贰发罚筏伐乏阀法珐藩帆番翻樊矾钒繁凡烦反返范贩犯饭泛坊芳方肪房防妨仿访纺放菲非啡飞肥匪诽吠肺废沸费芬酚吩氛分纷坟焚汾粉奋份忿愤粪丰封枫蜂峰锋风疯烽逢冯缝讽奉凤佛否夫敷肤孵扶拂辐幅氟符伏俘服浮涪福袱弗甫抚辅俯釜斧脯腑府腐赴副覆赋复傅付阜父腹负富讣附妇缚咐噶嘎该改概钙盖溉干甘杆柑竿肝赶感秆敢赣冈刚钢缸肛纲岗港杠篙皋高膏羔糕搞镐稿告哥歌搁戈鸽胳疙割革葛格蛤阁隔铬个各给根跟耕更庚羹埂耿梗工攻功恭龚供躬公宫弓巩汞拱贡共钩勾沟苟狗垢构购够辜菇咕箍估沽孤姑鼓古蛊骨谷股故顾固雇刮瓜剐寡挂褂乖拐怪棺关官冠观管馆罐惯灌贯光广逛瑰规圭硅归龟闺轨鬼诡癸桂柜跪贵刽辊滚棍锅郭国果裹过哈骸孩海氦亥害骇酣憨邯韩含涵寒函喊罕翰撼捍旱憾悍焊汗汉夯杭航壕嚎豪毫郝好耗号浩呵喝荷菏核禾和何合盒貉阂河涸赫褐鹤贺嘿黑痕很狠恨哼亨横衡恒轰哄烘虹鸿洪宏弘红喉侯猴吼厚候后呼乎忽瑚壶葫胡蝴狐糊湖弧虎唬护互沪户花哗华猾滑画划化话槐徊怀淮坏欢环桓还缓换患唤痪豢焕涣宦幻荒慌黄磺蝗簧皇凰惶煌晃幌恍谎灰挥辉徽恢蛔回毁悔慧卉惠晦贿秽会烩汇讳诲绘荤昏婚魂浑混豁活伙火获或惑霍货祸击圾基机畸稽积箕肌饥迹激讥鸡姬绩缉吉极棘辑籍集及急疾汲即嫉级挤几脊己蓟技冀季伎祭剂悸济寄寂计记既忌际妓继纪嘉枷夹佳家加荚颊贾甲钾假稼价架驾嫁歼监坚尖笺间煎兼肩艰奸缄茧检柬碱硷拣捡简俭剪减荐槛鉴践贱见键箭件健舰剑饯渐溅涧建僵姜将浆江疆蒋桨奖讲匠酱降蕉椒礁焦胶交郊浇骄娇嚼搅铰矫侥脚狡角饺缴绞剿教酵轿较叫窖揭接皆秸街阶截劫节茎睛晶鲸京惊精粳经井警景颈静境敬镜径痉靖竟竞净炯窘揪究纠玖韭久灸九酒厩救旧臼舅咎就疚鞠拘狙疽居驹菊局咀矩举沮聚拒据巨具距踞锯俱句惧炬剧捐鹃娟倦眷卷绢撅攫抉掘倔爵桔杰捷睫竭洁结解姐戒藉芥界借介疥诫届巾筋斤金今津襟紧锦仅谨进靳晋禁近烬浸尽劲荆兢觉决诀绝均菌钧军君峻俊竣浚郡骏喀咖卡咯开揩楷凯慨刊堪勘坎砍看康慷糠扛抗亢炕考拷烤靠坷苛柯棵磕颗科壳咳可渴克刻客课肯啃垦恳坑吭空恐孔控抠口扣寇枯哭窟苦酷库裤夸垮挎跨胯块筷侩快宽款匡筐狂框矿眶旷况亏盔岿窥葵奎魁傀馈愧溃坤昆捆困括扩廓阔垃拉喇蜡腊辣啦莱来赖蓝婪栏拦篮阑兰澜谰揽览懒缆烂滥琅榔狼廊郎朗浪捞劳牢老佬姥酪烙涝勒乐雷镭蕾磊累儡垒擂肋类泪棱楞冷厘梨犁黎篱狸离漓理李里鲤礼莉荔吏栗丽厉励砾历利傈例俐痢立粒沥隶力璃哩俩联莲连镰廉怜涟帘敛脸链恋炼练粮凉梁粱良两辆量晾亮谅撩聊僚疗燎寥辽潦了撂镣廖料列裂烈劣猎琳林磷霖临邻鳞淋凛赁吝拎玲菱零龄铃伶羚凌灵陵岭领另令溜琉榴硫馏留刘瘤流柳六龙聋咙笼窿隆垄拢陇楼娄搂篓漏陋芦卢颅庐炉掳卤虏鲁麓碌露路赂鹿潞禄录陆戮驴吕铝侣旅履屡缕虑氯律率滤绿峦挛孪滦卵乱掠略抡轮伦仑沦纶论萝螺罗逻锣箩骡裸落洛骆络妈麻玛码蚂马骂嘛吗埋买麦卖迈脉瞒馒蛮满蔓曼慢漫谩芒茫盲氓忙莽猫茅锚毛矛铆卯茂冒帽貌贸么玫枚梅酶霉煤没眉媒镁每美昧寐妹媚门闷们萌蒙檬盟锰猛梦孟眯醚靡糜迷谜弥米秘觅泌蜜密幂棉眠绵冕免勉娩缅面苗描瞄藐秒渺庙妙蔑灭民抿皿敏悯闽明螟鸣铭名命谬摸摹蘑模膜磨摩魔抹末莫墨默沫漠寞陌谋牟某拇牡亩姆母墓暮幕募慕木目睦牧穆拿哪呐钠那娜纳氖乃奶耐奈南男难囊挠脑恼闹淖呢馁内嫩能妮霓倪泥尼拟你匿腻逆溺蔫拈年碾撵捻念娘酿鸟尿捏聂孽啮镊镍涅您柠狞凝宁拧泞牛扭钮纽脓浓农弄奴努怒女暖虐疟挪懦糯诺哦欧鸥殴藕呕偶沤啪趴爬帕怕琶拍排牌徘湃派攀潘盘磐盼畔判叛乓庞旁耪胖抛咆刨炮袍跑泡呸胚培裴赔陪配佩沛喷盆砰抨烹澎彭蓬棚硼篷膨朋鹏捧碰坯砒霹批披劈琵毗啤脾疲皮匹痞僻屁譬篇偏片骗飘漂瓢票撇瞥拼频贫品聘乒坪苹萍平凭瓶评屏坡泼颇婆破魄迫粕剖扑铺仆莆葡菩蒲埔朴圃普浦谱曝瀑期欺栖戚妻七凄漆柒沏其棋奇歧畦崎脐齐旗祈祁骑起岂乞企启契砌器气迄弃汽泣讫掐洽牵扦钎铅千迁签仟谦乾黔钱钳前潜遣浅谴堑嵌欠歉枪呛腔羌墙蔷强抢橇锹敲悄桥瞧乔侨巧鞘撬翘峭俏窍切茄且怯窃钦侵亲秦琴勤芹擒禽寝沁青轻氢倾卿清擎晴氰情顷请庆琼穷秋丘邱球求囚酋泅趋区蛆曲躯屈驱渠取娶龋趣去圈颧权醛泉全痊拳犬券劝缺炔瘸却鹊榷确雀裙群然燃冉染瓤壤攘嚷让饶扰绕惹热壬仁人忍韧任认刃妊纫扔仍日戎茸蓉荣融熔溶容绒冗揉柔肉茹蠕儒孺如辱乳汝入褥软阮蕊瑞锐闰润若弱撒洒萨腮鳃塞赛三叁伞散桑嗓丧搔骚扫嫂瑟色涩森僧莎砂杀刹沙纱傻啥煞筛晒珊苫杉山删煽衫闪陕擅赡膳善汕扇缮墒伤商赏晌上尚裳梢捎稍烧芍勺韶少哨邵绍奢赊蛇舌舍赦摄射慑涉社设砷申呻伸身深娠绅神沈审婶甚肾慎渗声生甥牲升绳省盛剩胜圣师失狮施湿诗尸虱十石拾时什食蚀实识史矢使屎驶始式示士世柿事拭誓逝势是嗜噬适仕侍释饰氏市恃室视试收手首守寿授售受瘦兽蔬枢梳殊抒输叔舒淑疏书赎孰熟薯暑曙署蜀黍鼠属术述树束戍竖墅庶数漱恕刷耍摔衰甩帅栓拴霜双爽谁水睡税吮瞬顺舜说硕朔烁斯撕嘶思私司丝死肆寺嗣四伺似饲巳松耸怂颂送宋讼诵搜艘擞嗽苏酥俗素速粟僳塑溯宿诉肃酸蒜算虽隋随绥髓碎岁穗遂隧祟孙损笋蓑梭唆缩琐索锁所塌他它她塔獭挞蹋踏胎苔抬台泰酞太态汰坍摊贪瘫滩坛檀痰潭谭谈坦毯袒碳探叹炭汤塘搪堂棠膛唐糖倘躺淌趟烫掏涛滔绦萄桃逃淘陶讨套特藤腾疼誊梯剔踢锑提题蹄啼体替嚏惕涕剃屉天添填田甜恬舔腆挑条迢眺跳贴铁帖厅听烃汀廷停亭庭挺艇通桐酮瞳同铜彤童桶捅筒统痛偷投头透凸秃突图徒途涂屠土吐兔湍团推颓腿蜕褪退吞屯臀拖托脱鸵陀驮驼椭妥拓唾挖哇蛙洼娃瓦袜歪外豌弯湾玩顽丸烷完碗挽晚皖惋宛婉万腕汪王亡枉网往旺望忘妄威巍微危韦违桅围唯惟为潍维苇萎委伟伪尾纬未蔚味畏胃喂魏位渭谓尉慰卫瘟温蚊文闻纹吻稳紊问嗡翁瓮挝蜗涡窝我斡卧握沃巫呜钨乌污诬屋无芜梧吾吴毋武五捂午舞伍侮坞戊雾晤物勿务悟误昔熙析西硒矽晰嘻吸锡牺稀息希悉膝夕惜熄烯溪汐犀檄袭席习媳喜铣洗系隙戏细瞎虾匣霞辖暇峡侠狭下厦夏吓掀锨先仙鲜纤咸贤衔舷闲涎弦嫌显险现献县腺馅羡宪陷限线相厢镶香箱襄湘乡翔祥详想响享项巷橡像向象萧硝霄削哮嚣销消宵淆晓小孝校肖啸笑效楔些歇蝎鞋协挟携邪斜胁谐写械卸蟹懈泄泻谢屑薪芯锌欣辛新忻心信衅星腥猩惺兴刑型形邢行醒幸杏性姓兄凶胸匈汹雄熊休修羞朽嗅锈秀袖绣墟戌需虚嘘须徐许蓄酗叙旭序畜恤絮婿绪续轩喧宣悬旋玄选癣眩绚靴薛学穴雪血勋熏循旬询寻驯巡殉汛训讯逊迅压押鸦鸭呀丫芽牙蚜崖衙涯雅哑亚讶焉咽阉烟淹盐严研蜒岩延言颜阎炎沿奄掩眼衍演艳堰燕厌砚雁唁彦焰宴谚验殃央鸯秧杨扬佯疡羊洋阳氧仰痒养样漾邀腰妖瑶摇尧遥窑谣姚咬舀药要耀椰噎耶爷野冶也页掖业叶曳腋夜液一壹医揖铱依伊衣颐夷遗移仪胰疑沂宜姨彝椅蚁倚已乙矣以艺抑易邑屹亿役臆逸肄疫亦裔意毅忆义益溢诣议谊译异翼翌绎茵荫因殷音阴姻吟银淫寅饮尹引隐印英樱婴鹰应缨莹萤营荧蝇迎赢盈影颖硬映哟拥佣臃痈庸雍踊蛹咏泳涌永恿勇用幽优悠忧尤由邮铀犹油游酉有友右佑釉诱又幼迂淤于盂榆虞愚舆余俞逾鱼愉渝渔隅予娱雨与屿禹宇语羽玉域芋郁吁遇喻峪御愈欲狱育誉浴寓裕预豫驭鸳渊冤元垣袁原援辕园员圆猿源缘远苑愿怨院曰约越跃钥岳粤月悦阅耘云郧匀陨允运蕴酝晕韵孕匝砸杂栽哉灾宰载再在咱攒暂赞赃脏葬遭糟凿藻枣早澡蚤躁噪造皂灶燥责择则泽贼怎增憎曾赠扎喳渣札轧铡闸眨栅榨咋乍炸诈摘斋宅窄债寨瞻毡詹粘沾盏斩辗崭展蘸栈占战站湛绽樟章彰漳张掌涨杖丈帐账仗胀瘴障招昭找沼赵照罩兆肇召遮折哲蛰辙者锗蔗这浙珍斟真甄砧臻贞针侦枕疹诊震振镇阵蒸挣睁征狰争怔整拯正政帧症郑证芝枝支吱蜘知肢脂汁之织职直植殖执值侄址指止趾只旨纸志挚掷至致置帜峙制智秩稚质炙痔滞治窒中盅忠钟衷终种肿重仲众舟周州洲诌粥轴肘帚咒皱宙昼骤珠株蛛朱猪诸诛逐竹烛煮拄瞩嘱主著柱助蛀贮铸筑住注祝驻抓爪拽专砖转撰赚篆桩庄装妆撞壮状椎锥追赘坠缀谆准捉拙卓桌琢茁酌啄着灼浊兹咨资姿滋淄孜紫仔籽滓子自渍字鬃棕踪宗综总纵邹走奏揍租足卒族祖诅阻组钻纂嘴醉最罪尊遵昨左佐柞做作坐座'
,@fall=N'啊阿埃挨哎唉哀皚癌藹矮艾礙愛隘鞍氨安俺按暗岸胺案肮昂盎凹敖熬翺襖傲奧懊澳芭捌扒叭吧笆八疤巴拔跋靶把耙壩霸罷爸白柏百擺佰敗拜稗斑班搬扳般頒板版扮拌伴瓣半辦絆邦幫梆榜膀綁棒磅蚌鎊傍謗苞胞包褒剝薄雹保堡飽寶抱報暴豹鮑爆杯碑悲卑北輩背貝鋇倍狽備憊焙被奔苯本笨崩繃甭泵蹦迸逼鼻比鄙筆彼碧蓖蔽畢斃毖幣庇痹閉敝弊必辟壁臂避陛鞭邊編貶扁便變卞辨辯辮遍標彪膘表鼈憋別癟彬斌瀕濱賓擯兵冰柄丙秉餅炳病並玻菠播撥缽波博勃搏鉑箔伯帛舶脖膊渤泊駁捕蔔哺補埠不布步簿部怖擦猜裁材才財睬踩采彩菜蔡餐參蠶殘慚慘燦蒼艙倉滄藏操糙槽曹草廁策側冊測層蹭插叉茬茶查碴搽察岔差詫拆柴豺攙摻蟬饞讒纏鏟産闡顫昌猖場嘗常長償腸廠敞暢唱倡超抄鈔朝嘲潮巢吵炒車扯撤掣徹澈郴臣辰塵晨忱沈陳趁襯撐稱城橙成呈乘程懲澄誠承逞騁秤吃癡持匙池遲弛馳恥齒侈尺赤翅斥熾充沖蟲崇寵抽酬疇躊稠愁籌仇綢瞅醜臭初出櫥廚躇鋤雛滁除楚礎儲矗搐觸處揣川穿椽傳船喘串瘡窗幢床闖創吹炊捶錘垂春椿醇唇淳純蠢戳綽疵茨磁雌辭慈瓷詞此刺賜次聰蔥囪匆從叢湊粗醋簇促躥篡竄摧崔催脆瘁粹淬翠村存寸磋撮搓措挫錯搭達答瘩打大呆歹傣戴帶殆代貸袋待逮怠耽擔丹單鄲撣膽旦氮但憚淡誕彈蛋當擋黨蕩檔刀搗蹈倒島禱導到稻悼道盜德得的蹬燈登等瞪凳鄧堤低滴迪敵笛狄滌翟嫡抵底地蒂第帝弟遞締顛掂滇碘點典靛墊電佃甸店惦奠澱殿碉叼雕凋刁掉吊釣調跌爹碟蝶叠諜疊丁盯叮釘頂鼎錠定訂丟東冬董懂動棟侗恫凍洞兜抖鬥陡豆逗痘都督毒犢獨讀堵睹賭杜鍍肚度渡妒端短鍛段斷緞堆兌隊對墩噸蹲敦頓囤鈍盾遁掇哆多奪垛躲朵跺舵剁惰墮蛾峨鵝俄額訛娥惡厄扼遏鄂餓恩而兒耳爾餌洱二貳發罰筏伐乏閥法琺藩帆番翻樊礬釩繁凡煩反返範販犯飯泛坊芳方肪房防妨仿訪紡放菲非啡飛肥匪誹吠肺廢沸費芬酚吩氛分紛墳焚汾粉奮份忿憤糞豐封楓蜂峰鋒風瘋烽逢馮縫諷奉鳳佛否夫敷膚孵扶拂輻幅氟符伏俘服浮涪福袱弗甫撫輔俯釜斧脯腑府腐赴副覆賦複傅付阜父腹負富訃附婦縛咐噶嘎該改概鈣蓋溉幹甘杆柑竿肝趕感稈敢贛岡剛鋼缸肛綱崗港杠篙臯高膏羔糕搞鎬稿告哥歌擱戈鴿胳疙割革葛格蛤閣隔鉻個各給根跟耕更庚羹埂耿梗工攻功恭龔供躬公宮弓鞏汞拱貢共鈎勾溝苟狗垢構購夠辜菇咕箍估沽孤姑鼓古蠱骨谷股故顧固雇刮瓜剮寡挂褂乖拐怪棺關官冠觀管館罐慣灌貫光廣逛瑰規圭矽歸龜閨軌鬼詭癸桂櫃跪貴劊輥滾棍鍋郭國果裹過哈骸孩海氦亥害駭酣憨邯韓含涵寒函喊罕翰撼捍旱憾悍焊汗漢夯杭航壕嚎豪毫郝好耗號浩呵喝荷菏核禾和何合盒貉閡河涸赫褐鶴賀嘿黑痕很狠恨哼亨橫衡恒轟哄烘虹鴻洪宏弘紅喉侯猴吼厚候後呼乎忽瑚壺葫胡蝴狐糊湖弧虎唬護互滬戶花嘩華猾滑畫劃化話槐徊懷淮壞歡環桓還緩換患喚瘓豢煥渙宦幻荒慌黃磺蝗簧皇凰惶煌晃幌恍謊灰揮輝徽恢蛔回毀悔慧卉惠晦賄穢會燴彙諱誨繪葷昏婚魂渾混豁活夥火獲或惑霍貨禍擊圾基機畸稽積箕肌饑迹激譏雞姬績緝吉極棘輯籍集及急疾汲即嫉級擠幾脊己薊技冀季伎祭劑悸濟寄寂計記既忌際妓繼紀嘉枷夾佳家加莢頰賈甲鉀假稼價架駕嫁殲監堅尖箋間煎兼肩艱奸緘繭檢柬堿鹼揀撿簡儉剪減薦檻鑒踐賤見鍵箭件健艦劍餞漸濺澗建僵姜將漿江疆蔣槳獎講匠醬降蕉椒礁焦膠交郊澆驕嬌嚼攪鉸矯僥腳狡角餃繳絞剿教酵轎較叫窖揭接皆稭街階截劫節莖睛晶鯨京驚精粳經井警景頸靜境敬鏡徑痙靖竟競淨炯窘揪究糾玖韭久灸九酒廄救舊臼舅咎就疚鞠拘狙疽居駒菊局咀矩舉沮聚拒據巨具距踞鋸俱句懼炬劇捐鵑娟倦眷卷絹撅攫抉掘倔爵桔傑捷睫竭潔結解姐戒藉芥界借介疥誡屆巾筋斤金今津襟緊錦僅謹進靳晉禁近燼浸盡勁荊兢覺決訣絕均菌鈞軍君峻俊竣浚郡駿喀咖卡咯開揩楷凱慨刊堪勘坎砍看康慷糠扛抗亢炕考拷烤靠坷苛柯棵磕顆科殼咳可渴克刻客課肯啃墾懇坑吭空恐孔控摳口扣寇枯哭窟苦酷庫褲誇垮挎跨胯塊筷儈快寬款匡筐狂框礦眶曠況虧盔巋窺葵奎魁傀饋愧潰坤昆捆困括擴廓闊垃拉喇蠟臘辣啦萊來賴藍婪欄攔籃闌蘭瀾讕攬覽懶纜爛濫琅榔狼廊郎朗浪撈勞牢老佬姥酪烙澇勒樂雷鐳蕾磊累儡壘擂肋類淚棱楞冷厘梨犁黎籬狸離漓理李裏鯉禮莉荔吏栗麗厲勵礫曆利傈例俐痢立粒瀝隸力璃哩倆聯蓮連鐮廉憐漣簾斂臉鏈戀煉練糧涼梁粱良兩輛量晾亮諒撩聊僚療燎寥遼潦了撂鐐廖料列裂烈劣獵琳林磷霖臨鄰鱗淋凜賃吝拎玲菱零齡鈴伶羚淩靈陵嶺領另令溜琉榴硫餾留劉瘤流柳六龍聾嚨籠窿隆壟攏隴樓婁摟簍漏陋蘆盧顱廬爐擄鹵虜魯麓碌露路賂鹿潞祿錄陸戮驢呂鋁侶旅履屢縷慮氯律率濾綠巒攣孿灤卵亂掠略掄輪倫侖淪綸論蘿螺羅邏鑼籮騾裸落洛駱絡媽麻瑪碼螞馬罵嘛嗎埋買麥賣邁脈瞞饅蠻滿蔓曼慢漫謾芒茫盲氓忙莽貓茅錨毛矛鉚卯茂冒帽貌貿麽玫枚梅酶黴煤沒眉媒鎂每美昧寐妹媚門悶們萌蒙檬盟錳猛夢孟眯醚靡糜迷謎彌米秘覓泌蜜密冪棉眠綿冕免勉娩緬面苗描瞄藐秒渺廟妙蔑滅民抿皿敏憫閩明螟鳴銘名命謬摸摹蘑模膜磨摩魔抹末莫墨默沫漠寞陌謀牟某拇牡畝姆母墓暮幕募慕木目睦牧穆拿哪呐鈉那娜納氖乃奶耐奈南男難囊撓腦惱鬧淖呢餒內嫩能妮霓倪泥尼擬你匿膩逆溺蔫拈年碾攆撚念娘釀鳥尿捏聶孽齧鑷鎳涅您檸獰凝甯擰濘牛扭鈕紐膿濃農弄奴努怒女暖虐瘧挪懦糯諾哦歐鷗毆藕嘔偶漚啪趴爬帕怕琶拍排牌徘湃派攀潘盤磐盼畔判叛乓龐旁耪胖抛咆刨炮袍跑泡呸胚培裴賠陪配佩沛噴盆砰抨烹澎彭蓬棚硼篷膨朋鵬捧碰坯砒霹批披劈琵毗啤脾疲皮匹痞僻屁譬篇偏片騙飄漂瓢票撇瞥拼頻貧品聘乒坪蘋萍平憑瓶評屏坡潑頗婆破魄迫粕剖撲鋪仆莆葡菩蒲埔樸圃普浦譜曝瀑期欺棲戚妻七淒漆柒沏其棋奇歧畦崎臍齊旗祈祁騎起豈乞企啓契砌器氣迄棄汽泣訖掐洽牽扡釺鉛千遷簽仟謙乾黔錢鉗前潛遣淺譴塹嵌欠歉槍嗆腔羌牆薔強搶橇鍬敲悄橋瞧喬僑巧鞘撬翹峭俏竅切茄且怯竊欽侵親秦琴勤芹擒禽寢沁青輕氫傾卿清擎晴氰情頃請慶瓊窮秋丘邱球求囚酋泅趨區蛆曲軀屈驅渠取娶齲趣去圈顴權醛泉全痊拳犬券勸缺炔瘸卻鵲榷確雀裙群然燃冉染瓤壤攘嚷讓饒擾繞惹熱壬仁人忍韌任認刃妊紉扔仍日戎茸蓉榮融熔溶容絨冗揉柔肉茹蠕儒孺如辱乳汝入褥軟阮蕊瑞銳閏潤若弱撒灑薩腮鰓塞賽三三傘散桑嗓喪搔騷掃嫂瑟色澀森僧莎砂殺刹沙紗傻啥煞篩曬珊苫杉山刪煽衫閃陝擅贍膳善汕扇繕墒傷商賞晌上尚裳梢捎稍燒芍勺韶少哨邵紹奢賒蛇舌舍赦攝射懾涉社設砷申呻伸身深娠紳神沈審嬸甚腎慎滲聲生甥牲升繩省盛剩勝聖師失獅施濕詩屍虱十石拾時什食蝕實識史矢使屎駛始式示士世柿事拭誓逝勢是嗜噬適仕侍釋飾氏市恃室視試收手首守壽授售受瘦獸蔬樞梳殊抒輸叔舒淑疏書贖孰熟薯暑曙署蜀黍鼠屬術述樹束戍豎墅庶數漱恕刷耍摔衰甩帥栓拴霜雙爽誰水睡稅吮瞬順舜說碩朔爍斯撕嘶思私司絲死肆寺嗣四伺似飼巳松聳慫頌送宋訟誦搜艘擻嗽蘇酥俗素速粟僳塑溯宿訴肅酸蒜算雖隋隨綏髓碎歲穗遂隧祟孫損筍蓑梭唆縮瑣索鎖所塌他它她塔獺撻蹋踏胎苔擡台泰酞太態汰坍攤貪癱灘壇檀痰潭譚談坦毯袒碳探歎炭湯塘搪堂棠膛唐糖倘躺淌趟燙掏濤滔縧萄桃逃淘陶討套特藤騰疼謄梯剔踢銻提題蹄啼體替嚏惕涕剃屜天添填田甜恬舔腆挑條迢眺跳貼鐵帖廳聽烴汀廷停亭庭挺艇通桐酮瞳同銅彤童桶捅筒統痛偷投頭透凸禿突圖徒途塗屠土吐兔湍團推頹腿蛻褪退吞屯臀拖托脫鴕陀馱駝橢妥拓唾挖哇蛙窪娃瓦襪歪外豌彎灣玩頑丸烷完碗挽晚皖惋宛婉萬腕汪王亡枉網往旺望忘妄威巍微危韋違桅圍唯惟爲濰維葦萎委偉僞尾緯未蔚味畏胃喂魏位渭謂尉慰衛瘟溫蚊文聞紋吻穩紊問嗡翁甕撾蝸渦窩我斡臥握沃巫嗚鎢烏汙誣屋無蕪梧吾吳毋武五捂午舞伍侮塢戊霧晤物勿務悟誤昔熙析西硒矽晰嘻吸錫犧稀息希悉膝夕惜熄烯溪汐犀檄襲席習媳喜銑洗系隙戲細瞎蝦匣霞轄暇峽俠狹下廈夏嚇掀鍁先仙鮮纖鹹賢銜舷閑涎弦嫌顯險現獻縣腺餡羨憲陷限線相廂鑲香箱襄湘鄉翔祥詳想響享項巷橡像向象蕭硝霄削哮囂銷消宵淆曉小孝校肖嘯笑效楔些歇蠍鞋協挾攜邪斜脅諧寫械卸蟹懈泄瀉謝屑薪芯鋅欣辛新忻心信釁星腥猩惺興刑型形邢行醒幸杏性姓兄凶胸匈洶雄熊休修羞朽嗅鏽秀袖繡墟戌需虛噓須徐許蓄酗敘旭序畜恤絮婿緒續軒喧宣懸旋玄選癬眩絢靴薛學穴雪血勳熏循旬詢尋馴巡殉汛訓訊遜迅壓押鴉鴨呀丫芽牙蚜崖衙涯雅啞亞訝焉咽閹煙淹鹽嚴研蜒岩延言顔閻炎沿奄掩眼衍演豔堰燕厭硯雁唁彥焰宴諺驗殃央鴦秧楊揚佯瘍羊洋陽氧仰癢養樣漾邀腰妖瑤搖堯遙窯謠姚咬舀藥要耀椰噎耶爺野冶也頁掖業葉曳腋夜液一壹醫揖銥依伊衣頤夷遺移儀胰疑沂宜姨彜椅蟻倚已乙矣以藝抑易邑屹億役臆逸肄疫亦裔意毅憶義益溢詣議誼譯異翼翌繹茵蔭因殷音陰姻吟銀淫寅飲尹引隱印英櫻嬰鷹應纓瑩螢營熒蠅迎贏盈影穎硬映喲擁傭臃癰庸雍踴蛹詠泳湧永恿勇用幽優悠憂尤由郵鈾猶油遊酉有友右佑釉誘又幼迂淤于盂榆虞愚輿余俞逾魚愉渝漁隅予娛雨與嶼禹宇語羽玉域芋郁籲遇喻峪禦愈欲獄育譽浴寓裕預豫馭鴛淵冤元垣袁原援轅園員圓猿源緣遠苑願怨院曰約越躍鑰嶽粵月悅閱耘雲鄖勻隕允運蘊醞暈韻孕匝砸雜栽哉災宰載再在咱攢暫贊贓髒葬遭糟鑿藻棗早澡蚤躁噪造皂竈燥責擇則澤賊怎增憎曾贈紮喳渣劄軋鍘閘眨柵榨咋乍炸詐摘齋宅窄債寨瞻氈詹粘沾盞斬輾嶄展蘸棧占戰站湛綻樟章彰漳張掌漲杖丈帳賬仗脹瘴障招昭找沼趙照罩兆肇召遮折哲蟄轍者鍺蔗這浙珍斟真甄砧臻貞針偵枕疹診震振鎮陣蒸掙睜征猙爭怔整拯正政幀症鄭證芝枝支吱蜘知肢脂汁之織職直植殖執值侄址指止趾只旨紙志摯擲至致置幟峙制智秩稚質炙痔滯治窒中盅忠鍾衷終種腫重仲衆舟周州洲謅粥軸肘帚咒皺宙晝驟珠株蛛朱豬諸誅逐竹燭煮拄矚囑主著柱助蛀貯鑄築住注祝駐抓爪拽專磚轉撰賺篆樁莊裝妝撞壯狀椎錐追贅墜綴諄准捉拙卓桌琢茁酌啄著灼濁茲咨資姿滋淄孜紫仔籽滓子自漬字鬃棕蹤宗綜總縱鄒走奏揍租足卒族祖詛阻組鑽纂嘴醉最罪尊遵昨左佐柞做作坐座'
declare @j nvarchar(max),@f nvarchar(max)
select @j=N'皑蔼碍爱翱袄奥坝罢摆败颁办绊帮绑镑谤剥饱宝报鲍辈贝钡狈备惫绷笔毕毙币闭边编贬变辩辫标鳖别瘪濒滨宾摈饼并拨钵铂驳卜补财参蚕残惭惨灿苍舱仓沧厕侧册测层诧搀掺蝉馋谗缠铲产阐颤场尝长偿肠厂畅钞车彻尘沉陈衬撑称惩诚骋痴迟驰耻齿炽冲虫宠畴踌筹绸丑橱厨锄雏础储触处传疮闯创锤纯绰辞词赐聪葱囱从丛凑蹿窜错达带贷担单郸掸胆惮诞弹当挡党荡档捣岛祷导盗灯邓敌涤递缔颠点垫电淀钓调迭谍叠钉顶锭订丢东动栋冻斗犊独读赌镀锻断缎兑队对吨顿钝夺堕鹅额讹恶饿儿尔饵贰发罚阀珐矾钒烦范贩饭访纺飞诽废费纷坟奋愤粪丰枫锋风疯冯缝讽凤肤辐抚辅赋复负讣妇缚该钙盖干赶秆赣冈刚钢纲岗皋镐搁鸽阁铬个给龚宫巩贡钩沟构购够蛊顾剐关观馆惯贯广规硅归龟闺轨诡柜贵刽辊滚锅国过骇韩汉号阂鹤贺横轰鸿红后壶护沪户哗华画划话怀坏欢环还缓换唤痪焕涣黄谎挥辉毁贿秽会烩汇讳诲绘荤浑伙获货祸击机积饥讥鸡绩缉极辑级挤几蓟剂济计记际继纪夹荚颊贾钾价驾歼监坚笺间艰缄茧检碱硷拣捡简俭减荐槛鉴践贱见键舰剑饯渐溅涧将浆蒋桨奖讲酱胶浇骄娇搅铰矫侥脚饺缴绞轿较秸阶节茎鲸惊经颈静镜径痉竞净纠厩旧驹举据锯惧剧鹃绢杰洁结诫届紧锦仅谨进晋烬尽劲荆觉决诀绝钧军骏开凯颗壳课垦恳抠库裤夸块侩宽矿旷况亏岿窥馈溃扩阔蜡腊莱来赖蓝栏拦篮阑兰澜谰揽览懒缆烂滥捞劳涝乐镭垒类泪篱离里鲤礼丽厉励砾历沥隶俩联莲连镰怜涟帘敛脸链恋炼练粮凉两辆谅疗辽镣猎临邻鳞凛赁龄铃凌灵岭领馏刘龙聋咙笼垄拢陇楼娄搂篓芦卢颅庐炉掳卤虏鲁赂禄录陆驴吕铝侣屡缕虑滤绿峦挛孪滦乱抡轮伦仑沦纶论萝罗逻锣箩骡骆络妈玛码蚂马骂吗买麦卖迈脉瞒馒蛮满谩猫锚铆贸么霉没镁门闷们锰梦谜弥觅幂绵缅庙灭悯闽鸣铭谬谋亩钠纳难挠脑恼闹馁内拟腻撵捻酿鸟聂啮镊镍柠狞宁拧泞钮纽脓浓农疟诺欧鸥殴呕沤盘庞赔喷鹏骗飘频贫苹凭评泼颇扑铺朴谱栖凄脐齐骑岂启气弃讫牵扦钎铅迁签谦钱钳潜浅谴堑枪呛墙蔷强抢锹桥乔侨翘窍窃钦亲寝轻氢倾顷请庆琼穷趋区躯驱龋颧权劝却鹊确让饶扰绕热韧认纫荣绒软锐闰润洒萨鳃赛叁伞丧骚扫涩杀纱筛晒删闪陕赡缮伤赏烧绍赊摄慑设绅审婶肾渗声绳胜圣师狮湿诗尸时蚀实识驶势适释饰视试寿兽枢输书赎属术树竖数帅双谁税顺说硕烁丝饲耸怂颂讼诵擞苏诉肃虽随绥岁孙损笋缩琐锁獭挞抬态摊贪瘫滩坛谭谈叹汤烫涛绦讨腾誊锑题体屉条贴铁厅听烃铜统头秃图涂团颓蜕脱鸵驮驼椭洼袜弯湾顽万网韦违围为潍维苇伟伪纬谓卫温闻纹稳问瓮挝蜗涡窝卧呜钨乌污诬无芜吴坞雾务误锡牺袭习铣戏细虾辖峡侠狭厦吓锨鲜纤咸贤衔闲显险现献县馅羡宪线厢镶乡详响项萧嚣销晓啸蝎协挟携胁谐写泻谢锌衅兴汹锈绣虚嘘须许叙绪续轩悬选癣绚学勋询寻驯训讯逊压鸦鸭哑亚讶阉烟盐严颜阎艳厌砚彦谚验鸯杨扬疡阳痒养样瑶摇尧遥窑谣药爷页业叶医铱颐遗仪彝蚁艺亿忆义诣议谊译异绎荫阴银饮隐樱婴鹰应缨莹萤营荧蝇赢颖哟拥佣痈踊咏涌优忧邮铀犹游诱舆鱼渔娱与屿语吁御狱誉预驭鸳渊辕园员圆缘远愿约跃钥岳粤悦阅云郧匀陨运蕴酝晕韵杂灾载攒暂赞赃脏凿枣灶责择则泽贼赠扎札轧铡闸栅诈斋债毡盏斩辗崭栈战绽张涨帐账胀赵蛰辙锗这贞针侦诊镇阵挣睁狰争帧郑证织职执纸挚掷帜质滞钟终种肿众诌轴皱昼骤猪诸诛烛瞩嘱贮铸筑驻专砖转赚桩庄装妆壮状锥赘坠缀谆着浊兹资渍踪综总纵邹诅组钻'
,@f='皚藹礙愛翺襖奧壩罷擺敗頒辦絆幫綁鎊謗剝飽寶報鮑輩貝鋇狽備憊繃筆畢斃幣閉邊編貶變辯辮標鼈別癟瀕濱賓擯餅並撥缽鉑駁蔔補財參蠶殘慚慘燦蒼艙倉滄廁側冊測層詫攙摻蟬饞讒纏鏟産闡顫場嘗長償腸廠暢鈔車徹塵沈陳襯撐稱懲誠騁癡遲馳恥齒熾沖蟲寵疇躊籌綢醜櫥廚鋤雛礎儲觸處傳瘡闖創錘純綽辭詞賜聰蔥囪從叢湊躥竄錯達帶貸擔單鄲撣膽憚誕彈當擋黨蕩檔搗島禱導盜燈鄧敵滌遞締顛點墊電澱釣調叠諜疊釘頂錠訂丟東動棟凍鬥犢獨讀賭鍍鍛斷緞兌隊對噸頓鈍奪墮鵝額訛惡餓兒爾餌貳發罰閥琺礬釩煩範販飯訪紡飛誹廢費紛墳奮憤糞豐楓鋒風瘋馮縫諷鳳膚輻撫輔賦複負訃婦縛該鈣蓋幹趕稈贛岡剛鋼綱崗臯鎬擱鴿閣鉻個給龔宮鞏貢鈎溝構購夠蠱顧剮關觀館慣貫廣規矽歸龜閨軌詭櫃貴劊輥滾鍋國過駭韓漢號閡鶴賀橫轟鴻紅後壺護滬戶嘩華畫劃話懷壞歡環還緩換喚瘓煥渙黃謊揮輝毀賄穢會燴彙諱誨繪葷渾夥獲貨禍擊機積饑譏雞績緝極輯級擠幾薊劑濟計記際繼紀夾莢頰賈鉀價駕殲監堅箋間艱緘繭檢堿鹼揀撿簡儉減薦檻鑒踐賤見鍵艦劍餞漸濺澗將漿蔣槳獎講醬膠澆驕嬌攪鉸矯僥腳餃繳絞轎較稭階節莖鯨驚經頸靜鏡徑痙競淨糾廄舊駒舉據鋸懼劇鵑絹傑潔結誡屆緊錦僅謹進晉燼盡勁荊覺決訣絕鈞軍駿開凱顆殼課墾懇摳庫褲誇塊儈寬礦曠況虧巋窺饋潰擴闊蠟臘萊來賴藍欄攔籃闌蘭瀾讕攬覽懶纜爛濫撈勞澇樂鐳壘類淚籬離裏鯉禮麗厲勵礫曆瀝隸倆聯蓮連鐮憐漣簾斂臉鏈戀煉練糧涼兩輛諒療遼鐐獵臨鄰鱗凜賃齡鈴淩靈嶺領餾劉龍聾嚨籠壟攏隴樓婁摟簍蘆盧顱廬爐擄鹵虜魯賂祿錄陸驢呂鋁侶屢縷慮濾綠巒攣孿灤亂掄輪倫侖淪綸論蘿羅邏鑼籮騾駱絡媽瑪碼螞馬罵嗎買麥賣邁脈瞞饅蠻滿謾貓錨鉚貿麽黴沒鎂門悶們錳夢謎彌覓冪綿緬廟滅憫閩鳴銘謬謀畝鈉納難撓腦惱鬧餒內擬膩攆撚釀鳥聶齧鑷鎳檸獰甯擰濘鈕紐膿濃農瘧諾歐鷗毆嘔漚盤龐賠噴鵬騙飄頻貧蘋憑評潑頗撲鋪樸譜棲淒臍齊騎豈啓氣棄訖牽扡釺鉛遷簽謙錢鉗潛淺譴塹槍嗆牆薔強搶鍬橋喬僑翹竅竊欽親寢輕氫傾頃請慶瓊窮趨區軀驅齲顴權勸卻鵲確讓饒擾繞熱韌認紉榮絨軟銳閏潤灑薩鰓賽三傘喪騷掃澀殺紗篩曬刪閃陝贍繕傷賞燒紹賒攝懾設紳審嬸腎滲聲繩勝聖師獅濕詩屍時蝕實識駛勢適釋飾視試壽獸樞輸書贖屬術樹豎數帥雙誰稅順說碩爍絲飼聳慫頌訟誦擻蘇訴肅雖隨綏歲孫損筍縮瑣鎖獺撻擡態攤貪癱灘壇譚談歎湯燙濤縧討騰謄銻題體屜條貼鐵廳聽烴銅統頭禿圖塗團頹蛻脫鴕馱駝橢窪襪彎灣頑萬網韋違圍爲濰維葦偉僞緯謂衛溫聞紋穩問甕撾蝸渦窩臥嗚鎢烏汙誣無蕪吳塢霧務誤錫犧襲習銑戲細蝦轄峽俠狹廈嚇鍁鮮纖鹹賢銜閑顯險現獻縣餡羨憲線廂鑲鄉詳響項蕭囂銷曉嘯蠍協挾攜脅諧寫瀉謝鋅釁興洶鏽繡虛噓須許敘緒續軒懸選癬絢學勳詢尋馴訓訊遜壓鴉鴨啞亞訝閹煙鹽嚴顔閻豔厭硯彥諺驗鴦楊揚瘍陽癢養樣瑤搖堯遙窯謠藥爺頁業葉醫銥頤遺儀彜蟻藝億憶義詣議誼譯異繹蔭陰銀飲隱櫻嬰鷹應纓瑩螢營熒蠅贏穎喲擁傭癰踴詠湧優憂郵鈾猶遊誘輿魚漁娛與嶼語籲禦獄譽預馭鴛淵轅園員圓緣遠願約躍鑰嶽粵悅閱雲鄖勻隕運蘊醞暈韻雜災載攢暫贊贓髒鑿棗竈責擇則澤賊贈紮劄軋鍘閘柵詐齋債氈盞斬輾嶄棧戰綻張漲帳賬脹趙蟄轍鍺這貞針偵診鎮陣掙睜猙爭幀鄭證織職執紙摯擲幟質滯鍾終種腫衆謅軸皺晝驟豬諸誅燭矚囑貯鑄築駐專磚轉賺樁莊裝妝壯狀錐贅墜綴諄著濁茲資漬蹤綜總縱鄒詛組鑽'
IF NOT OBJECT_ID('[dbo].[codetable]') IS NULL Drop table codetable
create table codetable(gb nvarchar(1),big nvarchar(1))
select top 5298 id=identity(int,1,1) into #t from syscolumns a,syscolumns b
insert codetable
select substring(@jall,id,1),substring(@fall,id,1)
from #t
where id<=len(@jall)
drop table #t
go
/*--简繁转换函数
利用编码对照表,实现简体-->繁体,繁体-->简体的转换
注意,转换函数使用的是unicode编码
--邹建2004.07--*/
IF NOT OBJECT_ID('[dbo].[f_簡繁轉換]') IS NULL
DROP FUNCTION [dbo].f_簡繁轉換
GO
CREATE FUNCTION f_簡繁轉換(
@str nvarchar(4000), --要转换的字符串
@toBIG bit --转换标志,为,表示GB-->BIG,否则是BIG-->GB
)RETURNS nvarchar(4000)
AS
BEGIN
IF @toBIG=1
SELECT @str=REPLACE(@str,gb,big)
FROM codetable
WHERE CHARINDEX(gb,@str)>0
ELSE
SELECT @str=replace(@str,big,gb)
FROM codetable
WHERE charindex(big,@str)>0
RETURN(@str)
END
GO
--EX
select [dbo].[f_簡繁轉換](N'简繁转换函数',1) --簡轉繁
select [dbo].[f_簡繁轉換](N'簡繁轉換函數',0) --繁轉簡
\ No newline at end of file
--alter FUNCTION [dbo].efn_GetExecSql_Table(@sql_string VARCHAR(max) )
--RETURNS @TABLE TABLE (cur_EmpName VARCHAR(30) )
--AS
--BEGIN
-- --@p_Case_Type varchar(1) --ץO(P=MQ, T=Ӽ, C=v)
-- INSERT INTO @TABLE
-- Select cur_EmpName from evw_Employee
-- RETURN
--END
select cur_EmpName into #tempt from evw_Employee
truncate table #tempt
declare @sql nvarchar(max)='Select cur_EmpName from evw_Employee'
insert into #tempt
EXEC SP_EXECUTESQL @sql;
select a.* from p_agency_list a
inner join p_case_info b on a.obj_id=b.case_id
where b.case_volume ='TP161143-EU'
where case_volume_agency like '%P406550EP/JAR%'
\ No newline at end of file
BUSE [IPEasy_test_bk] BUSE [IPEasy_test_bk]
USE [IPEasy_test]
GO
/****** Object: View [dbo].[evw_esn_todos] Script Date: 2021/11/16 下午 05:40:29 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER VIEW [dbo].[evw_esn_todos]
AS
SELECT a.sn, a.proc_id, a.SubSeq, a.CaseType, a.CaseType_Name, a.CaseNo, a.TaskDescription, a.StartDate2, a.StartDate2_c10,
a.LegalDueDate_c10, a.AttorneyDueDate, a.AttorneyDueDate_c10, a.FinishedDate, a.FinishedDate_c10,
a.AssignedTo_userid, a.AssignedTo, a.AssignedTo_Name, a.Points, CASE WHEN (ISNULL(points, 0) <> 0 AND
ISNULL(PointsType, '') <> 'MP') AND ISNULL(exchangeRate, 0) = 0 THEN 1 ELSE ISNULL(exchangeRate, 0)
END AS exchangeRate, a.Matter, a.Matter_Name, a.PatentType, a.PatentType_Name, a.ToDosStatus_Name,
a.AssignStatus, a.AssignStatus_name, a.Memo, a.case_id, a.date_points_settlement, a.LegalDueDate, a.ToDosStatus,
a.PointsType, a.CustDueDate, a.TaskClass_id, b.Names AS ecNames, b.FlowKey AS ecFlowKey,
case when isnull(eb.bcName,'')='' then '點數' else eb.bcName end as bcName
FROM dbo.esn_Todos AS a LEFT OUTER JOIN
dbo.esn_category AS b ON b.ParentId = 'subtodos' AND a.TaskClass_id = b.FlowKey
left join esn_BaseCode eb on eb.SubID=a.PointsType and eb.ParentID='pointstype'
WHERE (a.active = 1)
GO
USE [IPEasy]
GO
/****** Object: View [dbo].[evw_qresult_caseispriority] Script Date: 2020/1/10 上午 10:32:32 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/* questionID=11503=案件編號 */
CREATE VIEW [dbo].[evw_qresult_caseispriority]
AS
SELECT b.text AS CaseNo, CASE WHEN ISNULL(v2.Name, '') = '是' THEN 'Y' ELSE 'N' END AS IsPriority, ISNULL(v2.Name, '')
AS IsPriorityDesc
FROM dbo.q_result AS a INNER JOIN
dbo.q_result_text AS b ON a.answerID = b.id INNER JOIN
dbo.q_result AS qr2 ON qr2.active = 1 AND qr2.targetID = a.targetID AND qr2.targetType = a.targetType AND
qr2.questionID IN (1532759) INNER JOIN
dbo.q_namespace AS v2 ON v2.ID = qr2.answerID
WHERE (a.active = 1) AND (a.QrID = 243) AND (a.questionID IN (11503))
GO
EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPane1', @value=N'[0E232FF0-B466-11cf-A24F-00AA00A3EFFF, 1.00]
Begin DesignProperties =
Begin PaneConfigurations =
Begin PaneConfiguration = 0
NumPanes = 4
Configuration = "(H (1[40] 4[20] 2[20] 3) )"
End
Begin PaneConfiguration = 1
NumPanes = 3
Configuration = "(H (1 [50] 4 [25] 3))"
End
Begin PaneConfiguration = 2
NumPanes = 3
Configuration = "(H (1 [50] 2 [25] 3))"
End
Begin PaneConfiguration = 3
NumPanes = 3
Configuration = "(H (4 [30] 2 [40] 3))"
End
Begin PaneConfiguration = 4
NumPanes = 2
Configuration = "(H (1 [56] 3))"
End
Begin PaneConfiguration = 5
NumPanes = 2
Configuration = "(H (2 [66] 3))"
End
Begin PaneConfiguration = 6
NumPanes = 2
Configuration = "(H (4 [50] 3))"
End
Begin PaneConfiguration = 7
NumPanes = 1
Configuration = "(V (3))"
End
Begin PaneConfiguration = 8
NumPanes = 3
Configuration = "(H (1[56] 4[18] 2) )"
End
Begin PaneConfiguration = 9
NumPanes = 2
Configuration = "(H (1 [75] 4))"
End
Begin PaneConfiguration = 10
NumPanes = 2
Configuration = "(H (1[66] 2) )"
End
Begin PaneConfiguration = 11
NumPanes = 2
Configuration = "(H (4 [60] 2))"
End
Begin PaneConfiguration = 12
NumPanes = 1
Configuration = "(H (1) )"
End
Begin PaneConfiguration = 13
NumPanes = 1
Configuration = "(V (4))"
End
Begin PaneConfiguration = 14
NumPanes = 1
Configuration = "(V (2))"
End
ActivePaneConfig = 0
End
Begin DiagramPane =
Begin Origin =
Top = 0
Left = 0
End
Begin Tables =
Begin Table = "a"
Begin Extent =
Top = 6
Left = 38
Bottom = 136
Right = 259
End
DisplayFlags = 280
TopColumn = 0
End
Begin Table = "b"
Begin Extent =
Top = 6
Left = 297
Bottom = 119
Right = 462
End
DisplayFlags = 280
TopColumn = 0
End
Begin Table = "qr2"
Begin Extent =
Top = 6
Left = 500
Bottom = 136
Right = 721
End
DisplayFlags = 280
TopColumn = 0
End
Begin Table = "v2"
Begin Extent =
Top = 6
Left = 759
Bottom = 136
Right = 924
End
DisplayFlags = 280
TopColumn = 0
End
End
End
Begin SQLPane =
End
Begin DataPane =
Begin ParameterDefaults = ""
End
End
Begin CriteriaPane =
Begin ColumnWidths = 11
Column = 1440
Alias = 900
Table = 1170
Output = 720
Append = 1400
NewValue = 1170
SortType = 1350
SortOrder = 1410
GroupBy = 1350
Filter = 1350
Or = 1350
Or = 1350
Or = 1350
End
End
End
' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'VIEW',@level1name=N'evw_qresult_caseispriority'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPaneCount', @value=1 , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'VIEW',@level1name=N'evw_qresult_caseispriority'
GO
USE [IPEasy]
GO
/****** Object: View [dbo].[evw_qresult_caselevel] Script Date: 2020/1/10 上午 10:32:41 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/* questionID=11503=案件編號 */
CREATE VIEW [dbo].[evw_qresult_caselevel]
AS
SELECT b.text AS CaseNo, CASE ISNULL(v2.Name, '')
WHEN '重要專利' THEN '1' WHEN '常規專利' THEN '2' ELSE '' END AS CaseLevel, ISNULL(v2.Name, '')
AS CaseLevelDesc
FROM dbo.q_result AS a INNER JOIN
dbo.q_result_text AS b ON a.answerID = b.id INNER JOIN
dbo.q_result AS qr2 ON qr2.active = 1 AND qr2.targetID = a.targetID AND qr2.targetType = a.targetType AND
qr2.questionID IN (11369) INNER JOIN
dbo.q_namespace AS v2 ON v2.ID = qr2.answerID
WHERE (a.active = 1) AND (a.QrID = 243) AND (a.questionID IN (11503))
GO
EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPane1', @value=N'[0E232FF0-B466-11cf-A24F-00AA00A3EFFF, 1.00]
Begin DesignProperties =
Begin PaneConfigurations =
Begin PaneConfiguration = 0
NumPanes = 4
Configuration = "(H (1[40] 4[20] 2[20] 3) )"
End
Begin PaneConfiguration = 1
NumPanes = 3
Configuration = "(H (1 [50] 4 [25] 3))"
End
Begin PaneConfiguration = 2
NumPanes = 3
Configuration = "(H (1 [50] 2 [25] 3))"
End
Begin PaneConfiguration = 3
NumPanes = 3
Configuration = "(H (4 [30] 2 [40] 3))"
End
Begin PaneConfiguration = 4
NumPanes = 2
Configuration = "(H (1 [56] 3))"
End
Begin PaneConfiguration = 5
NumPanes = 2
Configuration = "(H (2 [66] 3))"
End
Begin PaneConfiguration = 6
NumPanes = 2
Configuration = "(H (4 [50] 3))"
End
Begin PaneConfiguration = 7
NumPanes = 1
Configuration = "(V (3))"
End
Begin PaneConfiguration = 8
NumPanes = 3
Configuration = "(H (1[56] 4[18] 2) )"
End
Begin PaneConfiguration = 9
NumPanes = 2
Configuration = "(H (1 [75] 4))"
End
Begin PaneConfiguration = 10
NumPanes = 2
Configuration = "(H (1[66] 2) )"
End
Begin PaneConfiguration = 11
NumPanes = 2
Configuration = "(H (4 [60] 2))"
End
Begin PaneConfiguration = 12
NumPanes = 1
Configuration = "(H (1) )"
End
Begin PaneConfiguration = 13
NumPanes = 1
Configuration = "(V (4))"
End
Begin PaneConfiguration = 14
NumPanes = 1
Configuration = "(V (2))"
End
ActivePaneConfig = 0
End
Begin DiagramPane =
Begin Origin =
Top = 0
Left = 0
End
Begin Tables =
Begin Table = "a"
Begin Extent =
Top = 6
Left = 38
Bottom = 136
Right = 259
End
DisplayFlags = 280
TopColumn = 0
End
Begin Table = "b"
Begin Extent =
Top = 6
Left = 297
Bottom = 119
Right = 462
End
DisplayFlags = 280
TopColumn = 0
End
Begin Table = "qr2"
Begin Extent =
Top = 6
Left = 500
Bottom = 136
Right = 721
End
DisplayFlags = 280
TopColumn = 0
End
Begin Table = "v2"
Begin Extent =
Top = 6
Left = 759
Bottom = 136
Right = 924
End
DisplayFlags = 280
TopColumn = 0
End
End
End
Begin SQLPane =
End
Begin DataPane =
Begin ParameterDefaults = ""
End
Begin ColumnWidths = 9
Width = 284
Width = 1500
Width = 1500
Width = 1500
Width = 1500
Width = 1500
Width = 1500
Width = 1500
Width = 1500
End
End
Begin CriteriaPane =
Begin ColumnWidths = 11
Column = 1440
Alias = 900
Table = 1170
Output = 720
Append = 1400
NewValue = 1170
SortType = 1350
SortOrder = 1410
GroupBy = 1350
Filter = 1350
Or = 1350
Or = 1350
Or = 1350
End
End
End
' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'VIEW',@level1name=N'evw_qresult_caselevel'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPaneCount', @value=1 , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'VIEW',@level1name=N'evw_qresult_caselevel'
GO
USE [IPEasy]
GO
/****** Object: View [dbo].[evw_s_user_info] Script Date: 2020/1/2 ¤U¤È 06:03:12 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--DROP VIEW dbo.evw_s_user_info;
CREATE VIEW [dbo].[evw_s_user_info]
AS
--­û¤u¸ê®Æ
SELECT a.user_id, a.user_type, a.user_name, a.cn_name, a.en_name, a.user_pass, a.first_name, a.last_name, a.user_code, a.gender, a.email, a.birthday, a.specialty,
a.rank_id, dbo.efn_GetIDName(a.rank_id,'rank_id','') as rank_zh_tw, a.tel, a.mobile, a.fax, a.contact_address, a.dept_id, b1.dept_name, b1.dept_full_name, a.agent_id, dbo.efn_GetIDName(a.agent_id,'agent_id','') as agent_name_cn,
a.is_enabled, a.language, a.create_user_id, dbo.efn_GetIDName(a.create_user_id,'user_id','') as create_user_name, a.create_time, a.update_user_id, dbo.efn_GetIDName(a.update_user_id,'user_id','') as update_user_name, a.update_time,
a.remark, a.work_site, a.is_outer_user, a.revise_user, a.pwd_update_time, a.position_id, a.id_number, a.hiredate, a.post_status, a.fav_cols, a.ts_customer_id, a.auth_case_user, a.wx_name, a.wx_openid, a.err_pwdtimes
FROM s_user_info a
LEFT join s_dept_info b1 on a.dept_id = b1.dept_id
GO
B Alter PROCEDURE [dbo].[rpt_CustCaseTot] ( B Alter PROCEDURE [dbo].[rpt_CustCaseTot] (

alter PROCEDURE rpt_CustCaseTot_KPI(
@p_sY varchar(4), -- 年度
@p_RptType varchar(10), -- 報表類別 RptType=byCS 申請人 , byItem 項目
@p_CustName nvarchar(100) -- 客戶名稱
)
AS
BEGIN
-- 華星委案量統計表
Declare @p_StartDate varchar(20),@p_EndDate varchar(20);
--set @p_CustName=p_CustName;
set @p_StartDate=@p_sY+'-01-01';
set @p_EndDate=@p_sY+'-12-31';
-- select @p_StartDate as StartDate, @p_EndDate as EndDate;
-- 取得「客戶名稱」的 recordset
SELECT ID as ItemNo,replace(replace(value, char(13),''), char(10),'') as ItemDesc into #tb_Split2
FROM [dbo].[ufn_split](@p_CustName, ';') ;
/*取得RPT項目List */
SELECT FlowKey as BC_No, names as BC_CName, QryKey1 as BC_EName , QryKey1 as BC_Seq into #tmpItem
from esn_category
where ParentID='KPI_Item' ;
-- select * from tmpItem order by BC_No;
-- 1.取得: 該案件之 查新, 新申請的「新進」資料
SELECT CASE WHEN (a.customer_name like '%華星%' OR a.customer_name like '%华星%') AND LEFT((select value from [ufn_split](a.case_volume,'-') a where a.ID=2) ,1)='M' THEN 'CN 查新' END as ItemIN1, -- CN 查新(未完成) -->1.客戶名稱為華星, 2.案件編號有-M, 3.管制事項:完成初稿, 4.完成日為空白, 5.事務所到期日落在該月份
CASE WHEN a.country_id='CN' AND a.PatentType IN ('PN01', 'PN02', 'PN03') AND ics.case_status_code='NF_P' THEN 'CN 新申請' END as ItemIN2, -- 2.CN 新申請(新進) -->1.國家為CN, 2.案件類別: PN01, PN02, PN03, 3.立案日落在該月份, 4.案件狀態:撰稿(RS01)
CASE WHEN a.country_id='PCT' AND a.PatentType IN ('PN01','PN07') AND ics.case_status_code='NF_P' THEN 'PCT 新申請' END as ItemIN3, -- 3.PCT 新申請(新進) -->1.國家為PCT, 2.案件類別: PN01, PN07, 3.立案日落在該月份, 4.案件狀態:撰稿(RS01)
CASE WHEN a.country_id NOT IN ('CN','PCT') AND a.PatentType IN ('PN01') AND b2.business_type_code='PI' AND ics.case_status_code='RS01' THEN a.country_id+' 新申請' END as ItemIN4, -- 4.XX 新申請(新進) --> 1.國家為XX, 2.案件類別: PN01 , 3.是 PCT國家階段, 4.立案日落在該月份, 5.案件狀態:撰稿(RS01)
Datepart(QUARTER, a.charge_date) csQ, Cast(Month( a.charge_date) as varchar(2)) as csMon ,Cast(year( a.charge_date) as varchar(4)) as csYear,
Convert(varchar(7),a.charge_date,126) as YM_cr,a.case_volume as FlowKey, a.case_volume as CaseNO,a.case_id
,a.app_date,a.customer_id as Client, a.customer_name as Client_CompanyName, a.country_id, a.PatentType, a.PatentType_Name
into #tmpPatC_7All
FROM [dbo].[evw_p_case_info] a
inner join #tb_Split2 s on a.customer_name like '%'+s.ItemDesc +'%'
left join i_case_status ics on ics.case_status_id=a.case_status_id
LEFT JOIN i_business_type b2 on b2.business_type_id=a.business_type_id
WHERE a.charge_date between @p_StartDate AND @p_EndDate -- 立案日
AND a.PatentType IN ('PN01', 'PN02', 'PN03','PN07') -- 案件類別
-- AND a.InCharge IN (SELECT DISTINCT ItemDesc from tb_Split) -- 第X組的承辦人員
--ALTER TABLE tmpPatC_7All ADD INDEX(`CaseNo`);
select * into #tmpPatC_7 from (
select CAST(ItemIN1 as CHAR(20)) as ItemIN, a.* from #tmpPatC_7All a where ItemIN1<>''
union select ItemIN2 as ItemIN, a.* from #tmpPatC_7All a where ItemIN2<>''
union select ItemIN3 as ItemIN, a.* from #tmpPatC_7All a where ItemIN3<>''
union select ItemIN4 as ItemIN, a.* from #tmpPatC_7All a where ItemIN4<>''
) a ;
--select * from #tmpPatC_7
--ALTER TABLE tmpPatC_7 ADD INDEX(`CaseNo`);
-- 依據案件對應申請人, 申請人有多個, 每一個都算1個 (有設KPI的申請人才抓)
select distinct 0 as ApplicantOrder, d.applicant_name_cn as ApplicantName, b.Applicant_Id as ApplicantId, a.*
into #tmpPatC_71
from #tmpPatC_7 a
inner join p_applicant_list b On a.case_id=b.obj_id
inner join i_applicant d on b.applicant_id=d.applicant_id
inner join esn_kpi_tg c on c.Is_Enabled='1' AND c.Kpi_Year=@p_sY AND c.Qry_CustNM=@p_CustName AND d.applicant_id= c.kpi_Applicant
-- WHERE NOT EXISTS(SELECT * from essen_kpi_tg t WHERE IsEnable='0' AND Kpi_Year=p_sY AND Qry_CustNM=p_CustName AND b.ApplicantId= t.kpi_Applicant)
-- WHERE b.ApplicantId NOT IN ('Ap20190313.03','Ap20190320.07') -- 華星不含這2家: 大尺寸事业群, 先进显示技术研究中心
;
SELECT b.*, c.*, a.*
into #tmpPatC_7AllItemApp
FROM #tmpItem a
CROSS JOIN (SELECT DISTINCT ApplicantId, ApplicantName, csYear FROM #tmpPatC_71) b
CROSS JOIN (SELECT 1 as csQ union SELECT 2 as csQ union SELECT 3 as csQ union SELECT 4 as csQ ) c;
-- 取得KPI 目標量
select b.kpi_year, b.kpi_Applicant, b.Qry_CustNM, b.Is_Enabled as IsEnable , a.BC_CName, a.BC_EName,
SUM(CASE WHEN a.BC_EName='CN_QN' AND CN_QN > 0 THEN ROUND(Cast(CN_QN as float)/4,0) WHEN a.BC_EName='PCT_AP' AND PCT_AP > 0 THEN ROUND(Cast(PCT_AP as float)/4,0) WHEN a.BC_EName='CN_AP' AND CN_AP >0 THEN ROUND(Cast(CN_AP as float)/4,0) WHEN a.BC_EName='JP_AP' AND JP_AP >0 THEN ROUND(Cast(JP_AP as float)/4,0)
WHEN a.BC_EName='US_AP' AND US_AP >0 THEN ROUND(Cast(US_AP as float)/4,0) WHEN a.BC_EName='EP_AP' AND EP_AP >0 THEN ROUND(Cast(EP_AP as float)/4,0) WHEN a.BC_EName='RU_AP' AND RU_AP >0 THEN ROUND(Cast(RU_AP as float)/4,0) WHEN a.BC_EName='KR_AP' AND KR_AP >0 THEN ROUND(Cast(KR_AP as float)/4,0)
WHEN a.BC_EName='IN_AP' AND IN_AP >0 THEN ROUND(Cast(IN_AP as float)/4,0) ELSE 0 END) as kpi_Num1,
SUM(CASE WHEN a.BC_EName='CN_QN' AND CN_QN > 0 THEN ROUND(Cast(CN_QN as float)/4,0) WHEN a.BC_EName='PCT_AP' AND PCT_AP > 0 THEN ROUND(Cast(PCT_AP as float)/4,0) WHEN a.BC_EName='CN_AP' AND CN_AP >0 THEN ROUND(Cast(CN_AP as float)/4,0) WHEN a.BC_EName='JP_AP' AND JP_AP >0 THEN ROUND(Cast(JP_AP as float)/4,0)
WHEN a.BC_EName='US_AP' AND US_AP >0 THEN ROUND(Cast(US_AP as float)/4,0) WHEN a.BC_EName='EP_AP' AND EP_AP >0 THEN ROUND(Cast(EP_AP as float)/4,0) WHEN a.BC_EName='RU_AP' AND RU_AP >0 THEN ROUND(Cast(RU_AP as float)/4,0) WHEN a.BC_EName='KR_AP' AND KR_AP >0 THEN ROUND(Cast(KR_AP as float)/4,0)
WHEN a.BC_EName='IN_AP' AND IN_AP >0 THEN ROUND(Cast(IN_AP as float)/4,0) ELSE 0 END) as kpi_Num2,
SUM(CASE WHEN a.BC_EName='CN_QN' AND CN_QN > 0 THEN ROUND(Cast(CN_QN as float)/4,0) WHEN a.BC_EName='PCT_AP' AND PCT_AP > 0 THEN ROUND(Cast(PCT_AP as float)/4,0) WHEN a.BC_EName='CN_AP' AND CN_AP >0 THEN ROUND(Cast(CN_AP as float)/4,0) WHEN a.BC_EName='JP_AP' AND JP_AP >0 THEN ROUND(Cast(JP_AP as float)/4,0)
WHEN a.BC_EName='US_AP' AND US_AP >0 THEN ROUND(Cast(US_AP as float)/4,0) WHEN a.BC_EName='EP_AP' AND EP_AP >0 THEN ROUND(Cast(EP_AP as float)/4,0) WHEN a.BC_EName='RU_AP' AND RU_AP >0 THEN ROUND(Cast(RU_AP as float)/4,0) WHEN a.BC_EName='KR_AP' AND KR_AP >0 THEN ROUND(Cast(KR_AP as float)/4,0)
WHEN a.BC_EName='IN_AP' AND IN_AP >0 THEN ROUND(Cast(IN_AP as float)/4,0) ELSE 0 END) as kpi_Num3,
SUM(CASE WHEN a.BC_EName='CN_QN' AND CN_QN > 0 THEN ROUND(Cast(CN_QN as float)/4,0) WHEN a.BC_EName='PCT_AP' AND PCT_AP > 0 THEN ROUND(Cast(PCT_AP as float)/4,0) WHEN a.BC_EName='CN_AP' AND CN_AP >0 THEN ROUND(Cast(CN_AP as float)/4,0) WHEN a.BC_EName='JP_AP' AND JP_AP >0 THEN ROUND(Cast(JP_AP as float)/4,0)
WHEN a.BC_EName='US_AP' AND US_AP >0 THEN ROUND(Cast(US_AP as float)/4,0) WHEN a.BC_EName='EP_AP' AND EP_AP >0 THEN ROUND(Cast(EP_AP as float)/4,0) WHEN a.BC_EName='RU_AP' AND RU_AP >0 THEN ROUND(Cast(RU_AP as float)/4,0) WHEN a.BC_EName='KR_AP' AND KR_AP >0 THEN ROUND(Cast(KR_AP as float)/4,0)
WHEN a.BC_EName='IN_AP' AND IN_AP >0 THEN ROUND(Cast(IN_AP as float)/4,0) ELSE 0 END) as kpi_Num4,
CASE WHEN a.BC_EName='CN_QN' AND CN_QN > 0 THEN (CN_QN) WHEN a.BC_EName='PCT_AP' AND PCT_AP > 0 THEN (PCT_AP) WHEN a.BC_EName='CN_AP' AND CN_AP >0 THEN (CN_AP) WHEN a.BC_EName='JP_AP' AND JP_AP >0 THEN (JP_AP)
WHEN a.BC_EName='US_AP' AND US_AP >0 THEN (US_AP) WHEN a.BC_EName='EP_AP' AND EP_AP >0 THEN (EP_AP) WHEN a.BC_EName='RU_AP' AND RU_AP >0 THEN (RU_AP) WHEN a.BC_EName='KR_AP' AND KR_AP >0 THEN (KR_AP)
WHEN a.BC_EName='IN_AP' AND IN_AP >0 THEN (IN_AP) ELSE 0 END as kpi_Num
into #tmpPatC_7KPI
from #tmpItem a
cross join esn_kpi_tg b
WHERE b.kpi_year=@p_sY AND b.Qry_CustNM=@p_CustName AND b.Is_Enabled='1' -- 1=啟用
group by b.kpi_year, b.kpi_Applicant, b.Qry_CustNM, b.Is_Enabled, a.BC_CName, a.BC_EName
,CN_QN,PCT_AP,CN_AP,JP_AP,EP_AP,US_AP,RU_AP,KR_AP,IN_AP
ORDER BY b.kpi_year, b.kpi_Applicant;
-- 若有4季合計不等於總量, 則前三季不變, 第四季為總量減前三季
--SET SQL_SAFE_UPDATES=0;
update #tmpPatC_7KPI SET kpi_Num4=kpi_Num-(kpi_Num1+kpi_Num2+kpi_Num3) where (kpi_Num1+kpi_Num2+kpi_Num3+kpi_Num4) <> kpi_Num;
select a.BC_Seq, a.BC_CName, a.BC_EName, a.csYear,a.ApplicantId, a.csQ,b.flowkey
into #sqljoin FROM #tmpPatC_7AllItemApp a
LEFT JOIN #tmpPatC_71 b ON a.BC_CName = b.ItemIN AND
a.ApplicantId=b.ApplicantId AND a.csYear=b.csYear AND a.csQ=b.csQ
if @p_RptType='byCS'
BEGIN
-- 結果 by 申請人
SELECT a.csYear as attr_csYear, a.BC_CName as attr_EmpCol2, a.ApplicantName as attr_ItemName, a.ApplicantName as 申請人, a.BC_CName as 項目,
'CorDF' as class_ap1, SUM(isnull(b.kpi_Num1,0)) as 目標量_1, attr_AP1_todos2, SUM(a.APnum1) as 委案量_1, 'CorDF' as class_df1,SUM(isnull(a.APnum1-b.kpi_Num1,0)) as 差異量_1,
'CorDF' as class_ap2, SUM(isnull(b.kpi_Num2,0)) as 目標量_2, attr_AP2_todos2, SUM(a.APnum2) as 委案量_2, 'CorDF' as class_df2,SUM(isnull(a.APnum2-b.kpi_Num2,0)) as 差異量_2,
'CorDF' as class_ap3, SUM(isnull(b.kpi_Num3,0)) as 目標量_3, attr_AP3_todos2, SUM(a.APnum3) as 委案量_3, 'CorDF' as class_df3,SUM(isnull(a.APnum3-b.kpi_Num3,0)) as 差異量_3,
'CorDF' as class_ap4, SUM(isnull(b.kpi_Num4,0)) as 目標量_4, attr_AP4_todos2, SUM(a.APnum4) as 委案量_4, 'CorDF' as class_df4,SUM(isnull(a.APnum4-b.kpi_Num4,0)) as 差異量_4,
'CorDF' as class_ap5, SUM(isnull(b.kpi_Num,0)) as KPI總量, attr_APAll_todos2, SUM(a.APnumAll) as 委案總量
FROM (
-- 統計委案量
SELECT a.ApplicantId, a.ApplicantName, a.BC_Seq, a.BC_CName, a.BC_EName, a.csYear,
STUFF ((SELECT distinct ',' + p.FlowKey from #sqljoin p
where p.csQ=1
-- and a.ApplicantId=p.ApplicantId
and a.BC_Seq=p.BC_Seq and a.BC_CName=p.BC_CName and a.BC_EName=p.BC_EName and a.csYear=p.csYear FOR XML PATH('')), 1, 1, N'')
as attr_AP1_todos2
, SUM(CASE WHEN a.csQ=1 THEN 1 ELSE 0 END) as APnum1,
STUFF ((SELECT distinct ',' + p.FlowKey from #sqljoin p
where p.csQ=2
-- and a.ApplicantId=p.ApplicantId
and a.BC_Seq=p.BC_Seq and a.BC_CName=p.BC_CName and a.BC_EName=p.BC_EName and a.csYear=p.csYear FOR XML PATH('')), 1, 1, N'')
as attr_AP2_todos2
, SUM(CASE WHEN a.csQ=2 THEN 1 ELSE 0 END) as APnum2,
STUFF ((SELECT distinct ',' + p.FlowKey from #sqljoin p
where p.csQ=3
-- and a.ApplicantId=p.ApplicantId
and a.BC_Seq=p.BC_Seq and a.BC_CName=p.BC_CName and a.BC_EName=p.BC_EName and a.csYear=p.csYear FOR XML PATH('')), 1, 1, N'')
as attr_AP3_todos2
, SUM(CASE WHEN a.csQ=3 THEN 1 ELSE 0 END) as APnum3,
STUFF ((SELECT distinct ',' + p.FlowKey from #sqljoin p
where p.csQ=4
--and a.ApplicantId=p.ApplicantId
and a.BC_Seq=p.BC_Seq and a.BC_CName=p.BC_CName and a.BC_EName=p.BC_EName and a.csYear=p.csYear FOR XML PATH('')), 1, 1, N'')
as attr_AP4_todos2
, SUM(CASE WHEN a.csQ=4 THEN 1 ELSE 0 END) as APnum4,
STUFF ((SELECT distinct ',' + p.FlowKey from #sqljoin p
where -- a.ApplicantId=p.ApplicantId and
a.BC_Seq=p.BC_Seq and a.BC_CName=p.BC_CName and a.BC_EName=p.BC_EName and a.csYear=p.csYear FOR XML PATH('')), 1, 1, N'')
as attr_APAll_todos2
, COUNT(distinct FlowKey) as APnumAll
FROM #tmpPatC_7AllItemApp a
LEFT JOIN #tmpPatC_71 b ON a.BC_CName = b.ItemIN AND a.csYear=b.csYear AND a.csQ=b.csQ --AND a.ApplicantId=b.ApplicantId
group by a.ApplicantId,a.ApplicantName, a.BC_Seq, a.BC_CName, a.BC_EName, a.csYear , a.csQ
) a
left join #tmpPatC_7KPI b on a.csYear=b.kpi_year AND a.ApplicantId=b.kpi_Applicant AND a.BC_CName=b.BC_CName
--group by a.ApplicantName, a.BC_CName, a.csYear ,a.BC_Seq, a.csYear
group by a.ApplicantId, a.ApplicantName, a.BC_Seq,a.csYear,a.BC_CName,a.BC_CName,attr_AP1_todos2,attr_AP2_todos2,attr_AP3_todos2,attr_AP4_todos2, attr_APAll_todos2
--,b.kpi_Num1 ,b.kpi_Num2 ,b.kpi_Num3 ,b.kpi_Num4 ,b.kpi_Num ,a.attr_AP1_todos2 ,a.attr_AP2_todos2 ,a.attr_AP3_todos2 ,a.attr_AP4_todos2 ,a.attr_APAll_todos2
Order by a.ApplicantName, a.BC_Seq;
END
else if @p_RptType='byItem'
BEGIN
-- 結果 by 項目
SELECT a.csYear as attr_csYear, a.BC_CName as attr_ItemName, a.BC_CName as 項目,
'CorDF' as class_ap1, SUM(b.kpi_Num1) as 目標量_1, attr_AP1_todos2, SUM(a.APnum1) as 委案量_1, 'CorDF' as class_df1, SUM(isnull(a.APnum1-b.kpi_Num1,0)) as 差異量_1,
'CorDF' as class_ap2, SUM(b.kpi_Num2) as 目標量_2, attr_AP2_todos2, SUM(a.APnum2) as 委案量_2, 'CorDF' as class_df2, SUM(isnull(a.APnum2-b.kpi_Num2,0)) as 差異量_2,
'CorDF' as class_ap3, SUM(b.kpi_Num3) as 目標量_3, attr_AP3_todos2, SUM(a.APnum3) as 委案量_3, 'CorDF' as class_df3,SUM(isnull(a.APnum3-b.kpi_Num3,0)) as 差異量_3,
'CorDF' as class_ap4, SUM(b.kpi_Num4) as 目標量_4, attr_AP4_todos2, SUM(a.APnum4) as 委案量_4, 'CorDF' as class_df4,SUM(isnull(a.APnum4-b.kpi_Num4,0))as 差異量_4,
'CorDF' as class_ap5, SUM(b.kpi_Num) as KPI總量, attr_APAll_todos2, SUM(a.APnumAll) as 委案總量
FROM (
-- 統計委案量
SELECT a.BC_Seq, a.BC_CName, a.BC_EName, a.csYear,
STUFF ((SELECT distinct ',' + FlowKey from #sqljoin p
where -- a.ApplicantId=p.ApplicantId and
p.csQ=1 and p.BC_Seq=a.BC_Seq and p.BC_CName=a.BC_CName and p.csYear=a.csYear and p.BC_EName=a.BC_EName FOR XML PATH('')), 1, 1, N'')
as attr_AP1_todos2
, SUM(CASE WHEN a.csQ=1 THEN 1 ELSE 0 END)
as APnum1,
STUFF ((SELECT distinct ',' + FlowKey from #sqljoin p
where -- a.ApplicantId=p.ApplicantId and
p.csQ=2 and p.BC_Seq=a.BC_Seq and p.BC_CName=a.BC_CName and p.csYear=a.csYear and p.BC_EName=a.BC_EName FOR XML PATH('')), 1, 1, N'')
as attr_AP2_todos2,
SUM(CASE WHEN a.csQ=2 THEN 1 ELSE 0 END) as APnum2,
STUFF ((SELECT distinct ',' + FlowKey from #sqljoin p
where-- a.ApplicantId=p.ApplicantId and
p.csQ=3 and p.BC_Seq=a.BC_Seq and p.BC_CName=a.BC_CName and p.csYear=a.csYear and p.BC_EName=a.BC_EName FOR XML PATH('')), 1, 1, N'')
as attr_AP3_todos2,
SUM(CASE WHEN a.csQ=3 THEN 1 ELSE 0 END) as APnum3,
STUFF ((SELECT distinct ',' + FlowKey from #sqljoin p
where --a.ApplicantId=p.ApplicantId and
p.csQ=4 and p.BC_Seq=a.BC_Seq and p.BC_CName=a.BC_CName and p.csYear=a.csYear and p.BC_EName=a.BC_EName FOR XML PATH('')), 1, 1, N'')
as attr_AP4_todos2,
SUM(CASE WHEN a.csQ=4 THEN 1 ELSE 0 END) as APnum4,
STUFF ((SELECT distinct ',' + p.FlowKey from #sqljoin p
where -- a.ApplicantId=p.ApplicantId and
p.BC_Seq=a.BC_Seq and p.BC_CName=a.BC_CName and p.csYear=a.csYear and p.BC_EName=a.BC_EName FOR XML PATH('')), 1, 1, N'')
as attr_APAll_todos2,
COUNT(distinct FlowKey) as APnumAll
FROM #sqljoin a
group by a.BC_Seq, a.BC_CName, a.BC_EName, a.csYear ,a.ApplicantId
) a
left join #tmpPatC_7KPI b on a.csYear=b.kpi_year AND a.BC_CName=b.BC_CName
group by a.csYear,a.BC_CName,a.BC_CName,attr_AP1_todos2,attr_AP2_todos2,attr_AP3_todos2,attr_AP4_todos2, attr_APAll_todos2
--group by a1.*
--group by a.BC_CName, a.csYear ,BC_Seq,ISNULL(b.kpi_Num1,0),
--Order by BC_Seq;
END
IF OBJECT_ID('tempdb..#tb_Split2', 'U') IS NOT NULL DROP TABLE #tb_Split2
IF OBJECT_ID('tempdb..#tmpPatC_7KPI', 'U') IS NOT NULL DROP TABLE #tmpPatC_7KPI
IF OBJECT_ID('tempdb..#tmpPatC_7AllItemApp', 'U') IS NOT NULL DROP TABLE #tmpPatC_7AllItemApp
IF OBJECT_ID('tempdb..#tmpPatC_71', 'U') IS NOT NULL DROP TABLE #tmpPatC_71
IF OBJECT_ID('tempdb..#tmpPatC_7', 'U') IS NOT NULL DROP TABLE #tmpPatC_7
IF OBJECT_ID('tempdb..#tmpPatC_7All', 'U') IS NOT NULL DROP TABLE #tmpPatC_7All
IF OBJECT_ID('tempdb..#tmpItem', 'U') IS NOT NULL DROP TABLE #tmpItem
END
GO
DECLARE @RC int
-- TODO: 在此處設定參數值。
EXECUTE @RC = [dbo].rpt_CustCaseTot_KPI
@p_sY='2019',
@p_RptType='byitem' ,
@p_CustName='华星'
GO
--rpt_PatentCase_DS123 '2019-12-01','2019-12-31','2'
--rpt_CustCaseTot_KPI '2020','byCS','华星'
\ No newline at end of file
 DECLARE
@p_sY varchar(50)='2020',
@p_RptType varchar(50)='byCS' ,
@p_CustName varchar(50)='华星'
IF OBJECT_ID('tempdb..#tb_Split2', 'U') IS NOT NULL DROP TABLE #tb_Split2
IF OBJECT_ID('tempdb..#tmpPatC_7KPI', 'U') IS NOT NULL DROP TABLE #tmpPatC_7KPI
IF OBJECT_ID('tempdb..#tmpPatC_7AllItemApp', 'U') IS NOT NULL DROP TABLE #tmpPatC_7AllItemApp
IF OBJECT_ID('tempdb..#tmpPatC_71', 'U') IS NOT NULL DROP TABLE #tmpPatC_71
IF OBJECT_ID('tempdb..#tmpPatC_7', 'U') IS NOT NULL DROP TABLE #tmpPatC_7
IF OBJECT_ID('tempdb..#tmpPatC_7All', 'U') IS NOT NULL DROP TABLE #tmpPatC_7All
IF OBJECT_ID('tempdb..#tmpItem', 'U') IS NOT NULL DROP TABLE #tmpItem
print('1-0:'+convert(varchar(20),getdate(),126))
-- 華星委案量統計表
Declare @p_StartDate varchar(20),@p_EndDate varchar(20);
--set @p_CustName=p_CustName;
set @p_StartDate=@p_sY+'-01-01';
set @p_EndDate=@p_sY+'-12-31';
-- select @p_StartDate as StartDate, @p_EndDate as EndDate;
-- 取得「客戶名稱」的 recordset
SELECT ID as ItemNo,replace(replace(value, char(13),''), char(10),'') as ItemDesc into #tb_Split2
FROM [dbo].[ufn_split](@p_CustName, ';') ;
/*取得RPT項目List */
SELECT FlowKey as BC_No, names as BC_CName, QryKey1 as BC_EName , QryKey1 as BC_Seq into #tmpItem
from esn_category
where ParentID='KPI_Item' ;
-- select * from tmpItem order by BC_No;
-- 1.取得: 該案件之 查新, 新申請的「新進」資料
print('1-1:'+convert(varchar(20),getdate(),126))
SELECT CASE WHEN CHARINDEX('申請前檢索',a.ctrl_proc_zh_tw)>0 THEN 'CN 查新' END as ItemIN1, -- CN 查新(新進) -->1.管制事項:(父)申請前檢
CASE WHEN CHARINDEX('新申請',a.ctrl_proc_zh_tw)>0 THEN a.country_id +' 新申請' END as ItemIN2,--XX 新申請(新進) --> 1.國家為XX,2.管制事項:(父)新申請
Datepart(QUARTER, b.charge_date) csQ, Cast(Month(b.charge_date) as varchar(2)) as csMon ,Cast(year( b.charge_date) as varchar(4)) as csYear,
Convert(varchar(7),b.charge_date,126) as YM_cr,a.case_volume as FlowKey, a.case_volume as CaseNO,a.case_id,a.country_id
into #tmpPatC_7All
from evw_p_proc_info a
Inner JOIN evw_p_case_info b ON a.case_id = b.case_id
inner join #tb_Split2 s on b.customer_name like + s.ItemDesc + '%'
WHERE b.charge_date between @p_StartDate AND @p_EndDate -- 立案日
select * into #tmpPatC_7 from (
select CAST(ItemIN1 as CHAR(20)) as ItemIN, a.* from #tmpPatC_7All a where ItemIN1<>''
union select ItemIN2 as ItemIN, a.* from #tmpPatC_7All a where ItemIN2<>''
) a ;
Update #tmpPatC_7 set ItemIN='PCT 新申請' where ItemIN='WO 新申請'
-- 依據案件對應申請人, 申請人有多個, 每一個都算1個 (有設KPI的申請人才抓)
select distinct 0 as ApplicantOrder, d.applicant_name_cn as ApplicantName, b.Applicant_Id as ApplicantId, a.*
into #tmpPatC_71
from #tmpPatC_7 a
inner join p_applicant_list b On a.case_id=b.obj_id
inner join i_applicant d on b.applicant_id=d.applicant_id
left join esn_kpi_tg c on c.Is_Enabled='1' AND c.Kpi_Year=@p_sY AND c.Qry_CustNM=@p_CustName AND d.applicant_id= c.kpi_Applicant
-- WHERE NOT EXISTS(SELECT * from essen_kpi_tg t WHERE IsEnable='0' AND Kpi_Year=p_sY AND Qry_CustNM=p_CustName AND b.ApplicantId= t.kpi_Applicant)
-- WHERE b.ApplicantId NOT IN ('Ap20190313.03','Ap20190320.07') -- 華星不含這2家: 大尺寸事业群, 先进显示技术研究中心
;
print('1-2:'+convert(varchar(20),getdate(),126))
SELECT b.*, c.*, a.*
into #tmpPatC_7AllItemApp
FROM #tmpItem a
CROSS JOIN (SELECT DISTINCT ApplicantId, ApplicantName, csYear FROM #tmpPatC_71) b
CROSS JOIN (SELECT 1 as csQ union SELECT 2 as csQ union SELECT 3 as csQ union SELECT 4 as csQ ) c;
-- 取得KPI 目標量
select b.kpi_year, b.kpi_Applicant, b.Qry_CustNM, b.Is_Enabled as IsEnable , a.BC_CName, a.BC_EName,
SUM(CASE WHEN a.BC_EName='CN_QN' AND CN_QN > 0 THEN ROUND(Cast(CN_QN as float)/4,0) WHEN a.BC_EName='PCT_AP' AND PCT_AP > 0 THEN ROUND(Cast(PCT_AP as float)/4,0) WHEN a.BC_EName='CN_AP' AND CN_AP >0 THEN ROUND(Cast(CN_AP as float)/4,0) WHEN a.BC_EName='JP_AP' AND JP_AP >0 THEN ROUND(Cast(JP_AP as float)/4,0)
WHEN a.BC_EName='US_AP' AND US_AP >0 THEN ROUND(Cast(US_AP as float)/4,0) WHEN a.BC_EName='EP_AP' AND EP_AP >0 THEN ROUND(Cast(EP_AP as float)/4,0) WHEN a.BC_EName='RU_AP' AND RU_AP >0 THEN ROUND(Cast(RU_AP as float)/4,0) WHEN a.BC_EName='KR_AP' AND KR_AP >0 THEN ROUND(Cast(KR_AP as float)/4,0)
WHEN a.BC_EName='IN_AP' AND IN_AP >0 THEN ROUND(Cast(IN_AP as float)/4,0) ELSE 0 END) as kpi_Num1,
SUM(CASE WHEN a.BC_EName='CN_QN' AND CN_QN > 0 THEN ROUND(Cast(CN_QN as float)/4,0) WHEN a.BC_EName='PCT_AP' AND PCT_AP > 0 THEN ROUND(Cast(PCT_AP as float)/4,0) WHEN a.BC_EName='CN_AP' AND CN_AP >0 THEN ROUND(Cast(CN_AP as float)/4,0) WHEN a.BC_EName='JP_AP' AND JP_AP >0 THEN ROUND(Cast(JP_AP as float)/4,0)
WHEN a.BC_EName='US_AP' AND US_AP >0 THEN ROUND(Cast(US_AP as float)/4,0) WHEN a.BC_EName='EP_AP' AND EP_AP >0 THEN ROUND(Cast(EP_AP as float)/4,0) WHEN a.BC_EName='RU_AP' AND RU_AP >0 THEN ROUND(Cast(RU_AP as float)/4,0) WHEN a.BC_EName='KR_AP' AND KR_AP >0 THEN ROUND(Cast(KR_AP as float)/4,0)
WHEN a.BC_EName='IN_AP' AND IN_AP >0 THEN ROUND(Cast(IN_AP as float)/4,0) ELSE 0 END) as kpi_Num2,
SUM(CASE WHEN a.BC_EName='CN_QN' AND CN_QN > 0 THEN ROUND(Cast(CN_QN as float)/4,0) WHEN a.BC_EName='PCT_AP' AND PCT_AP > 0 THEN ROUND(Cast(PCT_AP as float)/4,0) WHEN a.BC_EName='CN_AP' AND CN_AP >0 THEN ROUND(Cast(CN_AP as float)/4,0) WHEN a.BC_EName='JP_AP' AND JP_AP >0 THEN ROUND(Cast(JP_AP as float)/4,0)
WHEN a.BC_EName='US_AP' AND US_AP >0 THEN ROUND(Cast(US_AP as float)/4,0) WHEN a.BC_EName='EP_AP' AND EP_AP >0 THEN ROUND(Cast(EP_AP as float)/4,0) WHEN a.BC_EName='RU_AP' AND RU_AP >0 THEN ROUND(Cast(RU_AP as float)/4,0) WHEN a.BC_EName='KR_AP' AND KR_AP >0 THEN ROUND(Cast(KR_AP as float)/4,0)
WHEN a.BC_EName='IN_AP' AND IN_AP >0 THEN ROUND(Cast(IN_AP as float)/4,0) ELSE 0 END) as kpi_Num3,
SUM(CASE WHEN a.BC_EName='CN_QN' AND CN_QN > 0 THEN ROUND(Cast(CN_QN as float)/4,0) WHEN a.BC_EName='PCT_AP' AND PCT_AP > 0 THEN ROUND(Cast(PCT_AP as float)/4,0) WHEN a.BC_EName='CN_AP' AND CN_AP >0 THEN ROUND(Cast(CN_AP as float)/4,0) WHEN a.BC_EName='JP_AP' AND JP_AP >0 THEN ROUND(Cast(JP_AP as float)/4,0)
WHEN a.BC_EName='US_AP' AND US_AP >0 THEN ROUND(Cast(US_AP as float)/4,0) WHEN a.BC_EName='EP_AP' AND EP_AP >0 THEN ROUND(Cast(EP_AP as float)/4,0) WHEN a.BC_EName='RU_AP' AND RU_AP >0 THEN ROUND(Cast(RU_AP as float)/4,0) WHEN a.BC_EName='KR_AP' AND KR_AP >0 THEN ROUND(Cast(KR_AP as float)/4,0)
WHEN a.BC_EName='IN_AP' AND IN_AP >0 THEN ROUND(Cast(IN_AP as float)/4,0) ELSE 0 END) as kpi_Num4,
CASE WHEN a.BC_EName='CN_QN' AND CN_QN > 0 THEN (CN_QN) WHEN a.BC_EName='PCT_AP' AND PCT_AP > 0 THEN (PCT_AP) WHEN a.BC_EName='CN_AP' AND CN_AP >0 THEN (CN_AP) WHEN a.BC_EName='JP_AP' AND JP_AP >0 THEN (JP_AP)
WHEN a.BC_EName='US_AP' AND US_AP >0 THEN (US_AP) WHEN a.BC_EName='EP_AP' AND EP_AP >0 THEN (EP_AP) WHEN a.BC_EName='RU_AP' AND RU_AP >0 THEN (RU_AP) WHEN a.BC_EName='KR_AP' AND KR_AP >0 THEN (KR_AP)
WHEN a.BC_EName='IN_AP' AND IN_AP >0 THEN (IN_AP) ELSE 0 END as kpi_Num
into #tmpPatC_7KPI
from #tmpItem a
cross join esn_kpi_tg b
WHERE b.kpi_year=@p_sY AND b.Qry_CustNM=@p_CustName AND b.Is_Enabled='1' -- 1=啟用
group by b.kpi_year, b.kpi_Applicant, b.Qry_CustNM, b.Is_Enabled, a.BC_CName, a.BC_EName
,CN_QN,PCT_AP,CN_AP,JP_AP,EP_AP,US_AP,RU_AP,KR_AP,IN_AP
ORDER BY b.kpi_year, b.kpi_Applicant;
print('1-3:'+convert(varchar(20),getdate(),126))
--select * from #tmpPatC_7
-- 若有4季合計不等於總量, 則前三季不變, 第四季為總量減前三季
--SET SQL_SAFE_UPDATES=0;
update #tmpPatC_7KPI SET kpi_Num4=kpi_Num-(kpi_Num1+kpi_Num2+kpi_Num3) where (kpi_Num1+kpi_Num2+kpi_Num3+kpi_Num4) <> kpi_Num;
print('2-1:'+convert(varchar(20),getdate(),126))
select a.BC_Seq, a.BC_CName, a.BC_EName, a.csYear,a.ApplicantId, a.csQ,b.flowkey
into #sqljoin
FROM #tmpPatC_7AllItemApp a
LEFT JOIN #tmpPatC_71 b ON a.BC_CName = b.ItemIN AND
a.ApplicantId=b.ApplicantId AND a.csYear=b.csYear AND a.csQ=b.csQ
-- select * from #sqljoin a
--where a.BC_CName='CN 查新'
--select * from #tmpPatC_7AllItemApp
if @p_RptType='byCS'
BEGIN
-- 結果 by 申請人
SELECT a.csYear as attr_csYear, a.BC_CName as attr_EmpCol2, a.ApplicantName as attr_ItemName, a.ApplicantName as 申請人, a.BC_CName as 項目,
'CorDF' as class_ap1, SUM(isnull(b.kpi_Num1,0)) as 目標量_1, attr_AP1_todos2, SUM(a.APnum1) as 委案量_1, 'CorDF' as class_df1,SUM(isnull(a.APnum1-b.kpi_Num1,0)) as 差異量_1,
'CorDF' as class_ap2, SUM(isnull(b.kpi_Num2,0)) as 目標量_2, attr_AP2_todos2, SUM(a.APnum2) as 委案量_2, 'CorDF' as class_df2,SUM(isnull(a.APnum2-b.kpi_Num2,0)) as 差異量_2,
'CorDF' as class_ap3, SUM(isnull(b.kpi_Num3,0)) as 目標量_3, attr_AP3_todos2, SUM(a.APnum3) as 委案量_3, 'CorDF' as class_df3,SUM(isnull(a.APnum3-b.kpi_Num3,0)) as 差異量_3,
'CorDF' as class_ap4, SUM(isnull(b.kpi_Num4,0)) as 目標量_4, attr_AP4_todos2, SUM(a.APnum4) as 委案量_4, 'CorDF' as class_df4,SUM(isnull(a.APnum4-b.kpi_Num4,0)) as 差異量_4,
'CorDF' as class_ap5, SUM(isnull(b.kpi_Num,0)) as KPI總量, attr_APAll_todos2, SUM(a.APnumAll) as 委案總量
FROM (
-- 統計委案量
SELECT a.ApplicantId, a.ApplicantName, a.BC_Seq, a.BC_CName, a.BC_EName, a.csYear,
STUFF ((SELECT distinct ',' + p.FlowKey from #sqljoin p
where p.csQ=1
-- and a.ApplicantId=p.ApplicantId
and a.BC_Seq=p.BC_Seq and a.BC_CName=p.BC_CName and a.BC_EName=p.BC_EName and a.csYear=p.csYear FOR XML PATH('')), 1, 1, N'')
as attr_AP1_todos2
, SUM(CASE WHEN a.csQ=1 THEN 1 ELSE 0 END) as APnum1,
STUFF ((SELECT distinct ',' + p.FlowKey from #sqljoin p
where p.csQ=2
-- and a.ApplicantId=p.ApplicantId
and a.BC_Seq=p.BC_Seq and a.BC_CName=p.BC_CName and a.BC_EName=p.BC_EName and a.csYear=p.csYear FOR XML PATH('')), 1, 1, N'')
as attr_AP2_todos2
, SUM(CASE WHEN a.csQ=2 THEN 1 ELSE 0 END) as APnum2,
STUFF ((SELECT distinct ',' + p.FlowKey from #sqljoin p
where p.csQ=3
-- and a.ApplicantId=p.ApplicantId
and a.BC_Seq=p.BC_Seq and a.BC_CName=p.BC_CName and a.BC_EName=p.BC_EName and a.csYear=p.csYear FOR XML PATH('')), 1, 1, N'')
as attr_AP3_todos2
, SUM(CASE WHEN a.csQ=3 THEN 1 ELSE 0 END) as APnum3,
STUFF ((SELECT distinct ',' + p.FlowKey from #sqljoin p
where p.csQ=4
--and a.ApplicantId=p.ApplicantId
and a.BC_Seq=p.BC_Seq and a.BC_CName=p.BC_CName and a.BC_EName=p.BC_EName and a.csYear=p.csYear FOR XML PATH('')), 1, 1, N'')
as attr_AP4_todos2
, SUM(CASE WHEN a.csQ=4 THEN 1 ELSE 0 END) as APnum4,
STUFF ((SELECT distinct ',' + p.FlowKey from #sqljoin p
where -- a.ApplicantId=p.ApplicantId and
a.BC_Seq=p.BC_Seq and a.BC_CName=p.BC_CName and a.BC_EName=p.BC_EName and a.csYear=p.csYear FOR XML PATH('')), 1, 1, N'')
as attr_APAll_todos2
, COUNT(distinct FlowKey) as APnumAll
FROM #tmpPatC_7AllItemApp a
LEFT JOIN #tmpPatC_71 b ON a.BC_CName = b.ItemIN AND a.csYear=b.csYear AND a.csQ=b.csQ --AND a.ApplicantId=b.ApplicantId
group by a.ApplicantId,a.ApplicantName, a.BC_Seq, a.BC_CName, a.BC_EName, a.csYear , a.csQ
) a
left join #tmpPatC_7KPI b on a.csYear=b.kpi_year AND a.ApplicantId=b.kpi_Applicant AND a.BC_CName=b.BC_CName
--group by a.ApplicantName, a.BC_CName, a.csYear ,a.BC_Seq, a.csYear
group by a.ApplicantId, a.ApplicantName, a.BC_Seq,a.csYear,a.BC_CName,a.BC_CName,attr_AP1_todos2,attr_AP2_todos2,attr_AP3_todos2,attr_AP4_todos2, attr_APAll_todos2
--,b.kpi_Num1 ,b.kpi_Num2 ,b.kpi_Num3 ,b.kpi_Num4 ,b.kpi_Num ,a.attr_AP1_todos2 ,a.attr_AP2_todos2 ,a.attr_AP3_todos2 ,a.attr_AP4_todos2 ,a.attr_APAll_todos2
Order by a.ApplicantName, a.BC_Seq;
END
else if @p_RptType='byItem'
BEGIN
-- 結果 by 項目
SELECT a.csYear as attr_csYear, a.BC_CName as attr_ItemName, a.BC_CName as 項目,
'CorDF' as class_ap1, SUM(b.kpi_Num1) as 目標量_1, attr_AP1_todos2, SUM(a.APnum1) as 委案量_1, 'CorDF' as class_df1, SUM(isnull(a.APnum1-b.kpi_Num1,0)) as 差異量_1,
'CorDF' as class_ap2, SUM(b.kpi_Num2) as 目標量_2, attr_AP2_todos2, SUM(a.APnum2) as 委案量_2, 'CorDF' as class_df2, SUM(isnull(a.APnum2-b.kpi_Num2,0)) as 差異量_2,
'CorDF' as class_ap3, SUM(b.kpi_Num3) as 目標量_3, attr_AP3_todos2, SUM(a.APnum3) as 委案量_3, 'CorDF' as class_df3,SUM(isnull(a.APnum3-b.kpi_Num3,0)) as 差異量_3,
'CorDF' as class_ap4, SUM(b.kpi_Num4) as 目標量_4, attr_AP4_todos2, SUM(a.APnum4) as 委案量_4, 'CorDF' as class_df4,SUM(isnull(a.APnum4-b.kpi_Num4,0))as 差異量_4,
'CorDF' as class_ap5, SUM(b.kpi_Num) as KPI總量, attr_APAll_todos2, SUM(a.APnumAll) as 委案總量
FROM (
-- 統計委案量
SELECT a.BC_Seq, a.BC_CName, a.BC_EName, a.csYear,
STUFF ((SELECT distinct ',' + FlowKey from #sqljoin p
where -- a.ApplicantId=p.ApplicantId and
p.csQ=1 and p.BC_Seq=a.BC_Seq and p.BC_CName=a.BC_CName and p.csYear=a.csYear and p.BC_EName=a.BC_EName FOR XML PATH('')), 1, 1, N'')
as attr_AP1_todos2
, SUM(CASE WHEN a.csQ=1 THEN 1 ELSE 0 END)
as APnum1,
STUFF ((SELECT distinct ',' + FlowKey from #sqljoin p
where -- a.ApplicantId=p.ApplicantId and
p.csQ=2 and p.BC_Seq=a.BC_Seq and p.BC_CName=a.BC_CName and p.csYear=a.csYear and p.BC_EName=a.BC_EName FOR XML PATH('')), 1, 1, N'')
as attr_AP2_todos2,
SUM(CASE WHEN a.csQ=2 THEN 1 ELSE 0 END) as APnum2,
STUFF ((SELECT distinct ',' + FlowKey from #sqljoin p
where-- a.ApplicantId=p.ApplicantId and
p.csQ=3 and p.BC_Seq=a.BC_Seq and p.BC_CName=a.BC_CName and p.csYear=a.csYear and p.BC_EName=a.BC_EName FOR XML PATH('')), 1, 1, N'')
as attr_AP3_todos2,
SUM(CASE WHEN a.csQ=3 THEN 1 ELSE 0 END) as APnum3,
STUFF ((SELECT distinct ',' + FlowKey from #sqljoin p
where --a.ApplicantId=p.ApplicantId and
p.csQ=4 and p.BC_Seq=a.BC_Seq and p.BC_CName=a.BC_CName and p.csYear=a.csYear and p.BC_EName=a.BC_EName FOR XML PATH('')), 1, 1, N'')
as attr_AP4_todos2,
SUM(CASE WHEN a.csQ=4 THEN 1 ELSE 0 END) as APnum4,
STUFF ((SELECT distinct ',' + p.FlowKey from #sqljoin p
where -- a.ApplicantId=p.ApplicantId and
p.BC_Seq=a.BC_Seq and p.BC_CName=a.BC_CName and p.csYear=a.csYear and p.BC_EName=a.BC_EName FOR XML PATH('')), 1, 1, N'')
as attr_APAll_todos2,
COUNT(distinct FlowKey) as APnumAll
FROM #sqljoin a
group by a.BC_Seq, a.BC_CName, a.BC_EName, a.csYear ,a.ApplicantId
) a
left join #tmpPatC_7KPI b on a.csYear=b.kpi_year AND a.BC_CName=b.BC_CName
group by a.csYear,a.BC_CName,a.BC_CName,attr_AP1_todos2,attr_AP2_todos2,attr_AP3_todos2,attr_AP4_todos2, attr_APAll_todos2
--group by a1.*
--group by a.BC_CName, a.csYear ,BC_Seq,ISNULL(b.kpi_Num1,0),
--Order by BC_Seq;
END
print('2-2:'+convert(varchar(20),getdate(),126))
\ No newline at end of file
alter PROCEDURE [dbo].rpt_CustCaseTot_NotFinish (
@p_YM_F varchar(7), -- 區期年月起值
@p_YM_T varchar(7), -- 區期年月迄值
@p_RptType varchar(10), -- 報表類別 RptType = byItem 項目 , byDept 所別, byDS 部別
@p_CustName nvarchar(100) ,
@DisplayType varchar(10),
@DataMode varchar(200) -- 顯示模式 All:不限定ITEM ,ItemLimit:ITEM是否受esn_category 限定 ,Other1:限定ITEM 核駁報導
)
AS
BEGIN
Declare @p_EmpItem varchar(1),@Emp_ItemNo varchar(50),@p_StartDate datetime,@p_EndDate datetime,@p_YMT_sql varchar(max)=''
,@p_StartDatet datetime
,@p_StartWeek datetime ,@i tinyint=1,@Sweekend int,@Eweekend int,@pointday int,@count int=0 --WEEK
IF OBJECT_ID('tempdb..#p_YMT', 'U') IS NOT NULL DROP TABLE #p_YMT
set @p_StartDate =Convert(datetime,@p_YM_F+'-01',126) ;
set @p_EndDate =DATEADD(day,-1,DATEADD(month, 1,cast(@p_YM_T+'-01' as datetime))) ;
select 0 as id ,Convert(varchar(10),@p_EndDate,126) as value into #p_YMT
if @DisplayType='Week'
BEGIN
--初始星期設定
Set @Sweekend=DATEPART(WEEKDAY,@p_StartDate)
Set @Eweekend=DATEPART(WEEKDAY,@p_EndDate)
Set @pointday=abs(@@DATEFIRST-7+2) --取得目標weekend day
select @p_StartWeek=case when @Sweekend>@pointday Then DATEADD(day,-(@Sweekend-@pointday)+7,@p_StartDate)
when @Sweekend<@pointday Then DATEADD(day,(@pointday-@Sweekend),@p_StartDate)
else @p_StartDate End
set @p_StartDatet=@p_StartWeek
WHILE datediff(day,@p_StartDatet,@p_EndDate) >=0
BEGIN
Set @p_YMT_sql=@p_YMT_sql+'('+cast(@i as varchar(2))+',Convert(varchar(10),DATEADD(WEEK,'+cast((@i-1) as varchar(2))+','''+Convert(varchar(10),@p_StartWeek,126)+''') ,126)),'
Set @i= @i+1
Set @p_StartDatet=DATEADD(WEEK,1,@p_StartDatet)
END
set @p_YMT_sql=left(@p_YMT_sql,len(@p_YMT_sql)-1);
exec ('insert into #p_YMT (id,Value) values ' + @p_YMT_sql)
Set @p_EndDate=Convert(varchar(10),@p_StartDatet,126)
END
Else if @DisplayType='Month'
BEGIN
Set @p_StartDatet=@p_StartDate
WHILE datediff(month,@p_StartDatet,@p_EndDate) >=0
BEGIN
Set @p_YMT_sql=@p_YMT_sql+'('+cast(@i as varchar(2))+',Convert(varchar(10),DATEADD(month,'+cast((@i-1) as varchar(2))+','''+(@p_YM_F+'-01')+''') ,126)),'
Set @i=@i+1
Set @p_StartDatet=DATEADD(month,1,@p_StartDatet)
END
set @p_YMT_sql=left(@p_YMT_sql,len(@p_YMT_sql)-1);
--print 'insert into #p_YMT (id,Value) values ' + @p_YMT_sql
exec ('insert into #p_YMT (id,Value) values' + @p_YMT_sql)
END
Select @count=max(a.id) from #p_YMT a
--/*
-- 取得「客戶名稱」的 recordset
SELECT ID as ItemNo,replace(replace(value, char(13),''), char(10),'') as ItemDesc into #tb_Split2 FROM [ufn_split](@p_CustName, ';') ;
SELECT a.Names as ItemName,a.QryKey2 as ItemNo into #tmpItem FROM esn_category a
where a.ParentId ='Rpr_Cust_NotFinish' and a.Is_Enabled=1;
-- 第二部, 客戶名稱不會只有「华星」, 第一部, 客戶名稱只會有「华星」
if (SELECT COUNT(*) FROM #tb_Split2 where ItemDesc like '%华星%' or ItemDesc like '%華星%' )>0
delete from #tmpItem where ItemNo between 900 and 990
if(@DataMode ='Other1')
delete from #tmpItem where Not (ItemName like '%核駁%' or ItemName like '%總計%')
print('1:'+convert(varchar(20),getdate(),126))
-- 員工部別 (因該員工會多部別, 放在Emp_DS2裡, 所以要distinct )
SELECT distinct a.user_name as Emp_ID, cn_name as Emp_Name, isnull(a.Emp_DS,'') as Emp_DS, isnull(a.Emp_DSNum,'') as Emp_DSNum, isnull(a.Emp_Item,'') as Emp_Item, isnull(a.Emp_ItemNum,'') as Emp_ItemNum, 0 as Emp_Sort ,a.user_id
into #tmpEmp
FROM [dbo].[evw_Employee] a
-- 2.取得: ToDos
print('3:'+convert(varchar(20),getdate(),126))
select sn,a.proc_id,CaseNo,TaskDescription,StartDate2,AttorneyDueDate,AssignedTo_userid,Points,ExchangeRate,ToDosStatus,p.case_id,p.customer_name as Client_CompanyName,a.ecFlowKey,a.ecNames,a.TaskClass_id
--b.Emp_ID as AssignedTo,b.Emp_DS,b.Emp_Item,b.Emp_Name as AssignedTo_Name,
into #tmpTodosAll_1
--from evw_esn_todos a
from evw_esn_todos a
inner join evw_p_proc_info ppi on a.proc_id=ppi.proc_id
left join [evw_p_case_info] p on p.case_id=a.case_id
inner join #tb_Split2 s on p.customer_name like s.ItemDesc +'%'
where a.AttorneyDueDate between @p_StartDate AND @p_EndDate AND isnull(ppi.finish_date,'')='' and
( a.ecFlowKey in('SubTodos_02','SubTodos_06','SubTodos_03','SubTodos_05') OR
CHARINDEX('rce', LOWER(a.TaskDescription))>0 OR CHARINDEX('ids', LOWER(a.TaskDescription))>0 OR CHARINDEX('繳費領證', a.TaskDescription)>0 OR CHARINDEX('客戶看稿', a.TaskDescription)>0 )
--select * from #tmpTodosAll_1 where ecFlowKey='SubTodos_05'
print('3-1:'+convert(varchar(20),getdate(),126))
SELECT a.* ,
case when ibt.business_type_code='PN' THEN 'Y' END as PctNationalPhase,Cast(a.sn as varchar(20)) as Flowkey
,p.PatentType,isnull(c.review_stage,'') as review_stage,case when p.country_id='EP' then 'EU' else p.country_id end as office
--,(select value from [ufn_split](a.CaseNo,'-') a where a.ID=2) as CaseNo_r
,e.Emp_ID,e.Emp_ID as AssignedTo, e.Emp_Name as AssignedTo_Name,e.Emp_DSNum, e.Emp_Item, e.Emp_ItemNum, 0 as Emp_Sort ,e.Emp_DS,e.user_id
--,p.CaseType,p.CaseType_Name
into #tmpTodosAll
FROM #tmpTodosAll_1 a
inner join [evw_p_case_info] p on p.case_id=a.case_id
inner join p_proc_info c on c.proc_id =a.proc_id
left join i_business_type ibt on ibt.business_type_id=p.business_type_id
left join #tmpEmp e on a.AssignedTo_userid=e.user_id
;
print('4:'+convert(varchar(20),getdate(),126))
-- 5.取得:「未完成」資料
SELECT CASE WHEN (a.CaseNo like '%-M%'or a.CaseNo like '%-CN%') AND ecFlowKey='SubTodos_06' THEN 'CN 查新' END as Item_NotFH1, -- CN 查新(未完成) -->1.案件編號(包含)-M,-CN,3.管制事項:(包含)提出報告,提出报告,4.OA階段為空白
CASE WHEN a.Office='CN' AND review_stage='' AND a.PatentType IN ('PN01', 'PN02', 'PN03') AND ecFlowKey='SubTodos_02' THEN 'CN 新申請' END as Item_NotFH2, -- CN 新申請(未完成) -->1.國家為CN, 2.案件類別: PN01, PN02, PN03, 3.管制事項:完成初稿,4.OA階段為空白
CASE WHEN a.Office='WO' AND review_stage='' AND a.PatentType IN ('PN01','PN07') AND ecFlowKey='SubTodos_02' THEN 'PCT 新申請' END as Item_NotFH3, -- PCT 新申請(未完成)-->1.國家為WO, 2.案件類別: PN01, PN07, 3.管制事項:完成初稿,4.OA階段為空白 5.是 PCT國家階段
CASE WHEN a.Office NOT IN ('CN', 'WO') and review_stage='' AND a.PatentType='PN01' AND ecFlowKey='SubTodos_02' THEN a.Office+' 新申請' END as Item_NotFH4, -- XX 新申請(未完成) -->1.國家為XX, 2.案件類別: PN01 , 3.是 PCT國家階段, 4.管制事項:完成初稿
CASE WHEN a.Office IN('CN') AND ecFlowKey='SubTodos_02' AND review_stage<>'' THEN 'CN OA' END as Item_NotFH5, -- CN OA(未完成) -->1.國家為CN, 2.抓管制事項:(包含)完成初稿, 3.完成日落在該月份,,4.OA階段不為空白
CASE WHEN ecFlowKey='SubTodos_02' AND review_stage<>'' AND a.Office NOT IN('CN') THEN a.Office+' OA' END as Item_NotFH6, -- XX OA(未完成) -->1.國家為XX, 2.抓管制事項:(包含)完成初稿, 3.完成日落在該月份,,4.OA階段不為空白
--CASE WHEN a.Office IN('CN') and CHARINDEX('核駁報導',a.TaskDescription)>0 THEN 'CN 核駁' END as Item_NotFH51, -- CN-核駁(未完成) -->1.國家為CN, 2.抓管制事項:(包含)核駁報導
--CASE WHEN a.TaskDescription='核駁報導' AND a.Office NOT IN('CN') THEN a.Office+' 核駁' END as Item_NotFH61, -- XX-核駁(未完成) -->1.國家為XX, 2.抓管制事項:(包含)核駁報導
CASE WHEN a.ecFlowKey='SubTodos_05' THEN a.Office+' 核駁' END as Item_NotFH61, -- XX-核駁(未完成) -->1.國家為XX, 2.抓管制事項:(包含)核駁報導
CASE WHEN CHARINDEX('rce', LOWER(a.TaskDescription))>0 THEN 'RCE' END as Item_NotFH7, -- RCE(未完成) -->1.不分國家, 2.抓管制事項:(包含)rce
CASE WHEN CHARINDEX('ids', LOWER(a.TaskDescription))>0 THEN 'IDS' END as Item_NotFH8, -- IDS(未完成) -->1.不分國家, 2.抓管制事項:(包含)IDS
CASE WHEN (a.Office<>'CN' and TaskDescription in('繳費領證','取得證書')) or (a.Office='CN' and TaskDescription in('辦理登記手續')) THEN '繳費領證' END as Item_NotFH9, -- 繳費領證(未完成) -->1.不分國家, 2.抓管制事項:(包含)办理登记手续,(包含)繳費領證,(包含)缴纳领证
CASE WHEN ecFlowKey='SubTodos_03' THEN a.Office+' 核稿' END as Item_NotFH10, -- 核稿(未完成) -->1.國家為XX, 2.抓管制事項:(包含)客戶看稿
a.FlowKey, a.CaseNo, a.PctNationalPhase, a.AttorneyDueDate, getdate() as sysDate,
CASE WHEN a.AttorneyDueDate='' THEN '' ELSE Convert(varchar(10),a.AttorneyDueDate,126) END as YM_AD,
--CASE WHEN (a.FinishedDate between @p_StartDate AND @p_EndDate) THEN Convert(varchar(10),a.FinishedDate,126) ELSE '' END as YM_FH,
--CASE WHEN FinishedDate=''or FinishedDate is null THEN getdate() ELSE FinishedDate END as FinishedDate2, a.StartDate2,
--CASE WHEN a.AttorneyDueDate<>'' THEN DATEDIFF(day,getdate(),AttorneyDueDate) ELSE 0 END as NotFH_Days,
a.AssignedTo_Name--, a.AssignedTo_DeptID, a.AssignedTo_DeptName, a.Matter, a.MatterName, a.Attorney, a.Attorney_Nationality, a.Office, a.Office_Name, a.Client, a.CaseType, a.CaseType_Desc
, a.Emp_ID, a.Emp_DS, a.Emp_DSNum, a.Emp_Item, a.Emp_Sort,a.AssignedTo,
CASE WHEN isnull(a.user_id,'')='' THEN '沒指定承辦人' ELSE AssignedTo_Name END as AssignedTo_Name2, a.TaskDescription, a.PatentType
--, a.AssignedTo,PatentType_Name , a.ToDosStatus, a.ToDosStatus_Name, a.AssignStatus, a.AssignStatus_Name
,ISNULL(b.CaseLevel,'') as CaseLevel, ISNULL(b.CaseLevelDesc,'') as CaseLevelDesc, ISNULL(c.IsPriority,'') as IsPriority, ISNULL(c.IsPriorityDesc,'') as IsPriorityDesc
into #tmpTodos5_3All
FROM #tmpTodosAll a
left join evw_qresult_CaseLevel b on a.CaseNo=b.CaseNo
left join evw_qresult_caseispriority c on a.CaseNo=c.CaseNo
select CAST(Item_NotFH1 as varCHAR(20)) as Item_NotFH, a.* into #tmpTodos5_3 from #tmpTodos5_3All a where Item_NotFH1<>'';
Insert into #tmpTodos5_3
select Item_NotFH2 as Item_NotFH, a.* from #tmpTodos5_3All a where Item_NotFH2<>''
Union select Item_NotFH3 as Item_NotFH, a.* from #tmpTodos5_3All a where Item_NotFH3<>''
Union select Item_NotFH4 as Item_NotFH, a.* from #tmpTodos5_3All a where Item_NotFH4<>''
Union select Item_NotFH5 as Item_NotFH, a.* from #tmpTodos5_3All a where Item_NotFH5<>''
Union select Item_NotFH6 as Item_NotFH, a.* from #tmpTodos5_3All a where Item_NotFH6<>''
Union select Item_NotFH7 as Item_NotFH, a.* from #tmpTodos5_3All a where Item_NotFH7<>''
Union select Item_NotFH8 as Item_NotFH, a.* from #tmpTodos5_3All a where Item_NotFH8<>''
Union select Item_NotFH9 as Item_NotFH, a.* from #tmpTodos5_3All a where Item_NotFH9<>''
Union select Item_NotFH10 as Item_NotFH, a.* from #tmpTodos5_3All a where Item_NotFH10<>''
--Union select Item_NotFH51 as Item_NotFH, a.* from #tmpTodos5_3All a where Item_NotFH51<>''
Union select Item_NotFH61 as Item_NotFH, a.* from #tmpTodos5_3All a where Item_NotFH61<>'';
-- ALTER TABLE tmpTodos6_3 ADD INDEX(`CaseNo`);
-- 3-1.新增項目之重要案件小計列暫存檔
SELECT Item_NotFH, AssignedTo_Name2, emp_DS, Emp_Item, emp_Sort, YM_AD, AttorneyDueDate, sysDate, FlowKey
into #tmpTodos5_Levelsum
FROM #tmpTodos5_3 WHERE (CaseLevel='1' OR IsPriority='Y'); -- CaseLevel=專利等級: 1=重要專利, 2=常規專利, IsPriority=是否優先處理: Y=是
if not exists(select * FROM #tmpTodos5_Levelsum where Item_NotFH='CN 查新')
begin
insert #tmpTodos5_Levelsum SELECT 'CN 查新' as Item_NotFH, '' as AssignedTo_Name2, '' as emp_DS, '' as Emp_Item, '' as emp_Sort, '' as YM_AD, '' as AttorneyDueDate, '' as sysDate, '' as FlowKey;
end ;
-- SELECT * FROM tmpTodos6_3 WHERE (CaseLevel='1' OR IsPriority='Y'); -- CaseLevel=專利等級: 1=重要專利, 2=常規專利, IsPriority=是否優先處理: Y=是
-- 3-2.新增項目小計列暫存檔
--DROP TEMPORARY TABLE IF EXISTS tmpTodos6_4sum;
--CREATE TEMPORARY TABLE tmpTodos6_4sum as
--SELECT * FROM tmpTodos6_3;
-- 3-3.新增總計列暫存檔
--DROP TEMPORARY TABLE IF EXISTS tmpTodos6_4tot;
--CREATE TEMPORARY TABLE tmpTodos6_4tot as
--SELECT * FROM tmpTodos6_3;
--*/
-- 5.結果
declare @SqlString varchar(max)='',@SqlJoinString varchar(max)='',@CommonString varchar(max)='',@CommonStringJoin1 varchar(max)=''
,@CommonStringJoin2 varchar(max)='',@CommonStringJoin3 varchar(max)='',@CommonStringJoin4 varchar(max)='',@SortString varchar(500)='', @cnt tinyint=1,@cntT varchar(3)='',@cntO varchar(3)=''
,@groupcase1 varchar(300)='',@groupcase2 varchar(300)='',@groupcase3 varchar(300)='',@groupcase4 varchar(300)='',@groupcase varchar(300)='',@p_YMT_value varchar(10)
,@DateCase1 varchar(200)= '',@DateCase2 varchar(200)= '',@DateCase3 varchar(200)= '',@DateCase4 varchar(200)= '',@JoinType varchar(50)= '';
WHILE @cnt <= @count
BEGIN
SET @cntT = RIGHT(REPLICATE('0', 2) + CAST(@cnt AS varchar), 2); -- 補零
SET @cntO = CAST(@cnt AS varchar);
SET @p_YMT_value =(SELECT Value FROM #p_YMT WHERE id = @cntO );
if @DisplayType ='Week'
BEGIN
print 1
Set @DateCase1='CASE WHEN ''' + @p_YMT_value + ''' <=YM_AD and Dateadd(week,1,cast(''' + @p_YMT_value + ''' as datetime)) > YM_AD AND AttorneyDueDate < sysDate '
Set @DateCase2='CASE WHEN ''' + @p_YMT_value + ''' <=YM_AD and Dateadd(week,1,cast(''' + @p_YMT_value + ''' as datetime)) > YM_AD AND AttorneyDueDate >= sysDate '
--Set @DateCase3=@DateCase1
--Set @DateCase4='0'
End
Else IF @DisplayType ='Month'
BEGIN
print 2
Set @DateCase1='CASE WHEN Convert(varchar(7),YM_AD,126)= ''' + Convert(varchar(7),@p_YMT_value,126) + ''' AND AttorneyDueDate < sysDate '
Set @DateCase2='CASE WHEN Convert(varchar(7),YM_AD,126)= ''' + Convert(varchar(7),@p_YMT_value,126) + ''' AND AttorneyDueDate >= sysDate'
--Set @DateCase2='CASE WHEN Convert(varchar(7),YM_ST,126)= ''' + Convert(varchar(7),@p_YMT_value,126) + ''''
--Set @DateCase3='CASE WHEN Convert(varchar(7),YM_FH,126)= ''' + Convert(varchar(7),@p_YMT_value,126) + ''''
--Set @DateCase4='0'
END
BEGIN
set @CommonString=@CommonString
+'CASE WHEN '''+Convert(varchar(10),@p_EndDate,126)+''' >= '''+@p_YMT_value+''' THEN 1 ELSE 0 END v'+@cntT
+',STUFF ((SELECT distinct '','' + (CASE WHEN attr_NotFN'+@cntT+'<>'''' THEN attr_NotFN'+@cntT+' END) @groupcase FOR XML PATH('''')), 1, 1, N'''') as attr_NotFN'+@cntT+'_todos2, SUM(ISNULL(NotFN'+@cntT+',0)) as 逾期_'+@cntT
+', STUFF ((SELECT distinct '','' + (CASE WHEN attr_YesFN'+@cntT+'<>'''' THEN attr_YesFN'+@cntT+' END) @groupcase FOR XML PATH('''')), 1, 1, N'''') as attr_YesFN'+@cntT+'_todos2, SUM(ISNULL(YesFN'+@cntT+',0)) as 未逾期_'+@cntT+','
Set @CommonStringJoin1=@CommonStringJoin1
+ 'STUFF ((SELECT distinct '','' + ( '+@DateCase1+' THEN FlowKey END) @groupcase FOR XML PATH('''')), 1, 1, N'''') as attr_NotFN'+@cntT
+', SUM('+@DateCase1+' THEN 1 ELSE 0 END) as NotFN'+@cntT
+',STUFF ((SELECT distinct '','' + ('+@DateCase2+' THEN FlowKey END) @groupcase FOR XML PATH('''')), 1, 1, N'''') as attr_YesFN'+@cntT
+', SUM('+@DateCase2+' THEN 1 ELSE 0 END) as YesFN'+@cntT+',';
END
SET @cnt = @cnt + 1;
END
if(@DataMode in ('ItemLimit','Other1'))
Set @JoinType='Inner'
else
Set @JoinType='Right'
--select cast(@CommonStringJoin1 as varchar(max)); --debug query
set @CommonString=@CommonString +'1 as v13, STUFF ((SELECT distinct '','' + (CASE WHEN attr_sum<>'''' THEN attr_sum END) @groupcase FOR XML PATH('''')), 1, 1, N'''') as attr_sum_todos2,SUM(ISNULL(FNSUM,0)) as 小計 ';
Set @CommonStringJoin1=@CommonStringJoin1+'STUFF ((SELECT distinct '','' + FlowKey @groupcase FOR XML PATH('''')), 1, 1, N'''') as attr_sum, COUNT(distinct FlowKey) as FNSUM ';
Set @CommonStringJoin2=replace(@CommonStringJoin1,' COUNT(distinct FlowKey)','SUM(CASE WHEN ISNULL(FlowKey,'''')<>'''' THEN 1 ELSE 0 END)');
Set @CommonStringJoin3=@CommonStringJoin1;
Set @CommonStringJoin4=@CommonStringJoin1;
IF @p_RptType='byDS'
BEGIN
-- 5-1.byDS 部別
Set @groupcase=' from #tmp_SqlJoin p where b.Item_NotFH=p.Item_NotFH and b.Emp_Item=p.Emp_Item and b.emp_DS=p.emp_DS '
--Set @groupcase1=' from #tmpTodos6_3 p WHERE p.Item_NotFH<>'''' and p.Item_NotFH=a.Item_NotFH and p.AssignedTo=a.AssignedTo and p.emp_DSNum=a.emp_DSNum and p.emp_DS=a.emp_DS and p.Emp_Item=a.Emp_Item '
Set @groupcase1=' from #tmpTodos5_3 p WHERE p.Item_NotFH<>'''' and p.Item_NotFH=a.Item_NotFH and p.AssignedTo=a.AssignedTo and p.emp_DS=a.emp_DS and p.emp_DSNum=a.emp_DSNum and p.Emp_Item=a.Emp_Item '
Set @groupcase2=' from #tmpTodos5_Levelsum p WHERE p.Item_NotFH<>'''' and p.Item_NotFH=a.Item_NotFH '
Set @groupcase3=' from #tmpTodos5_3 p WHERE p.Item_NotFH<>'''' and p.Item_NotFH=a.Item_NotFH '
Set @groupcase4=' from #tmpTodos5_3 p where p.Item_NotFH<>'''' '
Set @SqlJoinString=@SqlJoinString+'select a.* into #tmp_SqlJoin from (
SELECT Item_NotFH, AssignedTo_Name as AssignedTo_Name2, emp_DS,
CASE WHEN ISNULL(Emp_Item,'''')='''' THEN ''沒指定部別'' ELSE Emp_Item END as Emp_Item,
CASE WHEN ISNULL(emp_Sort,'''')='''' THEN 666 ELSE emp_Sort END as emp_Sort, ' + replace(@CommonStringJoin1 ,'@groupcase',@groupcase1)
+'FROM #tmpTodos5_3 a where Item_NotFH<>''''
GROUP BY Item_NotFH, AssignedTo, AssignedTo_Name, emp_DS, emp_DSNum, Emp_Item, emp_Sort '
+'Union all '
+'SELECT Item_NotFH, '''' as AssignedTo_Name2, '''' as emp_DS, ''重要小計'' as Emp_Item, 9977 as emp_Sort, ' + replace(@CommonStringJoin2,'@groupcase',@groupcase2)
+'FROM #tmpTodos5_Levelsum a where Item_NotFH<>'''' GROUP BY Item_NotFH '
+'Union all '
+'SELECT Item_NotFH, '''' as AssignedTo_Name2, '''' as emp_DS, ''小計'' as Emp_Item, 9988 as emp_Sort, ' + replace(@CommonStringJoin3 ,'@groupcase',@groupcase3)
+'FROM #tmpTodos5_3 a where Item_NotFH<>'''' GROUP BY Item_NotFH '
+'Union all '
+'SELECT ''總計'' as Item_NotFH, ''總計'' as AssignedTo_Name2, ''總計'' as emp_DS, ''總計'' as Emp_Item, 9999 as emp_Sort, ' + replace(@CommonStringJoin4 ,'@groupcase',@groupcase4)
+'FROM #tmpTodos5_3 a where Item_NotFH<>'''' ) a ' ;
--select cast(@SqlJoinString as varchar(max)); --debug query
SET @SqlString=@SqlString+@SqlJoinString+' ;';
--Exec (@SqlJoinString+' ');
set @SqlString=@SqlString+'SELECT b.Item_NotFH as attr_ItemName, ISNULL(b.Emp_Item,'''') as attr_empcol2, b.Item_NotFH as 項目, ISNULL(b.Emp_Item,'''') as attr_EmpItem, ISNULL(b.Emp_Item,'''') as 部別, '+ replace(@CommonString,'@groupcase',@groupcase) +' '
+'FROM #tmpItem a '
+@JoinType +' JOIN #tmp_SqlJoin b ON a.ItemName=b.Item_NotFH
GROUP BY a.ItemNo, b.Item_NotFH,Emp_Item, Emp_Sort ,emp_DS
Order by a.ItemNo, CASE WHEN RIGHT(Emp_Item,2)=''小計'' THEN 0 ELSE SUM(FNSUM) END DESC , Emp_Sort; '
END
ELSE IF @p_RptType='byDept'
BEGIN
-- 5-2.byDept 所別
Set @groupcase=' from #tmp_SqlJoin p where b.Item_NotFH=p.Item_NotFH and b.Emp_Item=p.Emp_Item and b.emp_DS=p.emp_DS '
Set @groupcase1=' from #tmpTodos5_3 p WHERE p.Item_NotFH<>'''' and p.Item_NotFH=a.Item_NotFH and p.AssignedTo=a.AssignedTo and p.emp_DS=a.emp_DS and p.emp_DSNum=a.emp_DSNum and p.Emp_Item=a.Emp_Item '
Set @groupcase2=' from #tmpTodos5_Levelsum p WHERE p.Item_NotFH<>'''' and p.Item_NotFH=a.Item_NotFH '
Set @groupcase3=' from #tmpTodos5_3 p WHERE p.Item_NotFH<>'''' and p.Item_NotFH=a.Item_NotFH '
Set @groupcase4=' from #tmpTodos5_3 p where p.Item_NotFH<>'''' '
Set @SqlJoinString=@SqlJoinString+'select a.* into #tmp_SqlJoin from (
SELECT Item_NotFH,AssignedTo_Name as AssignedTo_Name2,
CASE WHEN ISNULL(emp_DS,'''')='''' THEN ISNULL(Emp_DS,''沒指定所別'') ELSE emp_DS END as emp_DS, emp_DSNum,
CASE WHEN ISNULL(Emp_Item,'''')='''' THEN ''沒指定部別'' ELSE Emp_Item END as Emp_Item,
CASE WHEN ISNULL(emp_Sort,'''')='''' THEN 666 ELSE emp_Sort END as emp_Sort, ' + replace(@CommonStringJoin1 ,'@groupcase',@groupcase1)
+'FROM #tmpTodos5_3 a where Item_NotFH<>''''
GROUP BY Item_NotFH, AssignedTo, AssignedTo_Name, emp_DS, emp_DSNum, Emp_Item, emp_Sort '
+'Union all '
+'SELECT Item_NotFH, '''' as AssignedTo_Name2, ''重要小計'' as emp_DS, 9977 as emp_DSNum, '''' as Emp_Item, 9977 as emp_Sort , ' + replace(@CommonStringJoin2,'@groupcase',@groupcase2)
+'FROM #tmpTodos5_Levelsum a where Item_NotFH<>'''' GROUP BY Item_NotFH '
+'Union all '
+'SELECT Item_NotFH, '''' as AssignedTo_Name2, ''小計'' as emp_DS, 9988 as emp_DSNum, '''' as Emp_Item, 9988 as emp_Sort, ' + replace(@CommonStringJoin3 ,'@groupcase',@groupcase3)
+'FROM #tmpTodos5_3 a where Item_NotFH<>'''' GROUP BY Item_NotFH '
+'Union all '
+'SELECT ''總計'' as Item_NotFH, ''總計'' as AssignedTo_Name2, ''總計'' as emp_DS, 9988 as emp_DSNum, ''總計'' as Emp_Item, 9999 as emp_Sort, ' + replace(@CommonStringJoin4 ,'@groupcase',@groupcase4)
+'FROM #tmpTodos5_3 a where Item_NotFH<>'''' ) a ' ;
--select cast(@SqlJoinString as varchar(max)); --debug query
SET @SqlString=@SqlString+@SqlJoinString+' ;';
--Exec (@SqlJoinString+' ;');
set @SqlString=@SqlString+'SELECT b.Item_NotFH as attr_ItemName, ISNULL(b.emp_DS,'''') as attr_EmpCol2, b.Item_NotFH as 項目, ISNULL(b.emp_DS,'''') as attr_EmpDS, ISNULL(b.emp_DS,'''') as 所別, '+ replace(@CommonString,'@groupcase',@groupcase) +' '
+'FROM #tmpItem a '
+ @JoinType +' JOIN #tmp_SqlJoin b ON a.ItemName=b.Item_NotFH
GROUP BY a.ItemNo,b.Item_NotFH, emp_DS,emp_DSNum,Emp_Item
Order by a.ItemNo,CASE WHEN RIGHT(emp_DS,2)=''小計'' THEN 0 ELSE SUM(FNSUM) END DESC, emp_DSNum ; '
END
ELSE IF @p_RptType='byPeople'
BEGIN
-- 5-3.byPeople 人員
Set @groupcase=' from #tmp_SqlJoin p where b.Item_NotFH=p.Item_NotFH and b.AssignedTo_Name2=p.AssignedTo_Name2 and b.Emp_Item=p.Emp_Item and b.emp_DS=p.emp_DS '
Set @groupcase1=' from #tmpTodos5_3 p WHERE p.Item_NotFH<>'''' and p.Item_NotFH=a.Item_NotFH and p.AssignedTo=a.AssignedTo and p.emp_DS=a.emp_DS and p.Emp_Item=a.Emp_Item '
Set @groupcase2=' from #tmpTodos5_Levelsum p WHERE p.Item_NotFH<>'''' and p.Item_NotFH=a.Item_NotFH '
Set @groupcase3=' from #tmpTodos5_3 p WHERE p.Item_NotFH<>'''' and p.Item_NotFH=a.Item_NotFH '
Set @groupcase4=' from #tmpTodos5_3 p where p.Item_NotFH<>'''' '
Set @SqlJoinString=@SqlJoinString+'select a.* into #tmp_SqlJoin from (
SELECT Item_NotFH, CASE WHEN Emp_ID LIKE ''12%'' THEN AssignedTo_Name +''(''+Emp_ID+'')'' ELSE AssignedTo_Name END as AssignedTo_Name2,
CASE WHEN ISNULL(emp_DS,'''')='''' THEN ISNULL(emp_DS,'''') ELSE emp_DS END as emp_DS,
CASE WHEN ISNULL(Emp_Item,'''')='''' THEN ''沒指定部別'' ELSE Emp_Item END as Emp_Item,
CASE WHEN ISNULL(emp_Sort,'''')='''' THEN 666 ELSE emp_Sort END as emp_Sort, ' + replace(@CommonStringJoin1 ,'@groupcase',@groupcase1)
+'FROM #tmpTodos5_3 a where Item_NotFH<>'''' GROUP BY Item_NotFH, AssignedTo, AssignedTo_Name, emp_DS,Emp_ID, Emp_Item, emp_Sort '
+'Union all '
+'SELECT Item_NotFH, ''重要小計'' as AssignedTo_Name2, '''' as emp_DS, '''' as Emp_Item, 9977 as emp_Sort , ' + replace(@CommonStringJoin2,'@groupcase',@groupcase2)
+'FROM #tmpTodos5_Levelsum a where Item_NotFH<>'''' GROUP BY Item_NotFH '
+'Union all '
+'SELECT Item_NotFH, ''小計'' as AssignedTo_Name2, '''' as emp_DS, '''' as Emp_Item, 9988 as emp_Sort, ' + replace(@CommonStringJoin3 ,'@groupcase',@groupcase3)
+'FROM #tmpTodos5_3 a where Item_NotFH<>'''' GROUP BY Item_NotFH '
+'Union all '
+'SELECT ''總計'' as Item_NotFH, ''總計'' as AssignedTo_Name2, ''總計'' as emp_DS, ''總計'' as Emp_Item, 9999 as emp_Sort, ' + replace(@CommonStringJoin4 ,'@groupcase',@groupcase4)
+'FROM #tmpTodos5_3 a where Item_NotFH<>'''' ) a ' ;
SET @SqlString=@SqlString+@SqlJoinString+' ;';
--select cast(@SqlJoinString as varchar(max)); --debug query
--Exec (@SqlJoinString+' ;');
set @SqlString=@SqlString+'SELECT b.Item_NotFH as attr_ItemName, ISNULL(b.AssignedTo_Name2,'''') as attr_EmpCol2, b.Item_NotFH as 項目, ISNULL(b.AssignedTo_Name2,'''') as attr_AssignedTo_Name2, ISNULL(b.AssignedTo_Name2,'''') as 承辦人員,
b.Emp_Item as attr_Emp_Item, b.Emp_Item as 部別, b.emp_DS as attr_emp_DS, b.emp_DS as 所別, '+ replace(@CommonString,'@groupcase',@groupcase) +' '
+'FROM #tmpItem a '
+@JoinType +' JOIN #tmp_SqlJoin b ON a.ItemName=b.Item_NotFH
GROUP BY a.ItemNo,b.Item_NotFH, AssignedTo_Name2, emp_Sort, Emp_Item, Emp_DS
Order by a.ItemNo, CASE WHEN RIGHT(AssignedTo_Name2,2)=''小計'' THEN 0 ELSE SUM(FNSUM) END DESC,emp_Sort, AssignedTo_Name2 ; '
END
--select cast(@SqlString as varchar(max)); --debug query
Exec (@SqlString +';IF OBJECT_ID(''tempdb..#tmp_SqlJoin'', ''U'') IS NOT NULL DROP TABLE #tmp_SqlJoin;' );
--IF OBJECT_ID('tempdb..#tmpEmp', 'U') IS NOT NULL DROP TABLE #tmpEmp
--IF OBJECT_ID('tempdb..#tmpItem', 'U') IS NOT NULL DROP TABLE #tmpItem
--IF OBJECT_ID('tempdb..#tmpTodosAll', 'U') IS NOT NULL DROP TABLE #tmpTodosAll
--IF OBJECT_ID('tempdb..#tmpTodos5TDList', 'U') IS NOT NULL DROP TABLE #tmpTodos5TDList
--IF OBJECT_ID('tempdb..#tmpTodos5_3All', 'U') IS NOT NULL DROP TABLE #tmpTodos5_3All
--IF OBJECT_ID('tempdb..#tmpTodos5_3', 'U') IS NOT NULL DROP TABLE #tmpTodos5_3
--IF OBJECT_ID('tempdb..#tmpTodos5_Levelsum', 'U') IS NOT NULL DROP TABLE #tmpTodos5_Levelsum
--IF OBJECT_ID('tempdb..#tb_Split2', 'U') IS NOT NULL DROP TABLE #tb_Split2
--IF OBJECT_ID('tempdb..#p_YMT', 'U') IS NOT NULL DROP TABLE #p_YMT
END
GO
DECLARE @RC int
-- TODO: 在此處設定參數值。
EXECUTE @RC = [dbo].rpt_CustCaseTot_NotFinish
@p_YM_F ='2021-05', -- 區期年月起值
@p_YM_T ='2021-07', -- 區期年月迄值
@p_RptType ='byPeople', -- 報表類別 RptType = byPeople 人員 , byDept 所別, byDS 部別
@p_CustName ='' ,
@DisplayType ='Month'
,@DataMode='Other1'-- 顯示模式 All:不限定ITEM ,ItemLimit:ITEM是否受esn_category 限定 ,Other1:限定ITEM 核駁報導
GO

Declare
@p_YM_F varchar(10)='2021-05', -- 區期年月起值
@p_YM_T varchar(10)='2021-07', -- 區期年月迄值
@p_RptType varchar(10)='byPeople', -- 報表類別 RptType = byItem 項目 , byDept 所別, byDS 部別
@p_CustName varchar(100)='' ,
@DisplayType varchar(10)='Month',
@DataMode varchar(200)='Other1' -- 顯示模式 All:不限定ITEM ,ItemLimit:ITEM是否受esn_category 限定 ,Other1:限定ITEM 核駁報導
IF OBJECT_ID('tempdb..#tmpEmp', 'U') IS NOT NULL DROP TABLE #tmpEmp
IF OBJECT_ID('tempdb..#tmpItem', 'U') IS NOT NULL DROP TABLE #tmpItem
IF OBJECT_ID('tempdb..#tmpTodosAll_1', 'U') IS NOT NULL DROP TABLE #tmpTodosAll_1
IF OBJECT_ID('tempdb..#tmpTodosAll', 'U') IS NOT NULL DROP TABLE #tmpTodosAll
IF OBJECT_ID('tempdb..#tmpTodos5TDList', 'U') IS NOT NULL DROP TABLE #tmpTodos5TDList
IF OBJECT_ID('tempdb..#tmpTodos5_3All', 'U') IS NOT NULL DROP TABLE #tmpTodos5_3All
IF OBJECT_ID('tempdb..#tmpTodos5_3', 'U') IS NOT NULL DROP TABLE #tmpTodos5_3
IF OBJECT_ID('tempdb..#tmpTodos5_Levelsum', 'U') IS NOT NULL DROP TABLE #tmpTodos5_Levelsum
IF OBJECT_ID('tempdb..#tb_Split2', 'U') IS NOT NULL DROP TABLE #tb_Split2
Declare @p_EmpItem varchar(1),@Emp_ItemNo varchar(50),@p_StartDate datetime,@p_EndDate datetime,@p_YMT_sql varchar(max)=''
,@p_StartDatet datetime
,@p_StartWeek datetime ,@i tinyint=1,@Sweekend int,@Eweekend int,@pointday int,@count int=0 --WEEK
IF OBJECT_ID('tempdb..#p_YMT', 'U') IS NOT NULL DROP TABLE #p_YMT
set @p_StartDate =Convert(datetime,@p_YM_F+'-01',126) ;
set @p_EndDate =DATEADD(day,-1,DATEADD(month, 1,cast(@p_YM_T+'-01' as datetime))) ;
select 0 as id ,Convert(varchar(10),@p_EndDate,126) as value into #p_YMT
if @DisplayType='Week'
BEGIN
--初始星期設定
Set @Sweekend=DATEPART(WEEKDAY,@p_StartDate)
Set @Eweekend=DATEPART(WEEKDAY,@p_EndDate)
Set @pointday=abs(@@DATEFIRST-7+2) --取得目標weekend day
select @p_StartWeek=case when @Sweekend>@pointday Then DATEADD(day,-(@Sweekend-@pointday)+7,@p_StartDate)
when @Sweekend<@pointday Then DATEADD(day,(@pointday-@Sweekend),@p_StartDate)
else @p_StartDate End
set @p_StartDatet=@p_StartWeek
WHILE datediff(day,@p_StartDatet,@p_EndDate) >=0
BEGIN
Set @p_YMT_sql=@p_YMT_sql+'('+cast(@i as varchar(2))+',Convert(varchar(10),DATEADD(WEEK,'+cast((@i-1) as varchar(2))+','''+Convert(varchar(10),@p_StartWeek,126)+''') ,126)),'
Set @i= @i+1
Set @p_StartDatet=DATEADD(WEEK,1,@p_StartDatet)
END
set @p_YMT_sql=left(@p_YMT_sql,len(@p_YMT_sql)-1);
exec ('insert into #p_YMT (id,Value) values ' + @p_YMT_sql)
Set @p_EndDate=Convert(varchar(10),@p_StartDatet,126)
END
Else if @DisplayType='Month'
BEGIN
Set @p_StartDatet=@p_StartDate
WHILE datediff(month,@p_StartDatet,@p_EndDate) >=0
BEGIN
Set @p_YMT_sql=@p_YMT_sql+'('+cast(@i as varchar(2))+',Convert(varchar(10),DATEADD(month,'+cast((@i-1) as varchar(2))+','''+(@p_YM_F+'-01')+''') ,126)),'
Set @i=@i+1
Set @p_StartDatet=DATEADD(month,1,@p_StartDatet)
END
set @p_YMT_sql=left(@p_YMT_sql,len(@p_YMT_sql)-1);
--print 'insert into #p_YMT (id,Value) values ' + @p_YMT_sql
exec ('insert into #p_YMT (id,Value) values' + @p_YMT_sql)
END
Select @count=max(a.id) from #p_YMT a
--/*
-- 取得「客戶名稱」的 recordset
SELECT ID as ItemNo,replace(replace(value, char(13),''), char(10),'') as ItemDesc into #tb_Split2 FROM [ufn_split](@p_CustName, ';') ;
SELECT a.Names as ItemName,a.QryKey2 as ItemNo into #tmpItem FROM esn_category a
where a.ParentId ='Rpr_Cust_NotFinish' and a.Is_Enabled=1;
-- 第二部, 客戶名稱不會只有「华星」, 第一部, 客戶名稱只會有「华星」
if (SELECT COUNT(*) FROM #tb_Split2 where ItemDesc like '%华星%' or ItemDesc like '%華星%' )>0
delete from #tmpItem where ItemNo between 900 and 990
if(@DataMode ='Other1')
delete from #tmpItem where Not (ItemName like '%核駁%' or ItemName like '%總計%')
print('1:'+convert(varchar(20),getdate(),126))
-- 員工部別 (因該員工會多部別, 放在Emp_DS2裡, 所以要distinct )
SELECT distinct a.user_name as Emp_ID, cn_name as Emp_Name, isnull(a.Emp_DS,'') as Emp_DS, isnull(a.Emp_DSNum,'') as Emp_DSNum, isnull(a.Emp_Item,'') as Emp_Item, isnull(a.Emp_ItemNum,'') as Emp_ItemNum, 0 as Emp_Sort ,a.user_id
into #tmpEmp
FROM [dbo].[evw_Employee] a
--select * from i_ctrl_proc a
--where a.ctrl_proc_zh_tw like '%核駁%'
--return
-- 2.取得: ToDos
print('3:'+convert(varchar(20),getdate(),126))
select sn,a.proc_id,CaseNo,TaskDescription,StartDate2,AttorneyDueDate,AssignedTo_userid,Points,ExchangeRate,ToDosStatus,p.case_id,p.customer_name as Client_CompanyName,a.ecFlowKey,a.ecNames,a.TaskClass_id
--b.Emp_ID as AssignedTo,b.Emp_DS,b.Emp_Item,b.Emp_Name as AssignedTo_Name,
into #tmpTodosAll_1
--from evw_esn_todos a
from evw_esn_todos a
inner join evw_p_proc_info ppi on a.proc_id=ppi.proc_id
left join [evw_p_case_info] p on p.case_id=a.case_id
inner join #tb_Split2 s on p.customer_name like s.ItemDesc +'%'
where a.AttorneyDueDate between @p_StartDate AND @p_EndDate AND isnull(ppi.finish_date,'')='' and
( a.ecFlowKey in('SubTodos_02','SubTodos_06','SubTodos_03','SubTodos_05') OR
CHARINDEX('rce', LOWER(a.TaskDescription))>0 OR CHARINDEX('ids', LOWER(a.TaskDescription))>0 OR CHARINDEX('繳費領證', a.TaskDescription)>0 OR CHARINDEX('客戶看稿', a.TaskDescription)>0 )
--select * from #tmpTodosAll_1 where ecFlowKey='SubTodos_05'
--select a. * from evw_esn_todos a
--where CHARINDEX('rce', LOWER(a.TaskDescription))>0 OR CHARINDEX('ids', LOWER(a.TaskDescription))>0
--select top 100 * from evw_esn_todos a
--select * from #tmpTodosAll_1 a
--where a.TaskDescription like '%核駁%'
print('3-1:'+convert(varchar(20),getdate(),126))
SELECT a.* ,
case when ibt.business_type_code='PN' THEN 'Y' END as PctNationalPhase,Cast(a.sn as varchar(20)) as Flowkey
,p.PatentType,isnull(c.review_stage,'') as review_stage,case when p.country_id='EP' then 'EU' else p.country_id end as office
--,(select value from [ufn_split](a.CaseNo,'-') a where a.ID=2) as CaseNo_r
,e.Emp_ID,e.Emp_ID as AssignedTo, e.Emp_Name as AssignedTo_Name,e.Emp_DSNum, e.Emp_Item, e.Emp_ItemNum, 0 as Emp_Sort ,e.Emp_DS,e.user_id
--,p.CaseType,p.CaseType_Name
into #tmpTodosAll
FROM #tmpTodosAll_1 a
inner join [evw_p_case_info] p on p.case_id=a.case_id
inner join p_proc_info c on c.proc_id =a.proc_id
left join i_business_type ibt on ibt.business_type_id=p.business_type_id
left join #tmpEmp e on a.AssignedTo_userid=e.user_id
;
--select * from #tmpTodosAll a
--where a.AssignedTo_Name liKe '%邱世%'
--select * from p_proc_info a
--where a.proc_id='c16e0adb-2b42-4aca-9071-84210e5c0182'
print('4:'+convert(varchar(20),getdate(),126))
-- 5.取得:「未完成」資料
SELECT CASE WHEN (a.CaseNo like '%-M%'or a.CaseNo like '%-CN%') AND ecFlowKey='SubTodos_06' THEN 'CN 查新' END as Item_NotFH1, -- CN 查新(未完成) -->1.案件編號(包含)-M,-CN,3.管制事項:(包含)提出報告,提出报告,4.OA階段為空白
CASE WHEN a.Office='CN' AND review_stage='' AND a.PatentType IN ('PN01', 'PN02', 'PN03') AND ecFlowKey='SubTodos_02' THEN 'CN 新申請' END as Item_NotFH2, -- CN 新申請(未完成) -->1.國家為CN, 2.案件類別: PN01, PN02, PN03, 3.管制事項:完成初稿,4.OA階段為空白
CASE WHEN a.Office='WO' AND review_stage='' AND a.PatentType IN ('PN01','PN07') AND ecFlowKey='SubTodos_02' THEN 'PCT 新申請' END as Item_NotFH3, -- PCT 新申請(未完成)-->1.國家為WO, 2.案件類別: PN01, PN07, 3.管制事項:完成初稿,4.OA階段為空白 5.是 PCT國家階段
CASE WHEN a.Office NOT IN ('CN', 'WO') and review_stage='' AND a.PatentType='PN01' AND ecFlowKey='SubTodos_02' THEN a.Office+' 新申請' END as Item_NotFH4, -- XX 新申請(未完成) -->1.國家為XX, 2.案件類別: PN01 , 3.是 PCT國家階段, 4.管制事項:完成初稿
CASE WHEN a.Office IN('CN') AND ecFlowKey='SubTodos_02' AND review_stage<>'' THEN 'CN OA' END as Item_NotFH5, -- CN OA(未完成) -->1.國家為CN, 2.抓管制事項:(包含)完成初稿, 3.完成日落在該月份,,4.OA階段不為空白
CASE WHEN ecFlowKey='SubTodos_02' AND review_stage<>'' AND a.Office NOT IN('CN') THEN a.Office+' OA' END as Item_NotFH6, -- XX OA(未完成) -->1.國家為XX, 2.抓管制事項:(包含)完成初稿, 3.完成日落在該月份,,4.OA階段不為空白
--CASE WHEN a.Office IN('CN') and CHARINDEX('核駁報導',a.TaskDescription)>0 THEN 'CN 核駁' END as Item_NotFH51, -- CN-核駁(未完成) -->1.國家為CN, 2.抓管制事項:(包含)核駁報導
--CASE WHEN a.TaskDescription='核駁報導' AND a.Office NOT IN('CN') THEN a.Office+' 核駁' END as Item_NotFH61, -- XX-核駁(未完成) -->1.國家為XX, 2.抓管制事項:(包含)核駁報導
CASE WHEN a.ecFlowKey='SubTodos_05' THEN a.Office+' 核駁' END as Item_NotFH61, -- XX-核駁(未完成) -->1.國家為XX, 2.抓管制事項:(包含)核駁報導
CASE WHEN CHARINDEX('rce', LOWER(a.TaskDescription))>0 THEN 'RCE' END as Item_NotFH7, -- RCE(未完成) -->1.不分國家, 2.抓管制事項:(包含)rce
CASE WHEN CHARINDEX('ids', LOWER(a.TaskDescription))>0 THEN 'IDS' END as Item_NotFH8, -- IDS(未完成) -->1.不分國家, 2.抓管制事項:(包含)IDS
CASE WHEN (a.Office<>'CN' and TaskDescription in('繳費領證','取得證書')) or (a.Office='CN' and TaskDescription in('辦理登記手續')) THEN '繳費領證' END as Item_NotFH9, -- 繳費領證(未完成) -->1.不分國家, 2.抓管制事項:(包含)办理登记手续,(包含)繳費領證,(包含)缴纳领证
CASE WHEN ecFlowKey='SubTodos_03' THEN a.Office+' 核稿' END as Item_NotFH10, -- 核稿(未完成) -->1.國家為XX, 2.抓管制事項:(包含)客戶看稿
a.FlowKey, a.CaseNo, a.PctNationalPhase, a.AttorneyDueDate, getdate() as sysDate,
CASE WHEN a.AttorneyDueDate='' THEN '' ELSE Convert(varchar(10),a.AttorneyDueDate,126) END as YM_AD,
--CASE WHEN (a.FinishedDate between @p_StartDate AND @p_EndDate) THEN Convert(varchar(10),a.FinishedDate,126) ELSE '' END as YM_FH,
--CASE WHEN FinishedDate=''or FinishedDate is null THEN getdate() ELSE FinishedDate END as FinishedDate2, a.StartDate2,
--CASE WHEN a.AttorneyDueDate<>'' THEN DATEDIFF(day,getdate(),AttorneyDueDate) ELSE 0 END as NotFH_Days,
a.AssignedTo_Name--, a.AssignedTo_DeptID, a.AssignedTo_DeptName, a.Matter, a.MatterName, a.Attorney, a.Attorney_Nationality, a.Office, a.Office_Name, a.Client, a.CaseType, a.CaseType_Desc
, a.Emp_ID, a.Emp_DS, a.Emp_DSNum, a.Emp_Item, a.Emp_Sort,a.AssignedTo,
CASE WHEN isnull(a.user_id,'')='' THEN '沒指定承辦人' ELSE AssignedTo_Name END as AssignedTo_Name2, a.TaskDescription, a.PatentType
--, a.AssignedTo,PatentType_Name , a.ToDosStatus, a.ToDosStatus_Name, a.AssignStatus, a.AssignStatus_Name
,ISNULL(b.CaseLevel,'') as CaseLevel, ISNULL(b.CaseLevelDesc,'') as CaseLevelDesc, ISNULL(c.IsPriority,'') as IsPriority, ISNULL(c.IsPriorityDesc,'') as IsPriorityDesc
into #tmpTodos5_3All
FROM #tmpTodosAll a
left join evw_qresult_CaseLevel b on a.CaseNo=b.CaseNo
left join evw_qresult_caseispriority c on a.CaseNo=c.CaseNo
--select a.AttorneyDueDate, * from #tmpTodosAll a
--where a.ecFlowKey='SubTodos_05'
--select * from evw_esn_todos a
--where a.ecFlowKey='SubTodos_05'
select CAST(Item_NotFH1 as varCHAR(20)) as Item_NotFH, a.* into #tmpTodos5_3 from #tmpTodos5_3All a where Item_NotFH1<>'';
Insert into #tmpTodos5_3
select Item_NotFH2 as Item_NotFH, a.* from #tmpTodos5_3All a where Item_NotFH2<>''
Union select Item_NotFH3 as Item_NotFH, a.* from #tmpTodos5_3All a where Item_NotFH3<>''
Union select Item_NotFH4 as Item_NotFH, a.* from #tmpTodos5_3All a where Item_NotFH4<>''
Union select Item_NotFH5 as Item_NotFH, a.* from #tmpTodos5_3All a where Item_NotFH5<>''
Union select Item_NotFH6 as Item_NotFH, a.* from #tmpTodos5_3All a where Item_NotFH6<>''
Union select Item_NotFH7 as Item_NotFH, a.* from #tmpTodos5_3All a where Item_NotFH7<>''
Union select Item_NotFH8 as Item_NotFH, a.* from #tmpTodos5_3All a where Item_NotFH8<>''
Union select Item_NotFH9 as Item_NotFH, a.* from #tmpTodos5_3All a where Item_NotFH9<>''
Union select Item_NotFH10 as Item_NotFH, a.* from #tmpTodos5_3All a where Item_NotFH10<>''
--Union select Item_NotFH51 as Item_NotFH, a.* from #tmpTodos5_3All a where Item_NotFH51<>''
Union select Item_NotFH61 as Item_NotFH, a.* from #tmpTodos5_3All a where Item_NotFH61<>'';
-- ALTER TABLE tmpTodos6_3 ADD INDEX(`CaseNo`);
-- 3-1.新增項目之重要案件小計列暫存檔
SELECT Item_NotFH, AssignedTo_Name2, emp_DS, Emp_Item, emp_Sort, YM_AD, AttorneyDueDate, sysDate, FlowKey
into #tmpTodos5_Levelsum
FROM #tmpTodos5_3 WHERE (CaseLevel='1' OR IsPriority='Y'); -- CaseLevel=專利等級: 1=重要專利, 2=常規專利, IsPriority=是否優先處理: Y=是
if not exists(select * FROM #tmpTodos5_Levelsum where Item_NotFH='CN 查新')
begin
insert #tmpTodos5_Levelsum SELECT 'CN 查新' as Item_NotFH, '' as AssignedTo_Name2, '' as emp_DS, '' as Emp_Item, '' as emp_Sort, '' as YM_AD, '' as AttorneyDueDate, '' as sysDate, '' as FlowKey;
end ;
-- SELECT * FROM tmpTodos6_3 WHERE (CaseLevel='1' OR IsPriority='Y'); -- CaseLevel=專利等級: 1=重要專利, 2=常規專利, IsPriority=是否優先處理: Y=是
-- 3-2.新增項目小計列暫存檔
--DROP TEMPORARY TABLE IF EXISTS tmpTodos6_4sum;
--CREATE TEMPORARY TABLE tmpTodos6_4sum as
--SELECT * FROM tmpTodos6_3;
-- 3-3.新增總計列暫存檔
--DROP TEMPORARY TABLE IF EXISTS tmpTodos6_4tot;
--CREATE TEMPORARY TABLE tmpTodos6_4tot as
--SELECT * FROM tmpTodos6_3;
--*/
-- 5.結果
declare @SqlString varchar(max)='',@SqlJoinString varchar(max)='',@CommonString varchar(max)='',@CommonStringJoin1 varchar(max)=''
,@CommonStringJoin2 varchar(max)='',@CommonStringJoin3 varchar(max)='',@CommonStringJoin4 varchar(max)='',@SortString varchar(500)='', @cnt tinyint=1,@cntT varchar(3)='',@cntO varchar(3)=''
,@groupcase1 varchar(300)='',@groupcase2 varchar(300)='',@groupcase3 varchar(300)='',@groupcase4 varchar(300)='',@groupcase varchar(300)='',@p_YMT_value varchar(10)
,@DateCase1 varchar(200)= '',@DateCase2 varchar(200)= '',@DateCase3 varchar(200)= '',@DateCase4 varchar(200)= '',@JoinType varchar(50)= '';
WHILE @cnt <= @count
BEGIN
SET @cntT = RIGHT(REPLICATE('0', 2) + CAST(@cnt AS varchar), 2); -- 補零
SET @cntO = CAST(@cnt AS varchar);
SET @p_YMT_value =(SELECT Value FROM #p_YMT WHERE id = @cntO );
if @DisplayType ='Week'
BEGIN
print 1
Set @DateCase1='CASE WHEN ''' + @p_YMT_value + ''' <=YM_AD and Dateadd(week,1,cast(''' + @p_YMT_value + ''' as datetime)) > YM_AD AND AttorneyDueDate < sysDate '
Set @DateCase2='CASE WHEN ''' + @p_YMT_value + ''' <=YM_AD and Dateadd(week,1,cast(''' + @p_YMT_value + ''' as datetime)) > YM_AD AND AttorneyDueDate >= sysDate '
--Set @DateCase3=@DateCase1
--Set @DateCase4='0'
End
Else IF @DisplayType ='Month'
BEGIN
print 2
Set @DateCase1='CASE WHEN Convert(varchar(7),YM_AD,126)= ''' + Convert(varchar(7),@p_YMT_value,126) + ''' AND AttorneyDueDate < sysDate '
Set @DateCase2='CASE WHEN Convert(varchar(7),YM_AD,126)= ''' + Convert(varchar(7),@p_YMT_value,126) + ''' AND AttorneyDueDate >= sysDate'
--Set @DateCase2='CASE WHEN Convert(varchar(7),YM_ST,126)= ''' + Convert(varchar(7),@p_YMT_value,126) + ''''
--Set @DateCase3='CASE WHEN Convert(varchar(7),YM_FH,126)= ''' + Convert(varchar(7),@p_YMT_value,126) + ''''
--Set @DateCase4='0'
END
BEGIN
set @CommonString=@CommonString
+'CASE WHEN '''+Convert(varchar(10),@p_EndDate,126)+''' >= '''+@p_YMT_value+''' THEN 1 ELSE 0 END v'+@cntT
+',STUFF ((SELECT distinct '','' + (CASE WHEN attr_NotFN'+@cntT+'<>'''' THEN attr_NotFN'+@cntT+' END) @groupcase FOR XML PATH('''')), 1, 1, N'''') as attr_NotFN'+@cntT+'_todos2, SUM(ISNULL(NotFN'+@cntT+',0)) as 逾期_'+@cntT
+', STUFF ((SELECT distinct '','' + (CASE WHEN attr_YesFN'+@cntT+'<>'''' THEN attr_YesFN'+@cntT+' END) @groupcase FOR XML PATH('''')), 1, 1, N'''') as attr_YesFN'+@cntT+'_todos2, SUM(ISNULL(YesFN'+@cntT+',0)) as 未逾期_'+@cntT+','
Set @CommonStringJoin1=@CommonStringJoin1
+ 'STUFF ((SELECT distinct '','' + ( '+@DateCase1+' THEN FlowKey END) @groupcase FOR XML PATH('''')), 1, 1, N'''') as attr_NotFN'+@cntT
+', SUM('+@DateCase1+' THEN 1 ELSE 0 END) as NotFN'+@cntT
+',STUFF ((SELECT distinct '','' + ('+@DateCase2+' THEN FlowKey END) @groupcase FOR XML PATH('''')), 1, 1, N'''') as attr_YesFN'+@cntT
+', SUM('+@DateCase2+' THEN 1 ELSE 0 END) as YesFN'+@cntT+',';
END
SET @cnt = @cnt + 1;
END
if(@DataMode in ('ItemLimit','Other1'))
Set @JoinType='Inner'
else
Set @JoinType='Right'
--select cast(@CommonStringJoin1 as varchar(max)); --debug query
set @CommonString=@CommonString +'1 as v13, STUFF ((SELECT distinct '','' + (CASE WHEN attr_sum<>'''' THEN attr_sum END) @groupcase FOR XML PATH('''')), 1, 1, N'''') as attr_sum_todos2,SUM(ISNULL(FNSUM,0)) as 小計 ';
Set @CommonStringJoin1=@CommonStringJoin1+'STUFF ((SELECT distinct '','' + FlowKey @groupcase FOR XML PATH('''')), 1, 1, N'''') as attr_sum, COUNT(distinct FlowKey) as FNSUM ';
Set @CommonStringJoin2=replace(@CommonStringJoin1,' COUNT(distinct FlowKey)','SUM(CASE WHEN ISNULL(FlowKey,'''')<>'''' THEN 1 ELSE 0 END)');
Set @CommonStringJoin3=@CommonStringJoin1;
Set @CommonStringJoin4=@CommonStringJoin1;
IF @p_RptType='byDS'
BEGIN
-- 5-1.byDS 部別
Set @groupcase=' from #tmp_SqlJoin p where b.Item_NotFH=p.Item_NotFH and b.Emp_Item=p.Emp_Item and b.emp_DS=p.emp_DS '
--Set @groupcase1=' from #tmpTodos6_3 p WHERE p.Item_NotFH<>'''' and p.Item_NotFH=a.Item_NotFH and p.AssignedTo=a.AssignedTo and p.emp_DSNum=a.emp_DSNum and p.emp_DS=a.emp_DS and p.Emp_Item=a.Emp_Item '
Set @groupcase1=' from #tmpTodos5_3 p WHERE p.Item_NotFH<>'''' and p.Item_NotFH=a.Item_NotFH and p.AssignedTo=a.AssignedTo and p.emp_DS=a.emp_DS and p.emp_DSNum=a.emp_DSNum and p.Emp_Item=a.Emp_Item '
Set @groupcase2=' from #tmpTodos5_Levelsum p WHERE p.Item_NotFH<>'''' and p.Item_NotFH=a.Item_NotFH '
Set @groupcase3=' from #tmpTodos5_3 p WHERE p.Item_NotFH<>'''' and p.Item_NotFH=a.Item_NotFH '
Set @groupcase4=' from #tmpTodos5_3 p where p.Item_NotFH<>'''' '
Set @SqlJoinString=@SqlJoinString+'select a.* into #tmp_SqlJoin from (
SELECT Item_NotFH, AssignedTo_Name as AssignedTo_Name2, emp_DS,
CASE WHEN ISNULL(Emp_Item,'''')='''' THEN ''沒指定部別'' ELSE Emp_Item END as Emp_Item,
CASE WHEN ISNULL(emp_Sort,'''')='''' THEN 666 ELSE emp_Sort END as emp_Sort, ' + replace(@CommonStringJoin1 ,'@groupcase',@groupcase1)
+'FROM #tmpTodos5_3 a where Item_NotFH<>''''
GROUP BY Item_NotFH, AssignedTo, AssignedTo_Name, emp_DS, emp_DSNum, Emp_Item, emp_Sort '
+'Union all '
+'SELECT Item_NotFH, '''' as AssignedTo_Name2, '''' as emp_DS, ''重要小計'' as Emp_Item, 9977 as emp_Sort, ' + replace(@CommonStringJoin2,'@groupcase',@groupcase2)
+'FROM #tmpTodos5_Levelsum a where Item_NotFH<>'''' GROUP BY Item_NotFH '
+'Union all '
+'SELECT Item_NotFH, '''' as AssignedTo_Name2, '''' as emp_DS, ''小計'' as Emp_Item, 9988 as emp_Sort, ' + replace(@CommonStringJoin3 ,'@groupcase',@groupcase3)
+'FROM #tmpTodos5_3 a where Item_NotFH<>'''' GROUP BY Item_NotFH '
+'Union all '
+'SELECT ''總計'' as Item_NotFH, ''總計'' as AssignedTo_Name2, ''總計'' as emp_DS, ''總計'' as Emp_Item, 9999 as emp_Sort, ' + replace(@CommonStringJoin4 ,'@groupcase',@groupcase4)
+'FROM #tmpTodos5_3 a where Item_NotFH<>'''' ) a ' ;
--select cast(@SqlJoinString as varchar(max)); --debug query
SET @SqlString=@SqlString+@SqlJoinString+' ;';
--Exec (@SqlJoinString+' ');
set @SqlString=@SqlString+'SELECT b.Item_NotFH as attr_ItemName, ISNULL(b.Emp_Item,'''') as attr_empcol2, b.Item_NotFH as 項目, ISNULL(b.Emp_Item,'''') as attr_EmpItem, ISNULL(b.Emp_Item,'''') as 部別, '+ replace(@CommonString,'@groupcase',@groupcase) +' '
+'FROM #tmpItem a '
+@JoinType +' JOIN #tmp_SqlJoin b ON a.ItemName=b.Item_NotFH
GROUP BY a.ItemNo, b.Item_NotFH,Emp_Item, Emp_Sort ,emp_DS
Order by a.ItemNo, CASE WHEN RIGHT(Emp_Item,2)=''小計'' THEN 0 ELSE SUM(FNSUM) END DESC , Emp_Sort; '
END
ELSE IF @p_RptType='byDept'
BEGIN
-- 5-2.byDept 所別
Set @groupcase=' from #tmp_SqlJoin p where b.Item_NotFH=p.Item_NotFH and b.Emp_Item=p.Emp_Item and b.emp_DS=p.emp_DS '
Set @groupcase1=' from #tmpTodos5_3 p WHERE p.Item_NotFH<>'''' and p.Item_NotFH=a.Item_NotFH and p.AssignedTo=a.AssignedTo and p.emp_DS=a.emp_DS and p.emp_DSNum=a.emp_DSNum and p.Emp_Item=a.Emp_Item '
Set @groupcase2=' from #tmpTodos5_Levelsum p WHERE p.Item_NotFH<>'''' and p.Item_NotFH=a.Item_NotFH '
Set @groupcase3=' from #tmpTodos5_3 p WHERE p.Item_NotFH<>'''' and p.Item_NotFH=a.Item_NotFH '
Set @groupcase4=' from #tmpTodos5_3 p where p.Item_NotFH<>'''' '
Set @SqlJoinString=@SqlJoinString+'select a.* into #tmp_SqlJoin from (
SELECT Item_NotFH,AssignedTo_Name as AssignedTo_Name2,
CASE WHEN ISNULL(emp_DS,'''')='''' THEN ISNULL(Emp_DS,''沒指定所別'') ELSE emp_DS END as emp_DS, emp_DSNum,
CASE WHEN ISNULL(Emp_Item,'''')='''' THEN ''沒指定部別'' ELSE Emp_Item END as Emp_Item,
CASE WHEN ISNULL(emp_Sort,'''')='''' THEN 666 ELSE emp_Sort END as emp_Sort, ' + replace(@CommonStringJoin1 ,'@groupcase',@groupcase1)
+'FROM #tmpTodos5_3 a where Item_NotFH<>''''
GROUP BY Item_NotFH, AssignedTo, AssignedTo_Name, emp_DS, emp_DSNum, Emp_Item, emp_Sort '
+'Union all '
+'SELECT Item_NotFH, '''' as AssignedTo_Name2, ''重要小計'' as emp_DS, 9977 as emp_DSNum, '''' as Emp_Item, 9977 as emp_Sort , ' + replace(@CommonStringJoin2,'@groupcase',@groupcase2)
+'FROM #tmpTodos5_Levelsum a where Item_NotFH<>'''' GROUP BY Item_NotFH '
+'Union all '
+'SELECT Item_NotFH, '''' as AssignedTo_Name2, ''小計'' as emp_DS, 9988 as emp_DSNum, '''' as Emp_Item, 9988 as emp_Sort, ' + replace(@CommonStringJoin3 ,'@groupcase',@groupcase3)
+'FROM #tmpTodos5_3 a where Item_NotFH<>'''' GROUP BY Item_NotFH '
+'Union all '
+'SELECT ''總計'' as Item_NotFH, ''總計'' as AssignedTo_Name2, ''總計'' as emp_DS, 9988 as emp_DSNum, ''總計'' as Emp_Item, 9999 as emp_Sort, ' + replace(@CommonStringJoin4 ,'@groupcase',@groupcase4)
+'FROM #tmpTodos5_3 a where Item_NotFH<>'''' ) a ' ;
--select cast(@SqlJoinString as varchar(max)); --debug query
SET @SqlString=@SqlString+@SqlJoinString+' ;';
--Exec (@SqlJoinString+' ;');
set @SqlString=@SqlString+'SELECT b.Item_NotFH as attr_ItemName, ISNULL(b.emp_DS,'''') as attr_EmpCol2, b.Item_NotFH as 項目, ISNULL(b.emp_DS,'''') as attr_EmpDS, ISNULL(b.emp_DS,'''') as 所別, '+ replace(@CommonString,'@groupcase',@groupcase) +' '
+'FROM #tmpItem a '
+ @JoinType +' JOIN #tmp_SqlJoin b ON a.ItemName=b.Item_NotFH
GROUP BY a.ItemNo,b.Item_NotFH, emp_DS,emp_DSNum,Emp_Item
Order by a.ItemNo,CASE WHEN RIGHT(emp_DS,2)=''小計'' THEN 0 ELSE SUM(FNSUM) END DESC, emp_DSNum ; '
END
ELSE IF @p_RptType='byPeople'
BEGIN
-- 5-3.byPeople 人員
Set @groupcase=' from #tmp_SqlJoin p where b.Item_NotFH=p.Item_NotFH and b.AssignedTo_Name2=p.AssignedTo_Name2 and b.Emp_Item=p.Emp_Item and b.emp_DS=p.emp_DS '
Set @groupcase1=' from #tmpTodos5_3 p WHERE p.Item_NotFH<>'''' and p.Item_NotFH=a.Item_NotFH and p.AssignedTo=a.AssignedTo and p.emp_DS=a.emp_DS and p.Emp_Item=a.Emp_Item '
Set @groupcase2=' from #tmpTodos5_Levelsum p WHERE p.Item_NotFH<>'''' and p.Item_NotFH=a.Item_NotFH '
Set @groupcase3=' from #tmpTodos5_3 p WHERE p.Item_NotFH<>'''' and p.Item_NotFH=a.Item_NotFH '
Set @groupcase4=' from #tmpTodos5_3 p where p.Item_NotFH<>'''' '
Set @SqlJoinString=@SqlJoinString+'select a.* into #tmp_SqlJoin from (
SELECT Item_NotFH, CASE WHEN Emp_ID LIKE ''12%'' THEN AssignedTo_Name +''(''+Emp_ID+'')'' ELSE AssignedTo_Name END as AssignedTo_Name2,
CASE WHEN ISNULL(emp_DS,'''')='''' THEN ISNULL(emp_DS,'''') ELSE emp_DS END as emp_DS,
CASE WHEN ISNULL(Emp_Item,'''')='''' THEN ''沒指定部別'' ELSE Emp_Item END as Emp_Item,
CASE WHEN ISNULL(emp_Sort,'''')='''' THEN 666 ELSE emp_Sort END as emp_Sort, ' + replace(@CommonStringJoin1 ,'@groupcase',@groupcase1)
+'FROM #tmpTodos5_3 a where Item_NotFH<>'''' GROUP BY Item_NotFH, AssignedTo, AssignedTo_Name, emp_DS,Emp_ID, Emp_Item, emp_Sort '
+'Union all '
+'SELECT Item_NotFH, ''重要小計'' as AssignedTo_Name2, '''' as emp_DS, '''' as Emp_Item, 9977 as emp_Sort , ' + replace(@CommonStringJoin2,'@groupcase',@groupcase2)
+'FROM #tmpTodos5_Levelsum a where Item_NotFH<>'''' GROUP BY Item_NotFH '
+'Union all '
+'SELECT Item_NotFH, ''小計'' as AssignedTo_Name2, '''' as emp_DS, '''' as Emp_Item, 9988 as emp_Sort, ' + replace(@CommonStringJoin3 ,'@groupcase',@groupcase3)
+'FROM #tmpTodos5_3 a where Item_NotFH<>'''' GROUP BY Item_NotFH '
+'Union all '
+'SELECT ''總計'' as Item_NotFH, ''總計'' as AssignedTo_Name2, ''總計'' as emp_DS, ''總計'' as Emp_Item, 9999 as emp_Sort, ' + replace(@CommonStringJoin4 ,'@groupcase',@groupcase4)
+'FROM #tmpTodos5_3 a where Item_NotFH<>'''' ) a ' ;
SET @SqlString=@SqlString+@SqlJoinString+' ;';
--select cast(@SqlJoinString as varchar(max)); --debug query
Exec (@SqlJoinString+' ;');
set @SqlString=@SqlString+'SELECT b.Item_NotFH as attr_ItemName, ISNULL(b.AssignedTo_Name2,'''') as attr_EmpCol2, b.Item_NotFH as 項目, ISNULL(b.AssignedTo_Name2,'''') as attr_AssignedTo_Name2, ISNULL(b.AssignedTo_Name2,'''') as 承辦人員,
b.Emp_Item as attr_Emp_Item, b.Emp_Item as 部別, b.emp_DS as attr_emp_DS, b.emp_DS as 所別, '+ replace(@CommonString,'@groupcase',@groupcase) +' '
+'FROM #tmpItem a '
+@JoinType +' JOIN #tmp_SqlJoin b ON a.ItemName=b.Item_NotFH
GROUP BY a.ItemNo,b.Item_NotFH, AssignedTo_Name2, emp_Sort, Emp_Item, Emp_DS
Order by a.ItemNo, CASE WHEN RIGHT(AssignedTo_Name2,2)=''小計'' THEN 0 ELSE SUM(FNSUM) END DESC,emp_Sort, AssignedTo_Name2 ; '
END
--select cast(@SqlString as varchar(max)); --debug query
Exec (@SqlString +';IF OBJECT_ID(''tempdb..#tmp_SqlJoin'', ''U'') IS NOT NULL DROP TABLE #tmp_SqlJoin;' );
return
\ No newline at end of file
Alter PROCEDURE rpt_CustCaseTot_Parttime(
@p_sY varchar(4), -- 年度
@p_Mon varchar(2), -- 月份
@p_CustName nvarchar(100) -- 客戶名稱
)
AS
BEGIN
-- 外包人員案件統計表
Declare @p_Year varchar(4),@p_MonF varchar(2),@p_MonT varchar(2),@p_StartDate datetime,@p_EndDate datetime
set @p_Year = @p_sY;
IF @p_Mon='0' Set @p_Mon=''
IF @p_Mon='' SET @p_MonF='01'
ELSE SET @p_MonF=@p_Mon;
IF @p_Mon='' SET @p_MonT='12' ELSE SET @p_MonT=@p_Mon;
set @p_MonF =RIGHT(REPLICATE('0',2) + CAST(@p_MonF as varchar),2);
set @p_MonT =RIGHT(REPLICATE('0',2) + CAST(@p_MonT as varchar),2);
set @p_StartDate=cast((@p_Year+'-'+ @p_MonF+'-01') as datetime) ;
set @p_EndDate=DATEADD(month,1,cast((@p_Year+'-'+ @p_MonF+'-01') as datetime)) ;
print('1:'+convert(varchar(20),getdate(),126))
-- 1.取得: 外包人員
select a1.*, CN_name as Emp_name, b.user_id into #tmpPT_EmployeeList from (
select pn_userid as PT_EmpID,-- CN_name as Emp_name, a.user_id,
SUM(ISNULL(CN_QN,0)) as CN_QN, SUM(ISNULL(PCT_AP,0)) as PCT_AP, SUM(ISNULL(CN_AP,0)) as CN_AP, SUM(ISNULL(JP_AP,0)) as JP_AP, SUM(ISNULL(US_AP,0)) as US_AP,
SUM(ISNULL(EP_AP,0)) as EP_AP, SUM(ISNULL(RU_AP,0)) as RU_AP, SUM(ISNULL(KR_AP,0)) as KR_AP, SUM(ISNULL(IN_AP,0)) as IN_AP
from esn_pdatenum c
--inner join evw_employee a on a.user_name=c.pn_userid-- AND c.pn_Mon between @p_MonF AND @p_MonT AND c.Is_Enabled='1'
WHERE c.Is_Enabled='1' AND pn_Year=@p_Year AND pn_Mon between @p_MonF AND @p_MonT
--where a.Emp_DSNUM=80
GROUP BY pn_userid
) a1 left join evw_employee b on a1.PT_EmpID=b.user_name
;
--select * from evw_employee a
--select * from esn_pdatenum a
--where a.cn_name like '%德力%'
-- or a.cn_name like '%外包人員%' or a.cn_name like '%金城%'
-- or a.cn_name like '%汇泽%'
-- or a.cn_name like '%嘉德%'
-- return
insert #tmpPT_EmployeeList
select 'tot' as PT_EmpID,
SUM(CN_QN) as CN_QN, SUM(PCT_AP) as PCT_AP, SUM(CN_AP) as CN_AP,
SUM(JP_AP) as JP_AP, SUM(US_AP) as US_AP, SUM(EP_AP) as EP_AP, SUM(RU_AP) as RU_AP, SUM(KR_AP) as KR_AP, SUM(IN_AP) as IN_AP,
'總計' as Emp_Name,'' as user_id
FROM #tmpPT_EmployeeList ;
-- 2.取得: 所有 patentcase
print('2:'+convert(varchar(20),getdate(),126))
SELECT a.case_id,a.PatentType,a.PatentType_Name,a.case_volume,a.case_name,a.case_name_en,a.charge_dept_id,a.charge_deptName,
a.charge_deptFullName,a.charge_date,a.case_status_id,a.case_status_zh_tw,a.charge_user_id,a.charge_userID,a.charge_UserCName
, a.customer_name as Client_CompanyName,a.country_id as PatentOffice,a.case_volume as flowkey,
b.pic_userID as CaseAssignedTo,b.pic_UserCName as CaseAssignedTo_Name ,(select value from [ufn_split](a.case_volume,'-') a where a.ID=2) as CaseNo_r
into #tmpPatCase_All
FROM evw_p_case_info a
left join evw_p_case_pic_list b on a.case_id=b.obj_id
INNER JOIN #tmpPT_EmployeeList e ON b.pic_userID = e.PT_EmpID -- 承辦人=CaseAssignedTo
WHERE a.charge_date between @p_StartDate AND @p_EndDate -- 立案日=CaseStartDate
AND a.customer_name like '%'+@p_CustName+'%' -- 客戶名稱
;
print('3:'+convert(varchar(20),getdate(),126))
select* into #tmpTodos_All_1 from esn_Todos a
WHERE ((a.StartDate2 between @p_StartDate AND @p_EndDate) OR -- 起始日
(a.FinishedDate between @p_StartDate AND @p_EndDate) OR -- 完成日
(a.AttorneyDueDate between @p_StartDate AND @p_EndDate)) -- 事務所到期日
-- 3.取得: 所有 ToDos
SELECT a.*,b.customer_name as Client_CompanyName, case when ics.case_status_code='NF_P' THEN 'Y' END as PctNationalPhase,
b.country_id as Office,(select value from [ufn_split](a.caseNO,'-') a where a.ID=2) as CaseNo_r,Cast(a.sn as varchar(20)) as Flowkey
into #tmpTodos_All
FROM #tmpTodos_All_1 a
INNER JOIN #tmpPT_EmployeeList e ON a.AssignedTo_userid = e.user_id -- 承辦人= AssignedTo
left JOIN evw_p_case_info b ON a.case_id=b.case_id
left join i_case_status ics on ics.case_status_id=b.case_status_id
WHERE b.customer_name like '%'+@p_CustName+'%' -- 客戶名稱
;
--CREATE INDEX tmpTodosAll_index ON #tmpTodos_All (StartDate2);
--CREATE INDEX tmpTodosAll_index2 ON #tmpTodos_All (FinishedDate);
--CREATE INDEX tmpTodosAll_index3 ON #tmpTodos_All (AttorneyDueDate);
print('4:'+convert(varchar(20),getdate(),126))
-- 4.取得: 委案量, 委案量是同新進的條件(抓 PatentCase)
SELECT CASE WHEN a.Client_CompanyName like '%华星%' AND LEFT(a.CaseNo_r,1)='M' AND a.PatentType='PN01' THEN 'CN 查新' END as ItemIN1, -- 1.CN 查新(新進) --> 1.客戶名稱為華星, 2.案件編號有-M, 3.案件類別: PN01, 4.立案日落在該月份
CASE WHEN a.PatentOffice='CN' AND a.PatentType IN ('PN01', 'PN02', 'PN03') THEN 'CN 新申請' END as ItemIN2, -- 2.CN 新申請(新進) -->1.國家為CN, 2.案件類別: PN01, PN02, PN03, 3.立案日落在該月份
CASE WHEN a.PatentOffice='PCT' AND a.PatentType IN ('PN01','PN07') THEN 'PCT 新申請' END as ItemIN3, -- 3.PCT 新申請(新進) -->1.國家為PCT, 2.案件類別: PN01, PN07, 3.立案日落在該月份
CASE WHEN a.PatentOffice NOT IN ('CN','PCT') AND a.PatentType IN ('PN01') --AND a.PctNationalPhase='Y'
THEN a.PatentOffice +' 新申請' END as ItemIN4, -- 4.XX 新申請(新進) --> 1.國家為XX, 2.案件類別: PN01 , 3.是 PCT國家階段, 4.立案日落在該月份
a.*
into #tmpPatCase_1
FROM #tmpPatCase_All a
WHERE a.charge_date between @p_StartDate AND @p_EndDate -- 立案日
AND a.PatentType IN ('PN01', 'PN02', 'PN03','PN07') -- 案件類別
;-- ALTER TABLE tmpPatCase_1 ADD INDEX(`CaseNo`);
select * into #tmpDA_1 from (
select CAST(ItemIN1 as CHAR(20)) as ItemIN, a.* from #tmpPatCase_1 a where ItemIN1<>''
union select ItemIN2 as ItemIN, a.* from #tmpPatCase_1 a where ItemIN2<>''
union select ItemIN3 as ItemIN, a.* from #tmpPatCase_1 a where ItemIN3<>''
union select ItemIN4 as ItemIN, a.* from #tmpPatCase_1 a where ItemIN4<>''
) a;
--ALTER TABLE tmpDA_1 ADD INDEX(`CaseNo`);
-- 5.取得: 委案量, 委案量是同新進的條件 (抓 ToDos)
SELECT CASE WHEN a.Office='CN' AND (Charindex('答復審查意見',a.TaskDescription)>0 OR Charindex('答复审查意见',a.TaskDescription)>0) AND a.Status='RS05.1' THEN 'CN OA' END as ItemIN1, -- CN OA(新進) -->1.國家為CN , 2.抓管制事項:答复审查意见, 3.起始日落在該月份, 4.案件狀態:答辯中-撰稿(RS05.1)
CASE WHEN a.Office='TW' AND (Charindex('申復',a.TaskDescription)>0 OR Charindex('申复',a.TaskDescription)>0 OR Charindex('提出再審',a.TaskDescription)>0) AND a.Status='RS05' THEN 'TW OA' END as ItemIN2, -- TW OA(新進) -->1.國家為TW, 2.抓管制事項:申復/提出再審 3.起始日落在該月份, 4.案件狀態:答辯中(RS05)
CASE WHEN a.Office='US' AND (Charindex('response',LOWER(a.TaskDescription))>0 OR Charindex('election',LOWER(a.TaskDescription))>0 OR Charindex('advisory action',LOWER(a.TaskDescription))>0) AND a.Status='RS05' THEN 'US OA' END as ItemIN3, -- US OA(新進) -->1.國家為US, 2.抓管制事項:Respnose/Election/Advisory Action 3.起始日落在該月份, 4.案件狀態:答辯中(RS05)
CASE WHEN a.Office='KR' AND (Charindex('response',LOWER(a.TaskDescription))>0 OR Charindex('re-examination',LOWER(a.TaskDescription))>0 OR Charindex('appeal',LOWER(a.TaskDescription))>0) AND a.Status='RS05' THEN 'KR OA' END as ItemIN4, -- KR OA(新進) -->1.國家為KR, 2.抓管制事項:Response/Request for Re-examination/Appeal 3.起始日落在該月份, 4.案件狀態:答辯中(RS05)
CASE WHEN a.Office='JP' AND (Charindex('response',LOWER(a.TaskDescription))>0 OR Charindex('appeal',LOWER(a.TaskDescription))>0) AND a.Status='RS05' THEN 'JP OA' END as ItemIN5, -- JP OA(新進) -->1.國家為JP, 2.抓管制事項:Response/Appeal 3.起始日落在該月份, 4.案件狀態:答辯中(RS05)
CASE WHEN a.Office NOT IN ('CN', 'TW', 'US','KR', 'JP') AND Charindex('response',LOWER(a.TaskDescription))>0 AND a.Status='RS05' THEN a.Office+' OA' END as ItemIN6, -- XX OA(新進) -->1.國家為XX, 2.抓管制事項:Response 3.起始日落在該月份, 4.案件狀態:答辯中(RS05)
CASE WHEN a.TaskDescription='RCE' THEN 'RCE' END as ItemIN7, -- RCE(新進) -->1.不分國家, 2.抓管制事項:RCE, 3.起始日落在該月份
CASE WHEN a.TaskDescription='IDS' THEN 'IDS' END as ItemIN8, -- IDS(新進) -->1.不分國家, 2.抓管制事項:IDS, 3.起始日落在該月份
CASE WHEN (Charindex('繳費領證',a.TaskDescription)>0 OR Charindex('缴纳领证',a.TaskDescription)>0) THEN '繳費領證' END as ItemIN9, -- 繳費領證(新進) -->1.不分國家, 2.抓管制事項:繳費領證, 3.起始日落在該月份
Right(Convert(varchar(7) ,a.StartDate2,126),2) as colMon_ST, a.*, getdate() as sysDate
into #tmpTodos_1
FROM #tmpTodos_All a
WHERE a.StartDate2 between @p_StartDate AND @p_EndDate
;
select * into #tmpDA_12 from(
select CAST(ItemIN1 as CHAR(20)) as ItemIN, a.* from #tmpTodos_1 a where ItemIN1<>''
union select ItemIN2 as ItemIN, a.* from #tmpTodos_1 a where ItemIN2<>''
union select ItemIN3 as ItemIN, a.* from #tmpTodos_1 a where ItemIN3<>''
union select ItemIN4 as ItemIN, a.* from #tmpTodos_1 a where ItemIN4<>''
union select ItemIN5 as ItemIN, a.* from #tmpTodos_1 a where ItemIN5<>''
union select ItemIN6 as ItemIN, a.* from #tmpTodos_1 a where ItemIN6<>''
union select ItemIN7 as ItemIN, a.* from #tmpTodos_1 a where ItemIN7<>''
union select ItemIN8 as ItemIN, a.* from #tmpTodos_1 a where ItemIN8<>''
union select ItemIN8 as ItemIN, a.* from #tmpTodos_1 a where ItemIN9<>''
) a;
--ALTER TABLE tmpDA_12 ADD INDEX(`CaseNo`);
-- 6.取得: OA 的「「完成」資料
SELECT CASE WHEN (a.Client_CompanyName like '%華星%' OR a.Client_CompanyName like '%华星%') AND LEFT(a.CaseNo_r,1)='M' AND a.Status='RS11'
AND (Charindex('提出報告',a.TaskDescription)>0 OR Charindex('提出报告',a.TaskDescription)>0)
AND ISNULL(a.FinishedDate,'')<>'' AND ISNULL(a.AttorneyDueDate,'')<>'' AND LEFT(a.AttorneyDueDate,7)=LEFT(a.FinishedDate,7) THEN 'CN 查新' END as ItemFH1, -- CN 查新(完成) -->1.客戶名稱為華星, 2.案件編號有-M, 3.案件狀態:結案(RS11), 4.管制事項:提出報告, 5.完成日落在該月份
CASE WHEN a.Office='CN' AND a.PatentType IN ('PN01', 'PN02', 'PN03') AND a.TaskDescription='完成初稿' AND a.Matter='CNP01' THEN 'CN 新申請' END as ItemFH2, -- CN 新申請(完成) -->1.國家為CN, 2.案件類別: PN01, PN02, PN03, 3.管制事項:完成初稿, 4.完成日落在該月份, 5. 案件程序:中國發明申請(CNP01)
CASE WHEN a.Office='PCT' AND a.PatentType IN ('PN01','PN07') AND a.TaskDescription='完成初稿' AND a.Matter='WOP01' THEN 'PCT 新申請' END as ItemFH3, -- PCT 新申請(完成)-->1.國家為PCT, 2.案件類別: PN01, PN07, 3.管制事項:完成初稿, 4.完成日落在該月份, 5. 案件程序:PCT國際申請(WOP01)
CASE WHEN a.Office='US' AND a.PatentType='PN01' AND a.PctNationalPhase='Y' AND a.TaskDescription='完成初稿' AND a.Matter='USP01' THEN 'US 新申請' END as ItemFH4, -- US 新申請(完成)-->1.國家為US, 2.案件類別: PN01, PN07, 3.管制事項:完成初稿, 4.完成日落在該月份, 5. 案件程序:美國Utility申請(USP01)
CASE WHEN a.Office='TW' AND a.PatentType='PN01' AND a.PctNationalPhase='Y' AND a.TaskDescription='完成初稿' AND a.Matter='TWP01' THEN 'TW 新申請' END as ItemFH5, -- TW 新申請(完成)-->1.國家為TW, 2.案件類別: PN01, PN07, 3.管制事項:完成初稿, 4.完成日落在該月份, 5. 案件程序:台灣發明申請(TWP01)
CASE WHEN a.Office NOT IN ('CN', 'PCT', 'US', 'TW') AND (LEFT(a.CaseNo_r,1)<>'M' and NOT a.Client_CompanyName like '%华星%')
AND a.PatentType='PN01' AND a.PctNationalPhase='Y' AND a.TaskDescription='完成初稿' AND a.Matter='P01' THEN a.Office+' 新申請' END as ItemFH6, -- XX 新申請(完成) -->1.國家為XX, 2.案件類別: PN01 , 3.是 PCT國家階段, 4.管制事項:完成初稿, 5.完成日落在該月份, 6. 案件程序:專利申請(P01)
CASE WHEN Office='CN' AND Charindex('完成初稿',a.TaskDescription)>0 AND a.Matter='CNP02' THEN 'CN OA' END as ItemFH7, -- CN OA(完成) -->1.國家為CN, 2.抓管制事項:完成初稿(都含), 3.完成日落在該月份, 4.案件程序: 中國發明審查(CNP02)
CASE WHEN Office='TW' AND a.TaskDescription='完成初稿' AND a.Matter='TWP02' THEN 'TW OA' END as ItemFH8, -- TW OA(完成) -->1.國家為TW, 2.抓管制事項:完成初稿(只有這4個字), 4.完成日落在該月份, 4.案件程序: 台灣發明審查(TWP02)
CASE WHEN Office='US' AND a.TaskDescription='完成初稿' AND a.Matter='USP02' THEN 'US OA' END as ItemFH9, -- US OA(完成) -->1.國家為US, 2.抓管制事項:完成初稿(只有這4個字), 4.完成日落在該月份, 4.案件程序: 美國Utility審查(USP02)
CASE WHEN Office NOT IN ('CN', 'TW','US') AND a.TaskDescription='完成初稿' AND a.Matter='P02' THEN a.Office+' OA' END as ItemFH10, -- XX OA(完成) -->1.國家為XX, 2.抓管制事項:完成初稿(只有這4個字), 4.完成日落在該月份, 4.案件程序: 專利審查(P02)
CASE WHEN Charindex('rce', LOWER(a.TaskDescription))>0 THEN 'RCE' END as ItemFH11, -- RCE(完成) -->1.不分國家, 2.抓管制事項:RCE -->完成日落在該月份
CASE WHEN Charindex('ids', LOWER(a.TaskDescription))>0 THEN 'IDS' END as ItemFH12, -- IDS(完成) -->1.不分國家, 2.抓管制事項:IDS -->完成日落在該月份
CASE WHEN Charindex('繳費領證', a.TaskDescription)>0 THEN '繳費領證' END as ItemFH13, -- 繳費領證(完成) -->1.不分國家, 2.管制事項有「繳費領證」該項, 3.抓管制事項:完成初稿 -->完成日落在該月份
Right(Convert(varchar(7) ,a.FinishedDate,126),2) as colMon_FH, a.*
into #tmpTodos_2
FROM #tmpTodos_All a
WHERE a.FinishedDate between @p_StartDate AND @p_EndDate AND a.PatentType IN ('PN01', 'PN02', 'PN03','PN07')
AND (Charindex('完成初稿',a.TaskDescription)>0 OR Charindex('提出報告',a.TaskDescription)>0 OR Charindex('提出报告',a.TaskDescription)>0 OR
Charindex('rce', LOWER(a.TaskDescription))>0 OR Charindex('ids', LOWER(a.TaskDescription))>0 OR Charindex('繳費領證', a.TaskDescription)>0)
;
select * into #tmpDA_2 from (
select CAST(ItemFH1 as CHAR(20)) as ItemFH, a.* from #tmpTodos_2 a where ItemFH1<>''
union select ItemFH2 as ItemFH, a.* from #tmpTodos_2 a where ItemFH2<>''
union select ItemFH3 as ItemFH, a.* from #tmpTodos_2 a where ItemFH3<>''
union select ItemFH4 as ItemFH, a.* from #tmpTodos_2 a where ItemFH4<>''
union select ItemFH5 as ItemFH, a.* from #tmpTodos_2 a where ItemFH5<>''
union select ItemFH6 as ItemFH, a.* from #tmpTodos_2 a where ItemFH6<>''
union select ItemFH7 as ItemFH, a.* from #tmpTodos_2 a where ItemFH7<>''
union select ItemFH8 as ItemFH, a.* from #tmpTodos_2 a where ItemFH8<>''
union select ItemFH9 as ItemFH, a.* from #tmpTodos_2 a where ItemFH9<>''
union select ItemFH10 as ItemFH, a.* from #tmpTodos_2 a where ItemFH10<>''
union select ItemFH11 as ItemFH, a.* from #tmpTodos_2 a where ItemFH11<>''
union select ItemFH12 as ItemFH, a.* from #tmpTodos_2 a where ItemFH12<>''
union select ItemFH13 as ItemFH, a.* from #tmpTodos_2 a where ItemFH13<>''
) a;
--ALTER TABLE tmpDA_2 ADD INDEX(`CaseNo`);
-- 7.取得:「未完成」資料
SELECT CASE WHEN (a.Client_CompanyName like '%華星%' OR a.Client_CompanyName like '%华星%') AND LEFT(a.CaseNo_r,1)='M'
AND (Charindex('提出報告',a.TaskDescription)>0 OR Charindex('提出报告',a.TaskDescription)>0) THEN 'CN 查新' END as Item_NotFH1, -- CN 查新(未完成) -->1.客戶名稱為華星, 2.案件編號有-M, 3.管制事項:提出报告, 4.完成日為空白, 5.事務到期日落在該月份
CASE WHEN a.Office='CN' AND a.PatentType IN ('PN01', 'PN02', 'PN03') AND a.TaskDescription='完成初稿' AND a.Status='RS01' THEN 'CN 新申請' END as Item_NotFH2, -- CN 新申請(未完成) -->1.國家為CN, 2.案件類別: PN01, PN02, PN03, 3.管制事項:完成初稿(只有這4個字), 4.案件狀態:撰稿(RS01), 5.完成日為空白, 6.事務到期日落在該月份
CASE WHEN a.Office='PCT' AND a.PatentType IN ('PN01','PN07') AND a.TaskDescription='完成初稿' AND a.Status='RS01' THEN 'PCT 新申請' END as Item_NotFH3, -- PCT 新申請(未完成)-->1.國家為PCT, 2.案件類別: PN01, PN07, 3.管制事項:完成初稿(只有這4個字), 4.案件狀態:撰稿(RS01), 5.完成日為空白, 6.事務到期日落在該月份
CASE WHEN a.Office='US' AND a.PatentType='PN01' AND a.PctNationalPhase='Y' AND a.TaskDescription='完成初稿' AND a.Status='RS01' THEN a.Office+' 新申請' END as Item_NotFH4, -- XX 新申請(未完成) -->1.國家為XX, 2.案件類別: PN01 , 3.是 PCT國家階段, 4.管制事項:完成初稿(只有這4個字), 5.案件狀態:撰稿(RS01), 5.完成日為空白, 6.事務到期日落在該月份
CASE WHEN Charindex('完成初稿',a.TaskDescription)>0 AND a.Status='RS05.1' THEN 'CN OA' END as Item_NotFH5, -- CN OA(未完成) -->1.國家為CN, 2.管制事項:完成初稿(都含), 3.案件狀態:答辯中-撰稿(RS05.1), 4.完成日為空白, 5.事務到期日落在該月份
CASE WHEN a.TaskDescription='完成初稿' AND a.Status='RS05' AND a.Office NOT IN('CN','PCT') THEN a.Office+' OA' END as Item_NotFH6, -- XX OA(未完成) -->1.國家為XX, 2.管制事項:完成初稿(只有這4個字), 3.案件狀態:答辯中(RS05), 4.完成日為空白, 5.事務到期日落在該月份
CASE WHEN Charindex('rce', LOWER(a.TaskDescription))>0 THEN 'RCE' END as Item_NotFH7, -- RCE(未完成) -->1.不分國家, 2.管制事項:「RCE」該項, 3.完成日為空白, 4.事務到期日落在該月份
CASE WHEN Charindex('ids', LOWER(a.TaskDescription))>0 THEN 'IDS' END as Item_NotFH8, -- IDS(未完成) -->1.不分國家, 2.管制事項:「IDS」該項, 3.完成日為空白, 4.事務到期日落在該月份
CASE WHEN Charindex('繳費領證', a.TaskDescription)>0 THEN '繳費領證' END as Item_NotFH9, -- 繳費領證(未完成) -->1.不分國家, 2.管制事項:「繳費領證」該項, 3.完成日為空白, 4.事務到期日落在該月份
CASE WHEN a.AttorneyDueDate='' THEN '' ELSE Right(Convert(varchar(7),a.AttorneyDueDate,126) ,2) END as colMon_AD, a.*
into #tmpTodos_3
FROM #tmpTodos_All a
WHERE ((a.AttorneyDueDate between @p_StartDate AND @p_EndDate ) AND (a.finishedDate='' or a.finishedDate is null))
AND a.PatentType IN ('PN01', 'PN02', 'PN03','PN07')
AND (Charindex('完成初稿',a.TaskDescription)>0 OR Charindex('提出報告',a.TaskDescription)>0 OR Charindex('提出报告',a.TaskDescription)>0 OR
Charindex('rce', LOWER(a.TaskDescription))>0 OR Charindex('ids', LOWER(a.TaskDescription))>0 OR Charindex('繳費領證', a.TaskDescription)>0)
;
select * into #tmpDA_3 from (
select CAST(Item_NotFH1 as CHAR(20)) as Item_NotFH, a.* from #tmpTodos_3 a where Item_NotFH1<>''
union select Item_NotFH2 as Item_NotFH, a.* from #tmpTodos_3 a where Item_NotFH2<>''
union select Item_NotFH3 as Item_NotFH, a.* from #tmpTodos_3 a where Item_NotFH3<>''
union select Item_NotFH4 as Item_NotFH, a.* from #tmpTodos_3 a where Item_NotFH4<>''
union select Item_NotFH5 as Item_NotFH, a.* from #tmpTodos_3 a where Item_NotFH5<>''
union select Item_NotFH6 as Item_NotFH, a.* from #tmpTodos_3 a where Item_NotFH6<>''
union select Item_NotFH7 as Item_NotFH, a.* from #tmpTodos_3 a where Item_NotFH7<>''
union select Item_NotFH8 as Item_NotFH, a.* from #tmpTodos_3 a where Item_NotFH8<>''
union select Item_NotFH8 as Item_NotFH, a.* from #tmpTodos_3 a where Item_NotFH9<>''
) a;
--ALTER TABLE tmpDA_3 ADD INDEX(`CaseNo`);
-- 總計
SELECT * into #tmpDA_tot from (
SELECT 1 as daType, CaseAssignedTo as PT_EmpID, CaseAssignedTo_Name as Emp_Name, ItemIN as Item, FlowKey FROM #tmpDA_1
UNION ALL
SELECT 1 as daType, AssignedTo as PT_EmpID,AssignedTo +'-'+ AssignedTo_Name as Emp_Name, ItemIN as Item, FlowKey FROM #tmpDA_12
UNION ALL
SELECT 2 as daType, AssignedTo as PT_EmpID, AssignedTo +'-'+ AssignedTo_Name as Emp_Name, ItemFH as Item, FlowKey FROM #tmpDA_2
UNION ALL
SELECT 3 as daType, AssignedTo as PT_EmpID, AssignedTo +'-'+ AssignedTo_Name as Emp_Name, Item_NotFH as Item, FlowKey FROM #tmpDA_3
) a
;
-- 顯示結果
with concatFlowkey1 as
(
--SELECT 1 as daType, CaseAssignedTo as PT_EmpID, CaseAssignedTo_Name as Emp_Name, ItemIN as Item, FlowKey FROM #tmpDA_1 -- 委案量
--UNION ALL
--SELECT 1 as daType, AssignedTo as PT_EmpID, AssignedTo_Name as Emp_Name, ItemIN as Item, FlowKey FROM #tmpDA_12 -- 委案量
--UNION ALL
--SELECT 2 as daType, AssignedTo as PT_EmpID, AssignedTo_Name as Emp_Name, ItemFH as Item, FlowKey FROM #tmpDA_2 -- 完成量
--UNION ALL
--SELECT 3 as daType, AssignedTo as PT_EmpID, AssignedTo_Name as Emp_Name, Item_NotFH as Item, FlowKey FROM #tmpDA_3 -- 未完成量
select * FROM #tmpDA_tot
)
--select * from concatFlowkey1;
SELECT a.Emp_name as attr_ItemName, CASE WHEN @p_MonF<>@p_MonT THEN '- 整年度 ' ELSE '- '+@p_MonF+'月 ' END as attr_Mon2, a.PT_EmpID as attr_PTEmpID, a.Emp_name as 外包人員,
'CorDF' as class_ap1, a.CN_QN as 配委量_CNQN , attr_CNQN1_todos2, num1_CNQN as 委案量_CNQN , attr_CNQN2_todos2, num2_CNQN as 完成量_CNQN , attr_CNQN3_todos2, num3_CNQN as 未完成量_CNQN ,
'CorDF' as class_ap1, a.PCT_AP as 配委量_PCTAP, attr_PCTAP1_todos2, num1_PCTAP as 委案量_PCTAP, attr_PCTAP2_todos2, num2_PCTAP as 完成量_PCTAP, attr_PCTAP3_todos2, num3_PCTAP as 未完成量_PCTAP,
'CorDF' as class_ap1, a.CN_AP as 配委量_CNAP , attr_CNAP1_todos2, num1_CNAP as 委案量_CNAP , attr_CNAP2_todos2, num2_CNAP as 完成量_CNAP , attr_CNAP3_todos2, num3_CNAP as 未完成量_CNAP ,
'CorDF' as class_ap1, a.JP_AP as 配委量_JPAP , attr_JPAP1_todos2, num1_JPAP as 委案量_JPAP , attr_JPAP2_todos2, num2_JPAP as 完成量_JPAP , attr_JPAP3_todos2, num3_JPAP as 未完成量_JPAP ,
'CorDF' as class_ap1, a.US_AP as 配委量_USAP , attr_USAP1_todos2, num1_USAP as 委案量_USAP , attr_USAP2_todos2, num2_USAP as 完成量_USAP , attr_USAP3_todos2, num3_USAP as 未完成量_USAP ,
'CorDF' as class_ap1, a.EP_AP as 配委量_EPAP , attr_EPAP1_todos2, num1_EPAP as 委案量_EPAP , attr_EPAP2_todos2, num2_EPAP as 完成量_EPAP , attr_EPAP3_todos2, num3_EPAP as 未完成量_EPAP ,
'CorDF' as class_ap1, a.RU_AP as 配委量_RUAP , attr_RUAP1_todos2, num1_RUAP as 委案量_RUAP , attr_RUAP2_todos2, num2_RUAP as 完成量_RUAP , attr_RUAP3_todos2, num3_RUAP as 未完成量_RUAP ,
'CorDF' as class_ap1, a.KR_AP as 配委量_KRAP , attr_KRAP1_todos2, num1_KRAP as 委案量_KRAP , attr_KRAP2_todos2, num2_KRAP as 完成量_KRAP , attr_KRAP3_todos2, num3_KRAP as 未完成量_KRAP ,
'CorDF' as class_ap1, a.IN_AP as 配委量_INAP , attr_INAP1_todos2, num1_INAP as 委案量_INAP , attr_INAP2_todos2, num2_INAP as 完成量_INAP , attr_INAP3_todos2, num3_INAP as 未完成量_INAP
FROM #tmpPT_EmployeeList a
LEFT JOIN (
SELECT PT_EmpID, Emp_Name,
SUM(CASE WHEN daType=1 AND Item='CN 查新' THEN 1 ELSE 0 END) as num1_CNQN, SUM(CASE WHEN daType=1 AND Item='PCT 新申請' THEN 1 ELSE 0 END) as num1_PCTAP,
SUM(CASE WHEN daType=1 AND Item='CN 新申請' THEN 1 ELSE 0 END) as num1_CNAP,SUM(CASE WHEN daType=1 AND Item='JP 新申請' THEN 1 ELSE 0 END) as num1_JPAP,
SUM(CASE WHEN daType=1 AND Item='US 新申請' THEN 1 ELSE 0 END) as num1_USAP,SUM(CASE WHEN daType=1 AND Item='EP 新申請' THEN 1 ELSE 0 END) as num1_EPAP,
SUM(CASE WHEN daType=1 AND Item='RU 新申請' THEN 1 ELSE 0 END) as num1_RUAP,SUM(CASE WHEN daType=1 AND Item='KR 新申請' THEN 1 ELSE 0 END) as num1_KRAP,
SUM(CASE WHEN daType=1 AND Item='IN 新申請' THEN 1 ELSE 0 END) as num1_INAP,SUM(CASE WHEN daType=2 AND Item='CN 查新' THEN 1 ELSE 0 END) as num2_CNQN,
SUM(CASE WHEN daType=2 AND Item='PCT 新申請' THEN 1 ELSE 0 END) as num2_PCTAP,SUM(CASE WHEN daType=2 AND Item='CN 新申請' THEN 1 ELSE 0 END) as num2_CNAP,
SUM(CASE WHEN daType=2 AND Item='JP 新申請' THEN 1 ELSE 0 END) as num2_JPAP,SUM(CASE WHEN daType=2 AND Item='US 新申請' THEN 1 ELSE 0 END) as num2_USAP,
SUM(CASE WHEN daType=2 AND Item='EP 新申請' THEN 1 ELSE 0 END) as num2_EPAP,SUM(CASE WHEN daType=2 AND Item='RU 新申請' THEN 1 ELSE 0 END) as num2_RUAP,
SUM(CASE WHEN daType=2 AND Item='KR 新申請' THEN 1 ELSE 0 END) as num2_KRAP,SUM(CASE WHEN daType=2 AND Item='IN 新申請' THEN 1 ELSE 0 END) as num2_INAP,
SUM(CASE WHEN daType=3 AND Item='CN 查新' THEN 1 ELSE 0 END) as num3_CNQN, SUM(CASE WHEN daType=3 AND Item='PCT 新申請' THEN 1 ELSE 0 END) as num3_PCTAP,
SUM(CASE WHEN daType=3 AND Item='CN 新申請' THEN 1 ELSE 0 END) as num3_CNAP,SUM(CASE WHEN daType=3 AND Item='JP 新申請' THEN 1 ELSE 0 END) as num3_JPAP,
SUM(CASE WHEN daType=3 AND Item='US 新申請' THEN 1 ELSE 0 END) as num3_USAP,SUM(CASE WHEN daType=3 AND Item='EP 新申請' THEN 1 ELSE 0 END) as num3_EPAP,
SUM(CASE WHEN daType=3 AND Item='RU 新申請' THEN 1 ELSE 0 END) as num3_RUAP, SUM(CASE WHEN daType=3 AND Item='KR 新申請' THEN 1 ELSE 0 END) as num3_KRAP,
SUM(CASE WHEN daType=3 AND Item='IN 新申請' THEN 1 ELSE 0 END) as num3_INAP,
STUFF ((select ','+ p.Flowkey from concatFlowkey1 p where daType=1 AND Item='CN 查新' and p.PT_EmpID=c.PT_EmpID and p.Emp_Name=c.Emp_Name FOR XML PATH('') ), 1, 1, N'') as attr_CNQN1_todos2,
STUFF ((select ','+ p.Flowkey from concatFlowkey1 p where daType=1 AND Item='PCT 新申請' and p.PT_EmpID=c.PT_EmpID and p.Emp_Name=c.Emp_Name FOR XML PATH('') ), 1, 1, N'') as attr_PCTAP1_todos2,
STUFF ((select ','+ p.Flowkey from concatFlowkey1 p where daType=1 AND Item='CN 新申請' and p.PT_EmpID=c.PT_EmpID and p.Emp_Name=c.Emp_Name FOR XML PATH('') ), 1, 1, N'') as attr_CNAP1_todos2,
STUFF ((select ','+ p.Flowkey from concatFlowkey1 p where daType=1 AND Item='JP 新申請' and p.PT_EmpID=c.PT_EmpID and p.Emp_Name=c.Emp_Name FOR XML PATH('') ), 1, 1, N'') as attr_JPAP1_todos2,
STUFF ((select ','+ p.Flowkey from concatFlowkey1 p where daType=1 AND Item='US 新申請' and p.PT_EmpID=c.PT_EmpID and p.Emp_Name=c.Emp_Name FOR XML PATH('') ), 1, 1, N'') as attr_USAP1_todos2,
STUFF ((select ','+ p.Flowkey from concatFlowkey1 p where daType=1 AND Item='EP 新申請' and p.PT_EmpID=c.PT_EmpID and p.Emp_Name=c.Emp_Name FOR XML PATH('') ), 1, 1, N'') as attr_EPAP1_todos2,
STUFF ((select ','+ p.Flowkey from concatFlowkey1 p where daType=1 AND Item='RU 新申請' and p.PT_EmpID=c.PT_EmpID and p.Emp_Name=c.Emp_Name FOR XML PATH('') ), 1, 1, N'')as attr_RUAP1_todos2,
STUFF ((select ','+ p.Flowkey from concatFlowkey1 p where daType=1 AND Item='KR 新申請' and p.PT_EmpID=c.PT_EmpID and p.Emp_Name=c.Emp_Name FOR XML PATH('') ), 1, 1, N'') as attr_KRAP1_todos2,
STUFF ((select ','+ p.Flowkey from concatFlowkey1 p where daType=1 AND Item='IN 新申請' and p.PT_EmpID=c.PT_EmpID and p.Emp_Name=c.Emp_Name FOR XML PATH('') ), 1, 1, N'') as attr_INAP1_todos2,
STUFF ((select ','+ p.Flowkey from concatFlowkey1 p where daType=2 AND Item='CN 查新' and p.PT_EmpID=c.PT_EmpID and p.Emp_Name=c.Emp_Name FOR XML PATH('') ), 1, 1, N'') as attr_CNQN2_todos2,
STUFF ((select ','+ p.Flowkey from concatFlowkey1 p where daType=2 AND Item='PCT 新申請' and p.PT_EmpID=c.PT_EmpID and p.Emp_Name=c.Emp_Name FOR XML PATH('') ), 1, 1, N'') as attr_PCTAP2_todos2,
STUFF ((select ','+ p.Flowkey from concatFlowkey1 p where daType=2 AND Item='CN 新申請' and p.PT_EmpID=c.PT_EmpID and p.Emp_Name=c.Emp_Name FOR XML PATH('') ), 1, 1, N'') as attr_CNAP2_todos2,
STUFF ((select ','+ p.Flowkey from concatFlowkey1 p where daType=2 AND Item='JP 新申請' and p.PT_EmpID=c.PT_EmpID and p.Emp_Name=c.Emp_Name FOR XML PATH('') ), 1, 1, N'') as attr_JPAP2_todos2,
STUFF ((select ','+ p.Flowkey from concatFlowkey1 p where daType=2 AND Item='US 新申請' and p.PT_EmpID=c.PT_EmpID and p.Emp_Name=c.Emp_Name FOR XML PATH('') ), 1, 1, N'') as attr_USAP2_todos2,
STUFF ((select ','+ p.Flowkey from concatFlowkey1 p where daType=2 AND Item='EP 新申請' and p.PT_EmpID=c.PT_EmpID and p.Emp_Name=c.Emp_Name FOR XML PATH('') ), 1, 1, N'') as attr_EPAP2_todos2,
STUFF ((select ','+ p.Flowkey from concatFlowkey1 p where daType=2 AND Item='RU 新申請' and p.PT_EmpID=c.PT_EmpID and p.Emp_Name=c.Emp_Name FOR XML PATH('') ), 1, 1, N'')as attr_RUAP2_todos2,
STUFF ((select ','+ p.Flowkey from concatFlowkey1 p where daType=2 AND Item='KR 新申請' and p.PT_EmpID=c.PT_EmpID and p.Emp_Name=c.Emp_Name FOR XML PATH('') ), 1, 1, N'') as attr_KRAP2_todos2,
STUFF ((select ','+ p.Flowkey from concatFlowkey1 p where daType=2 AND Item='IN 新申請' and p.PT_EmpID=c.PT_EmpID and p.Emp_Name=c.Emp_Name FOR XML PATH('') ), 1, 1, N'') as attr_INAP2_todos2,
STUFF ((select ','+ p.Flowkey from concatFlowkey1 p where daType=3 AND Item='CN 查新' and p.PT_EmpID=c.PT_EmpID and p.Emp_Name=c.Emp_Name FOR XML PATH('') ), 1, 1, N'') as attr_CNQN3_todos2,
STUFF ((select ','+ p.Flowkey from concatFlowkey1 p where daType=3 AND Item='PCT 新申請' and p.PT_EmpID=c.PT_EmpID and p.Emp_Name=c.Emp_Name FOR XML PATH('') ), 1, 1, N'') as attr_PCTAP3_todos2,
STUFF ((select ','+ p.Flowkey from concatFlowkey1 p where daType=3 AND Item='CN 新申請' and p.PT_EmpID=c.PT_EmpID and p.Emp_Name=c.Emp_Name FOR XML PATH('') ), 1, 1, N'') as attr_CNAP3_todos2,
STUFF ((select ','+ p.Flowkey from concatFlowkey1 p where daType=3 AND Item='JP 新申請' and p.PT_EmpID=c.PT_EmpID and p.Emp_Name=c.Emp_Name FOR XML PATH('') ), 1, 1, N'') as attr_JPAP3_todos2,
STUFF ((select ','+ p.Flowkey from concatFlowkey1 p where daType=3 AND Item='US 新申請' and p.PT_EmpID=c.PT_EmpID and p.Emp_Name=c.Emp_Name FOR XML PATH('') ), 1, 1, N'') as attr_USAP3_todos2,
STUFF ((select ','+ p.Flowkey from concatFlowkey1 p where daType=3 AND Item='EP 新申請' and p.PT_EmpID=c.PT_EmpID and p.Emp_Name=c.Emp_Name FOR XML PATH('') ), 1, 1, N'') as attr_EPAP3_todos2,
STUFF ((select ','+ p.Flowkey from concatFlowkey1 p where daType=3 AND Item='RU 新申請' and p.PT_EmpID=c.PT_EmpID and p.Emp_Name=c.Emp_Name FOR XML PATH('') ), 1, 1, N'')as attr_RUAP3_todos2,
STUFF ((select ','+ p.Flowkey from concatFlowkey1 p where daType=3 AND Item='KR 新申請' and p.PT_EmpID=c.PT_EmpID and p.Emp_Name=c.Emp_Name FOR XML PATH('') ), 1, 1, N'') as attr_KRAP3_todos2,
STUFF ((select ','+ p.Flowkey from concatFlowkey1 p where daType=3 AND Item='IN 新申請' and p.PT_EmpID=c.PT_EmpID and p.Emp_Name=c.Emp_Name FOR XML PATH('') ), 1, 1, N'') as attr_INAP3_todos2
FROM concatFlowkey1 c
GROUP BY PT_EmpID, Emp_Name
union all
select PT_EmpID,Emp_Name,sum(num1_CNQN) as num1_CNQN,sum(num1_PCTAP) as num1_PCTAP,sum(num1_CNAP) as num1_CNAP,sum(num1_JPAP) as num1_JPAP,sum(num1_USAP) as num1_USAP,sum(num1_EPAP) as num1_EPAP,
sum(num1_RUAP) as num1_RUAP,sum(num1_KRAP) as num1_KRAP,sum(num1_INAP) as num1_INAP,sum(num2_CNQN) as num2_CNQN,sum(num2_PCTAP) as num2_PCTAP,sum(num2_CNAP) as num2_CNAP,sum(num2_JPAP) as num2_CNAP
,sum(num2_USAP) as num2_USAP,sum(num2_EPAP) as num2_EPAP,
sum(num2_RUAP) as num2_RUAP,sum(num2_KRAP) as num2_KRAP,sum(num2_INAP) as num2_INAP,sum(num3_CNQN) as num3_CNQN,sum(num3_PCTAP) as num3_PCTAP,sum(num3_CNAP) as num3_CNAP
,sum(num3_JPAP) as num3_JPAP,sum(num3_USAP) as num3_USAP,sum(num3_EPAP) as num3_EPAP,
sum(num3_RUAP),sum(num3_KRAP),sum(num3_INAP),attr_CNQN1_todos2,attr_PCTAP1_todos2,attr_CNAP1_todos2,attr_JPAP1_todos2,
attr_USAP1_todos2,attr_EPAP1_todos2,attr_RUAP1_todos2,attr_KRAP1_todos2,attr_INAP1_todos2,attr_CNQN2_todos2,
attr_PCTAP2_todos2,attr_CNAP2_todos2,attr_JPAP2_todos2,attr_USAP2_todos2,attr_EPAP2_todos2,attr_RUAP2_todos2,
attr_KRAP2_todos2,attr_INAP2_todos2,attr_CNQN3_todos2,attr_PCTAP3_todos2,attr_CNAP3_todos2,attr_JPAP3_todos2,
attr_USAP3_todos2,attr_EPAP3_todos2,attr_RUAP3_todos2,attr_KRAP3_todos2,attr_INAP3_todos2
from (
SELECT 'tot' as PT_EmpID, '總計' as Emp_Name,
SUM(CASE WHEN daType=1 AND Item='CN 查新' THEN 1 ELSE 0 END) as num1_CNQN, SUM(CASE WHEN daType=1 AND Item='PCT 新申請' THEN 1 ELSE 0 END) as num1_PCTAP,
SUM(CASE WHEN daType=1 AND Item='CN 新申請' THEN 1 ELSE 0 END) as num1_CNAP, SUM(CASE WHEN daType=1 AND Item='JP 新申請' THEN 1 ELSE 0 END) as num1_JPAP,
SUM(CASE WHEN daType=1 AND Item='US 新申請' THEN 1 ELSE 0 END) as num1_USAP,SUM(CASE WHEN daType=1 AND Item='EP 新申請' THEN 1 ELSE 0 END) as num1_EPAP,
SUM(CASE WHEN daType=1 AND Item='RU 新申請' THEN 1 ELSE 0 END) as num1_RUAP, SUM(CASE WHEN daType=1 AND Item='KR 新申請' THEN 1 ELSE 0 END) as num1_KRAP,
SUM(CASE WHEN daType=1 AND Item='IN 新申請' THEN 1 ELSE 0 END) as num1_INAP,SUM(CASE WHEN daType=2 AND Item='CN 查新' THEN 1 ELSE 0 END) as num2_CNQN,
SUM(CASE WHEN daType=2 AND Item='PCT 新申請' THEN 1 ELSE 0 END) as num2_PCTAP, SUM(CASE WHEN daType=2 AND Item='CN 新申請' THEN 1 ELSE 0 END) as num2_CNAP,
SUM(CASE WHEN daType=2 AND Item='JP 新申請' THEN 1 ELSE 0 END) as num2_JPAP, SUM(CASE WHEN daType=2 AND Item='US 新申請' THEN 1 ELSE 0 END) as num2_USAP,
SUM(CASE WHEN daType=2 AND Item='EP 新申請' THEN 1 ELSE 0 END) as num2_EPAP, SUM(CASE WHEN daType=2 AND Item='RU 新申請' THEN 1 ELSE 0 END) as num2_RUAP,
SUM(CASE WHEN daType=2 AND Item='KR 新申請' THEN 1 ELSE 0 END) as num2_KRAP, SUM(CASE WHEN daType=2 AND Item='IN 新申請' THEN 1 ELSE 0 END) as num2_INAP,
SUM(CASE WHEN daType=3 AND Item='CN 查新' THEN 1 ELSE 0 END) as num3_CNQN, SUM(CASE WHEN daType=3 AND Item='PCT 新申請' THEN 1 ELSE 0 END) as num3_PCTAP,
SUM(CASE WHEN daType=3 AND Item='CN 新申請' THEN 1 ELSE 0 END) as num3_CNAP, SUM(CASE WHEN daType=3 AND Item='JP 新申請' THEN 1 ELSE 0 END) as num3_JPAP,
SUM(CASE WHEN daType=3 AND Item='US 新申請' THEN 1 ELSE 0 END) as num3_USAP,
SUM(CASE WHEN daType=3 AND Item='EP 新申請' THEN 1 ELSE 0 END) as num3_EPAP, SUM(CASE WHEN daType=3 AND Item='RU 新申請' THEN 1 ELSE 0 END) as num3_RUAP,
SUM(CASE WHEN daType=3 AND Item='KR 新申請' THEN 1 ELSE 0 END) as num3_KRAP, SUM(CASE WHEN daType=3 AND Item='IN 新申請' THEN 1 ELSE 0 END) as num3_INAP,
STUFF ((select ','+ p.Flowkey from concatFlowkey1 p where daType=1 AND Item='CN 查新' FOR XML PATH('') ), 1, 1, N'') as attr_CNQN1_todos2,
STUFF ((select ','+ p.Flowkey from concatFlowkey1 p where daType=1 AND Item='PCT 新申請' FOR XML PATH('') ), 1, 1, N'') as attr_PCTAP1_todos2,
STUFF ((select ','+ p.Flowkey from concatFlowkey1 p where daType=1 AND Item='CN 新申請' FOR XML PATH('') ), 1, 1, N'') as attr_CNAP1_todos2,
STUFF ((select ','+ p.Flowkey from concatFlowkey1 p where daType=1 AND Item='JP 新申請' FOR XML PATH('') ), 1, 1, N'') as attr_JPAP1_todos2,
STUFF ((select ','+ p.Flowkey from concatFlowkey1 p where daType=1 AND Item='US 新申請' FOR XML PATH('') ), 1, 1, N'') as attr_USAP1_todos2,
STUFF ((select ','+ p.Flowkey from concatFlowkey1 p where daType=1 AND Item='EP 新申請' FOR XML PATH('') ), 1, 1, N'') as attr_EPAP1_todos2,
STUFF ((select ','+ p.Flowkey from concatFlowkey1 p where daType=1 AND Item='RU 新申請' FOR XML PATH('') ), 1, 1, N'')as attr_RUAP1_todos2,
STUFF ((select ','+ p.Flowkey from concatFlowkey1 p where daType=1 AND Item='KR 新申請' FOR XML PATH('') ), 1, 1, N'') as attr_KRAP1_todos2,
STUFF ((select ','+ p.Flowkey from concatFlowkey1 p where daType=1 AND Item='IN 新申請' FOR XML PATH('') ), 1, 1, N'') as attr_INAP1_todos2,
STUFF ((select ','+ p.Flowkey from concatFlowkey1 p where daType=2 AND Item='CN 查新' FOR XML PATH('') ), 1, 1, N'') as attr_CNQN2_todos2,
STUFF ((select ','+ p.Flowkey from concatFlowkey1 p where daType=2 AND Item='PCT 新申請' FOR XML PATH('') ), 1, 1, N'') as attr_PCTAP2_todos2,
STUFF ((select ','+ p.Flowkey from concatFlowkey1 p where daType=2 AND Item='CN 新申請' FOR XML PATH('') ), 1, 1, N'') as attr_CNAP2_todos2,
STUFF ((select ','+ p.Flowkey from concatFlowkey1 p where daType=2 AND Item='JP 新申請' FOR XML PATH('') ), 1, 1, N'') as attr_JPAP2_todos2,
STUFF ((select ','+ p.Flowkey from concatFlowkey1 p where daType=2 AND Item='US 新申請' FOR XML PATH('') ), 1, 1, N'') as attr_USAP2_todos2,
STUFF ((select ','+ p.Flowkey from concatFlowkey1 p where daType=2 AND Item='EP 新申請' FOR XML PATH('') ), 1, 1, N'') as attr_EPAP2_todos2,
STUFF ((select ','+ p.Flowkey from concatFlowkey1 p where daType=2 AND Item='RU 新申請' FOR XML PATH('') ), 1, 1, N'')as attr_RUAP2_todos2,
STUFF ((select ','+ p.Flowkey from concatFlowkey1 p where daType=2 AND Item='KR 新申請' FOR XML PATH('') ), 1, 1, N'') as attr_KRAP2_todos2,
STUFF ((select ','+ p.Flowkey from concatFlowkey1 p where daType=2 AND Item='IN 新申請' FOR XML PATH('') ), 1, 1, N'') as attr_INAP2_todos2,
STUFF ((select ','+ p.Flowkey from concatFlowkey1 p where daType=3 AND Item='CN 查新' FOR XML PATH('') ), 1, 1, N'') as attr_CNQN3_todos2,
STUFF ((select ','+ p.Flowkey from concatFlowkey1 p where daType=3 AND Item='PCT 新申請' FOR XML PATH('') ), 1, 1, N'') as attr_PCTAP3_todos2,
STUFF ((select ','+ p.Flowkey from concatFlowkey1 p where daType=3 AND Item='CN 新申請' FOR XML PATH('') ), 1, 1, N'') as attr_CNAP3_todos2,
STUFF ((select ','+ p.Flowkey from concatFlowkey1 p where daType=3 AND Item='JP 新申請' FOR XML PATH('') ), 1, 1, N'') as attr_JPAP3_todos2,
STUFF ((select ','+ p.Flowkey from concatFlowkey1 p where daType=3 AND Item='US 新申請' FOR XML PATH('') ), 1, 1, N'') as attr_USAP3_todos2,
STUFF ((select ','+ p.Flowkey from concatFlowkey1 p where daType=3 AND Item='EP 新申請' FOR XML PATH('') ), 1, 1, N'') as attr_EPAP3_todos2,
STUFF ((select ','+ p.Flowkey from concatFlowkey1 p where daType=3 AND Item='RU 新申請' FOR XML PATH('') ), 1, 1, N'')as attr_RUAP3_todos2,
STUFF ((select ','+ p.Flowkey from concatFlowkey1 p where daType=3 AND Item='KR 新申請' FOR XML PATH('') ), 1, 1, N'') as attr_KRAP3_todos2,
STUFF ((select ','+ p.Flowkey from concatFlowkey1 p where daType=3 AND Item='IN 新申請' FOR XML PATH('') ), 1, 1, N'') as attr_INAP3_todos2
FROM concatFlowkey1 c
GROUP BY PT_EmpID, Emp_Name
) a
GROUP BY a.PT_EmpID, a.Emp_Name,attr_CNQN1_todos2,attr_PCTAP1_todos2,attr_CNAP1_todos2,attr_JPAP1_todos2,
attr_USAP1_todos2,attr_EPAP1_todos2,attr_RUAP1_todos2,attr_KRAP1_todos2,attr_INAP1_todos2,attr_CNQN2_todos2,
attr_PCTAP2_todos2,attr_CNAP2_todos2,attr_JPAP2_todos2,attr_USAP2_todos2,attr_EPAP2_todos2,attr_RUAP2_todos2,
attr_KRAP2_todos2,attr_INAP2_todos2,attr_CNQN3_todos2,attr_PCTAP3_todos2,attr_CNAP3_todos2,attr_JPAP3_todos2,
attr_USAP3_todos2,attr_EPAP3_todos2,attr_RUAP3_todos2,attr_KRAP3_todos2,attr_INAP3_todos2
) b ON a.PT_EmpID=b.PT_EmpID
ORDER BY a.Emp_name,a.PT_EmpID ;
IF OBJECT_ID('tempdb..#tmpPatCase_All', 'U') IS NOT NULL DROP TABLE #tmpPatCase_All
IF OBJECT_ID('tempdb..#tmpPT_EmployeeList', 'U') IS NOT NULL DROP TABLE #tmpPT_EmployeeList
IF OBJECT_ID('tempdb..#tmpDA_tot', 'U') IS NOT NULL DROP TABLE #tmpDA_tot
IF OBJECT_ID('tempdb..#tmpDA_3', 'U') IS NOT NULL DROP TABLE #tmpDA_3
IF OBJECT_ID('tempdb..#tmpTodos_3', 'U') IS NOT NULL DROP TABLE #tmpTodos_3
IF OBJECT_ID('tempdb..#tmpDA_2', 'U') IS NOT NULL DROP TABLE #tmpDA_2
IF OBJECT_ID('tempdb..#tmpDA_12', 'U') IS NOT NULL DROP TABLE #tmpDA_12
IF OBJECT_ID('tempdb..#tmpTodos_2', 'U') IS NOT NULL DROP TABLE #tmpTodos_2
IF OBJECT_ID('tempdb..#tmpTodos_1', 'U') IS NOT NULL DROP TABLE #tmpTodos_1
IF OBJECT_ID('tempdb..#tmpDA_1', 'U') IS NOT NULL DROP TABLE #tmpDA_1
IF OBJECT_ID('tempdb..#tmpTodos_All', 'U') IS NOT NULL DROP TABLE #tmpTodos_All
IF OBJECT_ID('tempdb..#tmpPatCase_1', 'U') IS NOT NULL DROP TABLE #tmpPatCase_1
END
GO
DECLARE @RC int
-- TODO: 在此處設定參數值。
EXECUTE @RC = [dbo].rpt_CustCaseTot_Parttime
@p_sY='2019',
@p_Mon='' ,
@p_CustName='华星'
GO
\ No newline at end of file
DECLARE @p_YM_F VARCHAR(50)= '2020-04', @p_YM_T VARCHAR(50)= '2020-05', @p_RptType VARCHAR(50)= 'byPeople' -- byItem ,bydept,byds
, @p_CustName VARCHAR(50)= '', @DisplayType VARCHAR(10)= 'Month',@DataMode VARCHAR(200)='All';
IF OBJECT_ID('tempdb..#tmpTodosAll_1', 'U') IS NOT NULL DROP TABLE #tmpTodosAll_1
IF OBJECT_ID('tempdb..#tmpPatC_5All_1', 'U') IS NOT NULL DROP TABLE #tmpPatC_5All_1
IF OBJECT_ID('tempdb..#tmpTodosAll', 'U') IS NOT NULL DROP TABLE #tmpTodosAll
IF OBJECT_ID('tempdb..#p_YMT', 'U') IS NOT NULL DROP TABLE #p_YMT
IF OBJECT_ID('tempdb..#tb_Split2', 'U') IS NOT NULL DROP TABLE #tb_Split2
IF OBJECT_ID('tempdb..#tmpItem', 'U') IS NOT NULL DROP TABLE #tmpItem
IF OBJECT_ID('tempdb..#tmpEmp', 'U') IS NOT NULL DROP TABLE #tmpEmp
IF OBJECT_ID('tempdb..#tmpPatC_5All', 'U') IS NOT NULL DROP TABLE #tmpPatC_5All
IF OBJECT_ID('tempdb..#tmpTodosAll_3', 'U') IS NOT NULL DROP TABLE #tmpTodosAll_3
IF OBJECT_ID('tempdb..#tmpPatC_5', 'U') IS NOT NULL DROP TABLE #tmpPatC_5
IF OBJECT_ID('tempdb..#tmpTodos5TDList', 'U') IS NOT NULL DROP TABLE #tmpTodos5TDList
IF OBJECT_ID('tempdb..#tmpTodos5_1All', 'U') IS NOT NULL DROP TABLE #tmpTodos5_1All
IF OBJECT_ID('tempdb..#tmpTodos5_1', 'U') IS NOT NULL DROP TABLE #tmpTodos5_1
IF OBJECT_ID('tempdb..#tmpTodos5_2All', 'U') IS NOT NULL DROP TABLE #tmpTodos5_2All
IF OBJECT_ID('tempdb..#tmpTodos5_2', 'U') IS NOT NULL DROP TABLE #tmpTodos5_2
IF OBJECT_ID('tempdb..#tmpTodos5_3All', 'U') IS NOT NULL DROP TABLE #tmpTodos5_3All
IF OBJECT_ID('tempdb..#tmpTodos5_3', 'U') IS NOT NULL DROP TABLE #tmpTodos5_3
IF OBJECT_ID('tempdb..#tmp_SqlJoin', 'U') IS NOT NULL DROP TABLE #tmp_SqlJoin
IF OBJECT_ID('tempdb..#tmp_proc_info', 'U') IS NOT NULL DROP TABLE #tmp_proc_info
IF OBJECT_ID('tempdb..#tmp_繳費領證', 'U') IS NOT NULL DROP TABLE #tmp_繳費領證
IF OBJECT_ID('tempdb..#tmp_fp', 'U') IS NOT NULL DROP TABLE #tmp_fp
Declare @p_EmpItem varchar(1),@Emp_ItemNo varchar(50),@p_StartDate datetime,@p_EndDate datetime,@p_YMT_sql varchar(max)=''
,@p_StartDatet datetime
,@p_StartWeek datetime ,@i tinyint=1,@Sweekend int,@Eweekend int,@pointday int,@count int=0 --WEEK
IF OBJECT_ID('tempdb..#p_YMT', 'U') IS NOT NULL DROP TABLE #p_YMT
set @p_StartDate =Convert(datetime,@p_YM_F+'-01',126) ;
set @p_EndDate =DATEADD(day,-1,DATEADD(month, 1,cast(@p_YM_T+'-01' as datetime))) ;
select 0 as id ,Convert(varchar(10),@p_EndDate,126) as value into #p_YMT
if @DisplayType='Week'
BEGIN
--初始星期設定
Set @Sweekend=DATEPART(WEEKDAY,@p_StartDate)
Set @Eweekend=DATEPART(WEEKDAY,@p_EndDate)
Set @pointday=abs(@@DATEFIRST-7+2) --取得目標weekend day
select @p_StartWeek=case when @Sweekend>@pointday Then DATEADD(day,-(@Sweekend-@pointday)+7,@p_StartDate)
when @Sweekend<@pointday Then DATEADD(day,(@pointday-@Sweekend),@p_StartDate)
else @p_StartDate End
set @p_StartDatet=@p_StartWeek
WHILE datediff(day,@p_StartDatet,@p_EndDate) >=0
BEGIN
Set @p_YMT_sql=@p_YMT_sql+'('+cast(@i as varchar(2))+',Convert(varchar(10),DATEADD(WEEK,'+cast((@i-1) as varchar(2))+','''+Convert(varchar(10),@p_StartWeek,126)+''') ,126)),'
Set @i= @i+1
Set @p_StartDatet=DATEADD(WEEK,1,@p_StartDatet)
END
set @p_YMT_sql=left(@p_YMT_sql,len(@p_YMT_sql)-1);
exec ('insert into #p_YMT (id,Value) values ' + @p_YMT_sql)
Set @p_EndDate=Convert(varchar(10),@p_StartDatet,126)
END
Else if @DisplayType='Month'
BEGIN
Set @p_StartDatet=@p_StartDate
WHILE datediff(month,@p_StartDatet,@p_EndDate) >=0
BEGIN
Set @p_YMT_sql=@p_YMT_sql+'('+cast(@i as varchar(2))+',Convert(varchar(10),DATEADD(month,'+cast((@i-1) as varchar(2))+','''+(@p_YM_F+'-01')+''') ,126)),'
Set @i=@i+1
Set @p_StartDatet=DATEADD(month,1,@p_StartDatet)
END
set @p_YMT_sql=left(@p_YMT_sql,len(@p_YMT_sql)-1);
--print 'insert into #p_YMT (id,Value) values ' + @p_YMT_sql
exec ('insert into #p_YMT (id,Value) values' + @p_YMT_sql)
END
Select @count=max(a.id) from #p_YMT a
--/*
-- 取得「客戶名稱」的 recordset
SELECT ID as ItemNo,replace(replace(value, char(13),''), char(10),'') as ItemDesc into #tb_Split2 FROM [ufn_split](@p_CustName, ';') ;
SELECT a.Names as ItemName,a.QryKey2 as ItemNo into #tmpItem FROM esn_category a
where a.ParentId ='Rpr_Cust' and a.Is_Enabled=1;
-- 第二部, 客戶名稱不會只有「华星」, 第一部, 客戶名稱只會有「华星」
if (SELECT COUNT(*) FROM #tb_Split2 where ItemDesc like '%华星%' or ItemDesc like '%華星%' )>0
delete from #tmpItem where ItemNo between 900 and 990
--核駁項目
if(@DataMode ='Other1')
delete from #tmpItem where ItemName Not like '%核駁%'
print('1:'+convert(varchar(20),getdate(),126))
-- 員工部別 (因該員工會多部別, 放在Emp_DS2裡, 所以要distinct )
SELECT distinct a.user_name as Emp_ID, cn_name as Emp_Name, isnull(a.Emp_DS,'') as Emp_DS, isnull(a.Emp_DSNum,'') as Emp_DSNum, isnull(a.Emp_Item,'') as Emp_Item,
isnull(a.Emp_ItemNum,'') as Emp_ItemNum,isnull(a.Emp_DeptName,'') as Emp_DeptName , 0 as Emp_Sort ,a.user_id
into #tmpEmp
FROM [dbo].[evw_Employee] a
;
-- 2.取得: ToDos
print('2-1:'+convert(varchar(20),getdate(),126))
select sn,c.proc_id,a.CaseType_Name,CaseNo,TaskDescription,c.create_time as StartDate2,AttorneyDueDate,FinishedDate,AssignedTo_userid,
b.Emp_ID as AssignedTo,b.Emp_Name as AssignedTo_Name,
b.Emp_ID, b.Emp_Name,b.Emp_DSNum, b.Emp_Item, b.Emp_ItemNum, 0 as Emp_Sort ,b.Emp_DS,b.Emp_DeptName,
Points, PatentType,PatentType_Name,ToDosStatus, a.case_id
,isnull(c.review_stage,'') as review_stage,d.proc_status_zh_tw,d.status_code,e.ctrl_proc_zh_tw,e.ctrl_proc_zh_cn
into #tmpTodosAll_1
from evw_esn_todos a
left join p_proc_info c on a.proc_id=c.proc_id
Inner join #tmpEmp b on a.AssignedTo_userid=b.user_id
left join i_proc_status d on c.proc_status_id=d.proc_status_id
left join i_ctrl_proc e on c.ctrl_proc_id=e.ctrl_proc_id
where
(
(c.create_time between @p_StartDate AND @p_EndDate) OR -- 起始日
(a.FinishedDate between @p_StartDate AND @p_EndDate) OR -- 完成日
(a.AttorneyDueDate between @p_StartDate AND @p_EndDate)
)
--AND a.PatentType IN ('PN01', 'PN02', 'PN03','PN07')
AND a.TaskDescription Not in('繳費領證','辦理登記手續','取得證書') --排除繳費領證 與P_PROC_info 重覆資料
print('2-2:'+convert(varchar(20),getdate(),126))
SELECT a.* , case when ibt.business_type_code='PN' THEN 'Y' END as PctNationalPhase,p.country_id as office,Cast(a.sn as varchar(50)) as Flowkey
,p.customer_name as Client_CompanyName,case when ecg.GroupName is null then '其他客戶' else ecg.GroupName end as Client_Group
into #tmpTodosAll
FROM #tmpTodosAll_1 a
inner join [evw_p_case_info] p on p.case_id=a.case_id
left join esn_Customer_Group ecg on ecg.CustId=p.customer_id and ecg.Handle_GroupName='SZ翼盛'
inner join #tb_Split2 s on p.customer_name like s.ItemDesc +'%'
left join i_business_type ibt on ibt.business_type_id=p.business_type_id
;
print('2-3:'+convert(varchar(20),getdate(),126))
insert into #tmpTodosAll(sn,proc_id,CaseType_Name,CaseNo,TaskDescription,StartDate2,AttorneyDueDate,
FinishedDate,AssignedTo_userid,AssignedTo,AssignedTo_Name,Points,PatentType,PatentType_Name,ToDosStatus,
case_id,review_stage,proc_status_zh_tw,status_code,ctrl_proc_zh_tw,ctrl_proc_zh_cn,PctNationalPhase,office,Flowkey,Client_CompanyName,Client_Group
--,CaseNo_r
,Emp_ID,Emp_Name,Emp_DSNum,Emp_Item,Emp_ItemNum,Emp_Sort,Emp_DS,Emp_DeptName )
SELECT '' as SN,a.proc_id,e.case_type_zh_tw as CaseType_Name, b.case_volume as CaseNo,c.ctrl_proc_zh_tw as TaskDescription,
a.create_time as StartDate2,a.int_due_date as AttorneyDueDate,fp.finish_date as FinishedDate,g.user_id as AssignedTo_userid,g.emp_id as AssignedTo,g.Emp_Name as AssignedTo_Name
,0 as Points,h.apply_type_code as PatentType,h.apply_type_zh_tw as PatentType_Name,case when d.status_code not in('CL','FS') then 'TDS01' else 'TDS02' end as ToDosStatus,
b.case_id,isnull(a.review_stage,'') as review_stage,d.proc_status_zh_tw,d.status_code,c.ctrl_proc_zh_tw,c.ctrl_proc_zh_cn,case when ibt.business_type_code='PN' THEN 'Y' END as PctNationalPhase,b.country_id as office,Cast(a.proc_id as varchar(50)) as Flowkey ,
b.customer_name as Client_CompanyName,case when ecg.GroupName is null then '其他客戶' else ecg.GroupName end as Client_Group
--,'' as CaseNo_r
,g.Emp_ID,g.Emp_Name,g.Emp_DSNum,g.Emp_Item,g.Emp_ItemNum,'' as Emp_Sort,g.Emp_DS,g.Emp_DeptName
FROM p_proc_info a
INNER JOIN
(
SELECT *
FROM
(
--排除重複,取最早日期
SELECT ROW_NUMBER() OVER(PARTITION BY case_volume ORDER BY finish_date) AS rowNum,
b.case_volume,
a.proc_id,
(case when c.ctrl_proc_zh_tw = '辦理登記手續' then a.doc_date else a.finish_date end) AS finish_date
FROM p_proc_info a
LEFT JOIN p_case_info b ON a.case_id = b.case_id
LEFT JOIN i_ctrl_proc c ON a.ctrl_proc_id = c.ctrl_proc_id
LEFT JOIN i_proc_status d ON a.proc_status_id = d.proc_status_id
LEFT JOIN i_case_type e ON b.case_type_id = e.case_type_id
WHERE case_type_code = 'P'
AND (
(b.country_id <> 'CN' AND (c.ctrl_proc_zh_tw = '繳費領證' OR c.ctrl_proc_zh_tw = '取得證書'))
OR (b.country_id = 'CN' AND c.ctrl_proc_zh_tw = '辦理登記手續')
)
AND ((b.country_id = 'CN' AND a.doc_date is not null) or (b.country_id <> 'CN' AND a.finish_date is not null))
) a
WHERE rowNum = 1
) fp ON fp.proc_id = a.proc_id
LEFT JOIN [evw_p_case_info] b ON a.case_id = b.case_id
LEFT JOIN evw_p_proc_pic_list f ON f.obj_id = a.proc_id
inner join #tmpEmp g on g.user_id=f.pic_id
LEFT JOIN i_ctrl_proc c ON a.ctrl_proc_id = c.ctrl_proc_id
LEFT JOIN i_proc_status d ON a.proc_status_id=d.proc_status_id
LEFT JOIN i_case_type e ON b.case_type_id = e.case_type_id
LEFT JOIN i_apply_type h ON h.apply_type_id = b.apply_type_id
left join i_business_type ibt on ibt.business_type_id=b.business_type_id
left join esn_Customer_Group ecg on ecg.CustId=b.customer_id and ecg.Handle_GroupName='SZ翼盛'
WHERE fp.finish_date between @p_StartDate AND @p_EndDate;
print('4:'+convert(varchar(20),getdate(),126))
-- 3.取得「新進」資料
SELECT
CASE WHEN a.Office='CN' AND (CHARINDEX('審查意見',a.ctrl_proc_zh_tw)>0 OR CHARINDEX('审查意见',a.ctrl_proc_zh_cn)>0) THEN 'CN OA' END as ItemIN1, -- CN OA(新進) -->1.國家為CN , 2.抓管制事項:審查意見/审查意见, 3.創建日期在該月(周)份
CASE WHEN a.Office='TW' AND (CHARINDEX('申復',a.ctrl_proc_zh_tw)>0 OR CHARINDEX('申复',a.ctrl_proc_zh_cn)>0 OR CHARINDEX('提出再審',a.ctrl_proc_zh_tw)>0) THEN 'TW OA' END as ItemIN2, -->1.國家為TW, 2.抓管制事項:(子)完成初稿 (父)(包含)申復/提出再審 ,3.創建日期在該月(周)份
CASE WHEN a.Office='US' AND (CHARINDEX('response',LOWER(a.ctrl_proc_zh_tw))>0 OR CHARINDEX('election',LOWER(a.ctrl_proc_zh_tw))>0 OR CHARINDEX('advisory action',LOWER(a.ctrl_proc_zh_tw))>0 ) THEN 'US OA' END as ItemIN3, -- US OA(新進) -->1.國家為US, 2.抓管制事項:(父)(包含)Respnose/Election/Advisory Action/parte quayle , 3.創建日期在該月(周)份
CASE WHEN a.Office='KR' AND (CHARINDEX('response',LOWER(a.ctrl_proc_zh_tw))>0 OR CHARINDEX('Re-examination',LOWER(a.ctrl_proc_zh_tw))>0 OR CHARINDEX('appeal',LOWER(a.ctrl_proc_zh_tw))>0 ) THEN 'KR OA' END as ItemIN4, -- KR OA(新進) -->1.國家為KR, 2.抓管制事項:(父)(包含)Response/Re-examination/Appeal/final rejection , 3.創建日期在該月(周)份
CASE WHEN a.Office='JP' AND (CHARINDEX('response',LOWER(a.ctrl_proc_zh_tw))>0 OR CHARINDEX('appeal',LOWER(a.ctrl_proc_zh_tw))>0 ) THEN 'JP OA' END as ItemIN5, -- JP OA(新進) -->1.國家為JP, 2.抓管制事項:(父)(包含)Response/Appeal/行政訴訟, 3.創建日期在該月(周)份
CASE WHEN a.Office NOT IN ('CN', 'TW', 'US','KR', 'JP') AND CHARINDEX('response',LOWER(a.ctrl_proc_zh_tw))>0 THEN a.Office+' OA' END as ItemIN6, -- XX OA(新進) -->1.國家為XX, 2.抓管制事項:Response ,3.創建日期在該月(周)份
CASE WHEN a.ctrl_proc_zh_tw='RCE' THEN 'RCE' END as ItemIN7, -- RCE(新進) -->1.不分國家, 2.抓管制事項:RCE
CASE WHEN a.ctrl_proc_zh_tw='IDS' THEN 'IDS' END as ItemIN8, -- IDS(新進) -->1.不分國家, 2.抓管制事項:IDS
CASE WHEN (a.Office<>'CN' and ctrl_proc_zh_tw in('繳費領證','取得證書')) or (a.Office='CN' and ctrl_proc_zh_tw in('辦理登記手續')) THEN '繳費領證' END as ItemIN9, -- 繳費領證(新進)
CASE WHEN (CHARINDEX('駁回',a.ctrl_proc_zh_tw)>0 OR CHARINDEX('驳回',a.ctrl_proc_zh_cn)>0) THEN a.Office+' 核駁' END as ItemIN10, -- XX-核駁(新進) -->1.XX國家, 2.抓管制事項:(父)(包含)驳回
CASE WHEN CHARINDEX('客戶看稿', a.ctrl_proc_zh_tw)>0 THEN a.Office+' 核稿' END as ItemIN11, -- 核稿(新進) -->1.國家為XX, 2.抓管制事項:(包含)客戶看稿
CASE WHEN (a.CaseNo like '%-M%'or a.CaseNo like '%-CN%') And CHARINDEX('申請前檢索',a.ctrl_proc_zh_tw)>0 THEN 'CN 查新' END as ItemIN12, -- CN 查新(新進) -->案件編號(包含)-M,-CN, .管制事項:(父)申請前檢索 ,3.創建日期在該月(周)份
--CASE WHEN a.Office='WO' And CHARINDEX('新申請',a.ctrl_proc_zh_tw)>0 THEN 'PCT 新申請' END as ItemIN13, -- 3.PCT 新申請(新進) -->1.國家為WO, 2.管制事項:(父)新申請 ,3.創建日期在該月(周)份
CASE WHEN CHARINDEX('新申請',a.ctrl_proc_zh_tw)>0 THEN a.Office+' 新申請' END as ItemIN14, -- 4.XX 新申請(新進) --> 1.國家為XX,2.管制事項:(父)新申請 ,3.創建日期在該月(周)份
Convert(varchar(10),a.StartDate2,126) as YM_ST, a.*, getdate() as sysDate
into #tmpTodos5_1All
FROM #tmpTodosAll a
WHERE a.StartDate2 between @p_StartDate AND @p_EndDate
;
select CAST(ItemIN1 as varCHAR(20)) as ItemIN, a.* into #tmpTodos5_1 from #tmpTodos5_1All a where ItemIN1<>'';
insert #tmpTodos5_1
select ItemIN2 as ItemIN, a.* from #tmpTodos5_1All a where ItemIN2<>''
union select ItemIN3 as ItemIN, a.* from #tmpTodos5_1All a where ItemIN3<>'' union select ItemIN4 as ItemIN, a.* from #tmpTodos5_1All a where ItemIN4<>''
union select ItemIN5 as ItemIN, a.* from #tmpTodos5_1All a where ItemIN5<>'' union select ItemIN6 as ItemIN, a.* from #tmpTodos5_1All a where ItemIN6<>''
union select ItemIN7 as ItemIN, a.* from #tmpTodos5_1All a where ItemIN7<>'' union select ItemIN8 as ItemIN, a.* from #tmpTodos5_1All a where ItemIN8<>''
union select ItemIN9 as ItemIN, a.* from #tmpTodos5_1All a where ItemIN9<>''
union select ItemIN10 as ItemIN, a.* from #tmpTodos5_1All a where ItemIN10<>'' union select ItemIN11 as ItemIN, a.* from #tmpTodos5_1All a where ItemIN11<>''
union select ItemIN12 as ItemIN, a.* from #tmpTodos5_1All a where ItemIN12<>'' --union select ItemIN13 as ItemIN, a.* from #tmpTodos5_1All a where ItemIN13<>''
union select ItemIN14 as ItemIN, a.* from #tmpTodos5_1All a where ItemIN14<>'' --union select ItemIN12 as ItemIN, a.* from #tmpTodos5_1All a where ItemIN15<>''
;
-- ALTER TABLE tmpTodos5_1 ADD INDEX(`CaseNo`);
print('5:'+convert(varchar(20),getdate(),126))
-- 4.取得: OA 的「「完成」資料
SELECT CASE WHEN (a.CaseNo like '%-M%'or a.CaseNo like '%-CN%') AND (CHARINDEX('提出報告',a.TaskDescription)>0 OR CHARINDEX('提出报告',a.TaskDescription)>0) THEN 'CN 查新' END as ItemFH1, --CN 查新(完成) -->1.案件編號(包含)-M,-CN,3.管制事項:(子)(包含)提出報告,提出报告
CASE WHEN a.Office='CN' AND a.TaskDescription='完成初稿' AND CHARINDEX('新申請',a.ctrl_proc_zh_tw)>0 THEN 'CN 新申請' END as ItemFH2, -- CN 新申請(完成) -->1.國家為CN, 2.案件類別: PN01, PN02, PN03, 3.管制事項:(子)完成初稿 (父)(包含)新申請
--CASE WHEN a.Office='WO' AND a.TaskDescription='完成初稿' AND CHARINDEX('新申請',a.ctrl_proc_zh_tw)>0 THEN 'PCT 新申請' END as ItemFH3, -- PCT 新申請(完成)-->1.國家為WO, 2.案件類別: PN01, PN07,3.管制事項:(子)完成初稿 (父)(包含)新申請 
CASE WHEN a.Office='TW' AND a.TaskDescription='完成初稿' AND CHARINDEX('新申請',a.ctrl_proc_zh_tw)>0 THEN 'TW 新申請' END as ItemFH5, -- TW 新申請(完成)-->1.國家為TW, 2.案件類別: PN01 3.管制事項:(子)完成初稿 (父)(包含)新申請
CASE WHEN a.Office NOT IN ('CN', 'TW') AND a.TaskDescription='完成初稿' AND CHARINDEX('新申請',a.ctrl_proc_zh_tw)>0 THEN a.Office+' 新申請' END as ItemFH6, -- XX 新申請(完成) -->1.國家為XX, 2.案件類別: PN01 ,3.管制事項:(子)完成初稿 (父)(包含)新申請
--CASE WHEN Office='CN' AND review_stage<>'' AND CHARINDEX('完成初稿',a.TaskDescription)>0 THEN 'CN OA' END as ItemFH7, -- CN OA(完成) -->1.國家為CN, 2.抓管制事項:(包含)完成初稿, 3.完成日落在該月份,,4.OA階段不為空白
--CASE WHEN Office NOT IN ('CN') AND review_stage<>'' AND a.TaskDescription='完成初稿' THEN a.Office+' OA' END as ItemFH10, -- XX OA(完成) -->1.國家為XX, 2.抓管制事項:完成初稿,3.OA階段不為空白
CASE WHEN a.Office='CN' AND (CHARINDEX('完成初稿',a.TaskDescription))>0 AND (CHARINDEX('審查意見',a.ctrl_proc_zh_tw)>0 OR CHARINDEX('审查意见',a.ctrl_proc_zh_cn)>0) THEN 'CN OA' END as ItemFH8, -- CN OA(完成) -->1.國家為CN , 2.抓管制事項:(子)完成初稿 (父)(包含)审查意见
CASE WHEN a.Office='TW' AND (CHARINDEX('完成初稿',a.TaskDescription))>0 AND (CHARINDEX('申復',a.ctrl_proc_zh_tw)>0 OR CHARINDEX('申复',a.ctrl_proc_zh_cn)>0 OR CHARINDEX('提出再審',a.ctrl_proc_zh_tw)>0) THEN 'TW OA' END as ItemFH9, -- TW OA(完成) -->1.國家為TW, 2.抓管制事項:(子)完成初稿 (父)(包含)申復/提出再審
CASE WHEN a.Office='US' AND (CHARINDEX('完成初稿',a.TaskDescription))>0 AND (CHARINDEX('response',LOWER(a.ctrl_proc_zh_tw))>0 OR CHARINDEX('election',LOWER(a.ctrl_proc_zh_tw))>0 OR CHARINDEX('advisory action',LOWER(a.ctrl_proc_zh_tw))>0 ) THEN 'US OA' END as ItemFH10, -- US OA(完成) -->1.國家為US, 2.抓管制事項:(子)完成初稿 (父)(包含)Respnose/Election/Advisory Action/parte quayle
CASE WHEN a.Office='KR' AND (CHARINDEX('完成初稿',a.TaskDescription))>0 AND (CHARINDEX('response',LOWER(a.ctrl_proc_zh_tw))>0 OR CHARINDEX('Re-examination',LOWER(a.ctrl_proc_zh_tw))>0 OR CHARINDEX('appeal',LOWER(a.ctrl_proc_zh_tw))>0 ) THEN 'KR OA' END as ItemFH11, -- KR OA(完成) -->1.國家為KR, 2.抓管制事項:(子)完成初稿 (父)(包含)Response/Re-examination/Appeal/final rejection
CASE WHEN a.Office='JP' AND (CHARINDEX('完成初稿',a.TaskDescription))>0 AND (CHARINDEX('response',LOWER(a.ctrl_proc_zh_tw))>0 OR CHARINDEX('appeal',LOWER(a.ctrl_proc_zh_tw))>0 ) THEN 'JP OA' END as ItemFH12, -- JP OA(完成) -->1.國家為JP, 2.抓管制事項:(子)完成初稿 (父)(包含)Response/Appeal/行政訴訟
CASE WHEN a.Office NOT IN ('CN', 'TW', 'US','KR', 'JP') AND (CHARINDEX('完成初稿',a.TaskDescription))>0 AND CHARINDEX('response',LOWER(a.ctrl_proc_zh_tw))>0 THEN a.Office+' OA' END as ItemFH13, -- XX OA(完成) -->1.國家為XX, 2.抓管制事項:(子)完成初稿 (父)(包含)Response
CASE WHEN Office='CN' AND CHARINDEX('核駁報導',a.TaskDescription)>0 THEN 'CN 核駁' END as ItemFH71, -- CN-核駁(完成) -->1.國家為CN, 2.抓管制事項:(子)(包含)核駁報導
CASE WHEN a.TaskDescription='核駁報導' AND a.Office NOT IN('CN') THEN a.Office+' 核駁' END as ItemFH81, -- XX-核駁(完成) -->1.國家為XX, 2.抓管制事項:(子)核駁報導
CASE WHEN CHARINDEX('rce', LOWER(a.TaskDescription))>0 THEN 'RCE' END as ItemFH91, -- RCE(完成)-->1.不分國家, 2.抓管制事項:(子)(包含)rce
CASE WHEN CHARINDEX('ids', LOWER(a.TaskDescription))>0 THEN 'IDS' END as ItemFH101, --IDS(完成)-->1.不分國家, 2.抓管制事項:(子)(包含)IDS
CASE WHEN (a.Office<>'CN' and TaskDescription in('繳費領證','取得證書')) or (a.Office='CN' and TaskDescription in('辦理登記手續')) THEN '繳費領證' END as ItemFH111, -- 繳費領證(完成) -->1.不分國家, 2.抓管制事項:CN(包含)办理登记手续,TW(包含)繳費領證 \取得證書 3.CN 日期取官方來文日,非CN取符合項目最早日期
CASE WHEN CHARINDEX('客戶看稿', a.TaskDescription)>0 THEN a.Office+' 核稿' END as ItemFH121, -- 核稿(完成) -->1.國家為XX, 2.抓管制事項:(子)(包含)客戶看稿
Convert(varchar(10),a.FinishedDate,126) as YM_FH, a.*
into #tmpTodos5_2All
FROM #tmpTodosAll a
WHERE a.FinishedDate between @p_StartDate AND @p_EndDate
AND (CHARINDEX('完成初稿',a.TaskDescription)>0 OR CHARINDEX('提出報告',a.TaskDescription)>0 OR CHARINDEX('提出报告',a.TaskDescription)>0 OR
CHARINDEX('rce', LOWER(a.TaskDescription))>0 OR CHARINDEX('ids', LOWER(a.TaskDescription))>0 OR CHARINDEX('繳費領證', a.TaskDescription)>0 OR
CHARINDEX('核駁報導', a.TaskDescription)>0 OR CHARINDEX('辦理登記手續', a.TaskDescription)>0 OR CHARINDEX('取得證書', a.TaskDescription)>0 OR
CHARINDEX('客戶看稿', a.TaskDescription)>0
)
;
print('6:'+convert(varchar(20),getdate(),126))
select CAST(ItemFH1 as varCHAR(20)) as ItemFH, a.* into #tmpTodos5_2 from #tmpTodos5_2All a where ItemFH1<>'';
insert #tmpTodos5_2
select ItemFH2 as ItemFH, a.* from #tmpTodos5_2All a where ItemFH2<>''
--union select ItemFH3 as ItemFH, a.* from #tmpTodos5_2All a where ItemFH3<>'' union select ItemFH4 as ItemFH, a.* from #tmpTodos5_2All a where ItemFH4<>''
union select ItemFH5 as ItemFH, a.* from #tmpTodos5_2All a where ItemFH5<>'' union select ItemFH6 as ItemFH, a.* from #tmpTodos5_2All a where ItemFH6<>''
union select ItemFH8 as ItemFH, a.* from #tmpTodos5_2All a where ItemFH8<>'' union select ItemFH10 as ItemFH, a.* from #tmpTodos5_2All a where ItemFH10<>''
union select ItemFH9 as ItemFH, a.* from #tmpTodos5_2All a where ItemFH9<>'' union select ItemFH11 as ItemFH, a.* from #tmpTodos5_2All a where ItemFH11<>''
union select ItemFH12 as ItemFH, a.* from #tmpTodos5_2All a where ItemFH12<>'' union select ItemFH13 as ItemFH, a.* from #tmpTodos5_2All a where ItemFH13<>''
union select ItemFH71 as ItemFH, a.* from #tmpTodos5_2All a where ItemFH71<>'' union select ItemFH81 as ItemFH, a.* from #tmpTodos5_2All a where ItemFH81<>''
union select ItemFH91 as ItemFH, a.* from #tmpTodos5_2All a where ItemFH91<>'' union select ItemFH101 as ItemFH, a.* from #tmpTodos5_2All a where ItemFH101<>''
union select ItemFH111 as ItemFH, a.* from #tmpTodos5_2All a where ItemFH111<>'' union select ItemFH121 as ItemFH, a.* from #tmpTodos5_2All a where ItemFH121<>''
;
print('7:'+convert(varchar(20),getdate(),126))
-- 5.取得:「未完成」資料
SELECT CASE WHEN (a.CaseNo like '%-M%'or a.CaseNo like '%-CN%') AND (CHARINDEX('提出報告',a.TaskDescription)>0 OR CHARINDEX('提出报告',a.TaskDescription)>0) THEN 'CN 查新' END as Item_NotFH1, -- CN 查新(未完成) -->1.案件編號(包含)-M,-CN,3.管制事項:(子)(包含)提出報告,提出报告
CASE WHEN a.Office='CN' AND a.TaskDescription='完成初稿' AND CHARINDEX('新申請',a.ctrl_proc_zh_tw)>0 THEN 'CN 新申請' END as Item_NotFH2, -- CN 新申請(未完成) -->1.國家為CN, 2.案件類別: PN01, PN02, PN03, 3.管制事項:(子)完成初稿 (父)(包含)新申請
--CASE WHEN a.Office='WO' AND a.TaskDescription='完成初稿' AND CHARINDEX('新申請',a.ctrl_proc_zh_tw)>0 THEN 'PCT 新申請' END as Item_NotFH3, -- PCT 新申請(未完成)-->1.國家為WO, 2.案件類別: PN01, PN07,3.管制事項:(子)完成初稿 (父)(包含)新申請 
CASE WHEN a.Office='TW' AND a.TaskDescription='完成初稿' AND CHARINDEX('新申請',a.ctrl_proc_zh_tw)>0 THEN 'TW 新申請' END as Item_NotFH4, -- TW 新申請(未完成)-->1.國家為TW, 2.案件類別: PN01 3.管制事項:(子)完成初稿 (父)(包含)新申請
CASE WHEN a.Office NOT IN ('CN','TW') AND a.TaskDescription='完成初稿' AND CHARINDEX('新申請',a.ctrl_proc_zh_tw)>0 THEN a.Office+' 新申請' END as Item_NotFH5, -- XX 新申請(未完成) -->1.國家為XX, 2.案件類別: PN01 ,3.管制事項:(子)完成初稿 (父)(包含)新申請
CASE WHEN a.Office='CN' AND (CHARINDEX('完成初稿',a.TaskDescription))>0 AND (CHARINDEX('審查意見',a.ctrl_proc_zh_tw)>0 OR CHARINDEX('审查意见',a.ctrl_proc_zh_cn)>0) THEN 'CN OA' END as Item_NotFH60, -- CN OA(未完成) -->1.國家為CN , 2.抓管制事項:(子)完成初稿 (父)(包含)审查意见
CASE WHEN a.Office='TW' AND (CHARINDEX('完成初稿',a.TaskDescription))>0 AND (CHARINDEX('申復',a.ctrl_proc_zh_tw)>0 OR CHARINDEX('申复',a.ctrl_proc_zh_cn)>0 OR CHARINDEX('提出再審',a.ctrl_proc_zh_tw)>0) THEN 'TW OA' END as Item_NotFH61, -- TW OA(未完成) -->1.國家為TW, 2.抓管制事項:(子)完成初稿 (父)(包含)申復/提出再審
CASE WHEN a.Office='US' AND (CHARINDEX('完成初稿',a.TaskDescription))>0 AND (CHARINDEX('response',LOWER(a.ctrl_proc_zh_tw))>0 OR CHARINDEX('election',LOWER(a.ctrl_proc_zh_tw))>0 OR CHARINDEX('advisory action',LOWER(a.ctrl_proc_zh_tw))>0) THEN 'US OA' END as Item_NotFH62, -- US OA(未完成) -->1.國家為US, 2.抓管制事項:(子)完成初稿 (父)(包含)Respnose/Election/Advisory Action/parte quayle
CASE WHEN a.Office='KR' AND (CHARINDEX('完成初稿',a.TaskDescription))>0 AND (CHARINDEX('response',LOWER(a.ctrl_proc_zh_tw))>0 OR CHARINDEX('Re-examination',LOWER(a.ctrl_proc_zh_tw))>0 OR CHARINDEX('appeal',LOWER(a.ctrl_proc_zh_tw))>0) THEN 'KR OA' END as Item_NotFH63, -- KR OA(未完成) -->1.國家為KR, 2.抓管制事項:(子)完成初稿 (父)(包含)Response/Re-examination/Appeal/final rejection
CASE WHEN a.Office='JP' AND (CHARINDEX('完成初稿',a.TaskDescription))>0 AND (CHARINDEX('response',LOWER(a.ctrl_proc_zh_tw))>0 OR CHARINDEX('appeal',LOWER(a.ctrl_proc_zh_tw))>0 ) THEN 'JP OA' END as Item_NotFH64, -- JP OA(未完成) -->1.國家為JP, 2.抓管制事項:(子)完成初稿 (父)(包含)Response/Appeal/行政訴訟
CASE WHEN a.Office NOT IN ('CN', 'TW', 'US','KR', 'JP') AND (CHARINDEX('完成初稿',a.TaskDescription))>0 AND CHARINDEX('response',LOWER(a.ctrl_proc_zh_tw))>0 THEN a.Office+' OA' END as Item_NotFH65, -- XX OA(未完成) -->1.國家為XX, 2.抓管制事項:(子)完成初稿 (父)(包含)Response
--CASE WHEN Office='CN' AND CHARINDEX('核駁報導',a.TaskDescription)>0 THEN 'CN 核駁' END as ItemFH70, -- CN-核駁(未完成) -->1.國家為CN, 2.抓管制事項:(子)(包含)核駁報導
CASE WHEN CHARINDEX('核駁報導',a.TaskDescription)>0 THEN a.Office+' 核駁' END as Item_NotFH7, -- XX-核駁(未完成) -->1.國家為XX, 2.抓管制事項:(子)核駁報導
CASE WHEN CHARINDEX('rce', LOWER(a.TaskDescription))>0 THEN 'RCE' END as Item_NotFH8, -- RCE(未完成)-->1.不分國家, 2.抓管制事項:(子)(包含)rce
CASE WHEN CHARINDEX('ids', LOWER(a.TaskDescription))>0 THEN 'IDS' END as Item_NotFH9, --IDS(未完成)-->1.不分國家, 2.抓管制事項:(子)(包含)IDS
CASE WHEN (a.Office<>'CN' and TaskDescription in('繳費領證','取得證書')) or (a.Office='CN' and TaskDescription in('辦理登記手續')) THEN '繳費領證' END as Item_NotFH10, -- 繳費領證(未完成) -->1.不分國家, 2.抓管制事項:CN(包含)办理登记手续,TW(包含)繳費領證 \取得證書 3.CN 日期取官方來文日,非CN取符合項目最早日期
CASE WHEN CHARINDEX('客戶看稿', a.TaskDescription)>0 THEN a.Office+' 核稿' END as Item_NotFH11, -- 核稿(未完成) -->1.國家為XX, 2.抓管制事項:(子)(包含)客戶看稿
CASE WHEN (a.AttorneyDueDate='' or a.AttorneyDueDate is null) THEN '' ELSE Convert(varchar(10),a.AttorneyDueDate,126) END as YM_AD, a.*
into #tmpTodos5_3All
FROM #tmpTodosAll a
WHERE ((a.AttorneyDueDate between @p_StartDate AND @p_EndDate ) AND (a.finishedDate='' or a.finishedDate is null))
AND (CHARINDEX('完成初稿',a.TaskDescription)>0 OR CHARINDEX('提出報告',a.TaskDescription)>0 OR CHARINDEX('提出报告',a.TaskDescription)>0 OR
CHARINDEX('rce', LOWER(a.TaskDescription))>0 OR CHARINDEX('ids', LOWER(a.TaskDescription))>0 OR CHARINDEX('繳費領證', a.TaskDescription)>0 OR
CHARINDEX('核駁報導', a.TaskDescription)>0 OR CHARINDEX('辦理登記手續', a.TaskDescription)>0 OR CHARINDEX('取得證書', a.TaskDescription)>0 OR
CHARINDEX('客戶看稿', a.TaskDescription)>0
)
;
select CAST(Item_NotFH1 as varCHAR(20)) as Item_NotFH, a.* into #tmpTodos5_3 from #tmpTodos5_3All a where Item_NotFH1<>'';
Insert into #tmpTodos5_3
select Item_NotFH2 as Item_NotFH, a.* from #tmpTodos5_3All a where Item_NotFH2<>''
--Union select Item_NotFH3 as Item_NotFH, a.* from #tmpTodos5_3All a where Item_NotFH3<>''
Union select Item_NotFH4 as Item_NotFH, a.* from #tmpTodos5_3All a where Item_NotFH4<>''
Union select Item_NotFH5 as Item_NotFH, a.* from #tmpTodos5_3All a where Item_NotFH5<>''
Union select Item_NotFH7 as Item_NotFH, a.* from #tmpTodos5_3All a where Item_NotFH7<>''
Union select Item_NotFH8 as Item_NotFH, a.* from #tmpTodos5_3All a where Item_NotFH8<>''
Union select Item_NotFH9 as Item_NotFH, a.* from #tmpTodos5_3All a where Item_NotFH9<>''
Union select Item_NotFH10 as Item_NotFH, a.* from #tmpTodos5_3All a where Item_NotFH10<>''
Union select Item_NotFH60 as Item_NotFH, a.* from #tmpTodos5_3All a where Item_NotFH60<>''
Union select Item_NotFH61 as Item_NotFH, a.* from #tmpTodos5_3All a where Item_NotFH61<>''
Union select Item_NotFH62 as Item_NotFH, a.* from #tmpTodos5_3All a where Item_NotFH62<>''
Union select Item_NotFH63 as Item_NotFH, a.* from #tmpTodos5_3All a where Item_NotFH63<>''
Union select Item_NotFH64 as Item_NotFH, a.* from #tmpTodos5_3All a where Item_NotFH64<>''
Union select Item_NotFH65 as Item_NotFH, a.* from #tmpTodos5_3All a where Item_NotFH65<>''
Union select Item_NotFH65 as Item_NotFH, a.* from #tmpTodos5_3All a where Item_NotFH65<>'';
print('8:'+convert(varchar(20),getdate(),126))
--print(convert(varchar(20),getdate(),126))
-- ALTER TABLE tmpTodos5_3 ADD INDEX(`CaseNo`);
--*/
-- 6.結果
DECLARE @SqlString varchar(max)= '', @SqlJoinString varchar(max)= '', @CommonString varchar(max)= '', @CommonStringJoin1 varchar(max)= '', @CommonStringJoin2 varchar(max)= '',
@CommonStringJoin3 varchar(max)= '', @CommonStringJoin4 varchar(max)= '', @SortString varchar(500)= '', @cnt tinyint= 1, @cntT varchar(3)= '', @cntO varchar(3)= '',
@groupcase1 varchar(300)= '', @groupcase2 varchar(300)= '', @groupcase3 varchar(300)= '', @groupcase4 varchar(300)= '', @groupcase varchar(300)= '', @p_YMT_value varchar(10)
,@DateCase1 varchar(200)= '',@DateCase2 varchar(200)= '',@DateCase3 varchar(200)= '',@DateCase4 varchar(200)= '',@JoinType varchar(50)= '';
WHILE @cnt <= @count
BEGIN
BEGIN
SET @cntT = RIGHT(REPLICATE('0', 2) + CAST(@cnt AS varchar), 2); -- 補零
SET @cntO = CAST(@cnt AS varchar);
SET @p_YMT_value =(SELECT Value FROM #p_YMT WHERE id = @cntO );
if @DisplayType ='Week'
BEGIN
Set @DateCase1='CASE WHEN ''' + @p_YMT_value + ''' <=YM_cr and Dateadd(week,1,cast(''' + @p_YMT_value + ''' as datetime)) > YM_cr '
Set @DateCase2='CASE WHEN ''' + @p_YMT_value + ''' <=YM_ST and Dateadd(week,1,cast(''' + @p_YMT_value + ''' as datetime)) > YM_ST '
Set @DateCase3='CASE WHEN ''' + @p_YMT_value + ''' <=YM_FH and Dateadd(week,1,cast(''' + @p_YMT_value + ''' as datetime)) > YM_FH '
Set @DateCase4='0'
End
Else IF @DisplayType ='Month'
BEGIN
Set @DateCase1='CASE WHEN Convert(varchar(7),YM_cr,126)= ''' + Convert(varchar(7),@p_YMT_value,126) + ''''
Set @DateCase2='CASE WHEN Convert(varchar(7),YM_ST,126)= ''' + Convert(varchar(7),@p_YMT_value,126) + ''''
Set @DateCase3='CASE WHEN Convert(varchar(7),YM_FH,126)= ''' + Convert(varchar(7),@p_YMT_value,126) + ''''
Set @DateCase4='0'
END
SET @CommonString = @CommonString + 'CASE WHEN ''' + CONVERT(varchar(10),@p_EndDate,126) + ''' > ''' + @p_YMT_value + ''' THEN 1 ELSE 0 END v' + @cntT + ',STUFF ((SELECT distinct '','' + (CASE WHEN attr_IN' + @cntT
+ '<>'''' THEN attr_IN' + @cntT + ' END) @groupcase FOR XML PATH('''')), 1, 1, N'''') as attr_IN' + @cntT + '_todos2, SUM(isnull(IN' + @cntT + ','''')) as ''新進_' + @cntT
+ ''', STUFF ((SELECT distinct '','' + (CASE WHEN attr_FH' + @cntT + '<>'''' THEN attr_FH' + @cntT + ' END) @groupcase FOR XML PATH('''')), 1, 1, N'''') as attr_FH'
+ @cntT + '_todos2, SUM(Isnull(FH' + @cntT + ',0)) as ''完成_' + @cntT + ''','
--+'''' + @p_YMT_value + ''' as datte'+ @cntT+',';
SET @CommonStringJoin1 = @CommonStringJoin1 + 'SUM('+@DateCase1+' THEN 1 ELSE 0 END) as IN' + @cntT
+ ',STUFF ((SELECT distinct '','' + ('+@DateCase1+' THEN FlowKey END) @groupcase FOR XML PATH('''')), 1, 1, N'''') as attr_IN' + @cntT + ',' + ' 0 as FH' + @cntT + ', '''' as attr_FH' + @cntT + ',';
SET @CommonStringJoin2 = @CommonStringJoin2 + 'SUM('+@DateCase2+' THEN 1 ELSE 0 END) as IN' + @cntT
+ ',STUFF ((SELECT distinct '','' + ('+@DateCase2+' THEN FlowKey END) @groupcase FOR XML PATH('''')), 1, 1, N'''') as attr_IN' + @cntT + ',' + ' 0 as FH' + @cntT + ', '''' as attr_FH' + @cntT + ',';
SET @CommonStringJoin3 = @CommonStringJoin3 + '0 as IN' + @cntT + ', '''' as attr_IN' + @cntT + ',' + 'SUM('+@DateCase3+' THEN 1 ELSE 0 END) as FH' + @cntT
+ ', STUFF ((SELECT distinct '','' + ('+@DateCase3+' THEN FlowKey END) @groupcase FOR XML PATH('''')), 1, 1, N'''') as attr_FH' + @cntT + ',';
SET @CommonStringJoin4 = @CommonStringJoin4 + '0 as IN' + @cntT + ', '''' as attr_IN' + @cntT + ',' + '0 as FH' + @cntT + ', '''' as attr_FH' + @cntT + ', ';
END
SET @cnt = @cnt + 1;
END;
if(@DataMode in ('ItemLimit','Other1'))
Set @JoinType='Inner'
else
Set @JoinType='Right'
SET @CommonString = @CommonString + +'1 as v13, STUFF ((SELECT distinct '','' + (CASE WHEN att_cntNotFH<>'''' THEN att_cntNotFH END) @groupcase FOR XML PATH('''')), 1, 1, N'''') as attr_NotFH_todos2, SUM(isnull(cntNotFH,0)) as 未完成 ';
SET @CommonStringJoin1 = @CommonStringJoin1 + ' 0 as cntNotFH, '''' as att_cntNotFH ';
SET @CommonStringJoin2 = @CommonStringJoin2 + ' 0 as cntNotFH, '''' as att_cntNotFH ';
SET @CommonStringJoin3 = @CommonStringJoin3 + ' 0 as cntNotFH, '''' as att_cntNotFH ';
SET @CommonStringJoin4 = @CommonStringJoin4 + ' COUNT(Item_NotFH) as cntNotFH, STUFF ((SELECT distinct '','' + FlowKey @groupcase FOR XML PATH('''')), 1, 1, N'''') as attr_cntNotFH ';
IF @p_RptType = 'byItem' -- by 項目
BEGIN
SET @groupcase = ' from #tmpItem p '+@JoinType +' JOIN #tmp_SqlJoin q ON p.ItemName=q.ItemName where q.ItemName=b.ItemName ';
SET @groupcase1 = ' from #tmpPatC_5 p WHERE p.ItemIN<>'''' and p.ItemIN=a.ItemIN ';
SET @groupcase2 = ' from #tmpTodos5_1 p WHERE p.ItemIN<>'''' and p.ItemIN=a.ItemIN ';
SET @groupcase3 = ' from #tmpTodos5_2 p WHERE p.ItemFH<>'''' and p.ItemFH=a.ItemFH ';
SET @groupcase4 = ' from #tmpTodos5_3 p where p.Item_NotFH<>'''' and p.Item_NotFH=a.Item_NotFH ';
SET @SqlJoinString = @SqlJoinString + ' select a.* into #tmp_SqlJoin from ( '
--SELECT ItemIN as ItemName, ' + replace(@CommonStringJoin1, '@groupcase', @groupcase1) + 'FROM #tmpPatC_5 a WHERE ItemIN<>'''' GROUP BY ItemIN '
--+ 'Union all '
+ 'SELECT ItemIN as ItemName, ' + replace(@CommonStringJoin2, '@groupcase', @groupcase2) + 'FROM #tmpTodos5_1 a WHERE ItemIN<>'''' GROUP BY ItemIN '
+ 'Union all '
+ 'SELECT ItemFH as ItemName, ' + replace(@CommonStringJoin3, '@groupcase', @groupcase3) + 'FROM #tmpTodos5_2 a WHERE ItemFH<>'''' GROUP BY ItemFH '
+ 'Union all '
+ 'SELECT Item_NotFH as ItemName, ' + replace(@CommonStringJoin4, '@groupcase', @groupcase4) + 'FROM #tmpTodos5_3 a where Item_NotFH<>'''' GROUP BY Item_NotFH ) a ';
SET @SqlString = @SqlString + @SqlJoinString + ' ;';
SET @SqlString = @SqlString + 'SELECT b.ItemName as 項目, '
+ replace(@CommonString, '@groupcase', @groupcase) + ' ' + 'FROM #tmpItem a '
+@JoinType +' JOIN #tmp_SqlJoin b ON a.ItemName=b.ItemName ' + ' GROUP BY b.ItemName Order by b.ItemName ;' ;
END;
ELSE
BEGIN
IF @p_RptType = 'byDept'
BEGIN
-- by 所別
SET @groupcase = ' from #tmpItem p '+@JoinType +' JOIN #tmp_SqlJoin q ON p.ItemName=q.ItemName where q.ItemName=b.ItemName and q.Emp_DS=b.Emp_DS and q.Emp_Sort=b.Emp_Sort ';
SET @groupcase1 = ' from #tmpPatC_5 p WHERE p.ItemIN<>'''' and p.ItemIN=a.ItemIN and p.Emp_DS=a.Emp_DS and p.Emp_Sort=a.Emp_Sort ';
SET @groupcase2 = ' from #tmpTodos5_1 p WHERE p.ItemIN<>'''' and p.ItemIN=a.ItemIN and p.Emp_DS=a.Emp_DS and p.Emp_Sort=a.Emp_Sort ';
SET @groupcase3 = ' from #tmpTodos5_2 p WHERE p.ItemFH<>'''' and p.ItemFH=a.ItemFH and p.Emp_DS=a.Emp_DS and p.Emp_Sort=a.Emp_Sort ';
SET @groupcase4 = ' from #tmpTodos5_3 p where p.Item_NotFH<>'''' and p.Item_NotFH=a.Item_NotFH and p.Emp_DS=a.Emp_DS and p.Emp_Sort=a.Emp_Sort ';
SET @SqlJoinString = @SqlJoinString + 'select a.* into #tmp_SqlJoin from ( '
--+' SELECT ItemIN as ItemName, Emp_DS, Emp_Sort,' + replace(@CommonStringJoin1, '@groupcase', @groupcase1) + 'FROM #tmpPatC_5 a WHERE ItemIN<>'''' GROUP BY ItemIN, Emp_DS, Emp_Sort '
--+ 'Union all '
+ 'SELECT ItemIN as ItemName, Emp_DS, Emp_Sort,' + replace(@CommonStringJoin2, '@groupcase', @groupcase2) + 'FROM #tmpTodos5_1 a WHERE ItemIN<>'''' GROUP BY ItemIN, Emp_DS, Emp_Sort '
+ 'Union all '
+ 'SELECT ItemFH as ItemName, Emp_DS, Emp_Sort, ' + replace(@CommonStringJoin3, '@groupcase', @groupcase3) + 'FROM #tmpTodos5_2 a WHERE ItemFH<>'''' GROUP BY ItemFH, Emp_DS, Emp_Sort '
+ 'Union all '
+ 'SELECT Item_NotFH as ItemName, Emp_DS, Emp_Sort, ' + replace(@CommonStringJoin4, '@groupcase', @groupcase4) + 'FROM #tmpTodos5_3 a where Item_NotFH<>'''' GROUP BY Item_NotFH, Emp_DS, Emp_Sort ) a ';
SET @SqlString = @SqlString + @SqlJoinString + ' ;';
--SET @SqlString = @SqlString + 'SELECT a.ItemName as attr_ItemName, a.ItemName as 項目, Emp_DS as attr_Emp_DS, ISNULL(Emp_DS,''未指定所別'') as 所別, ' + replace(@CommonString, '@groupcase', @groupcase)
SET @SqlString = @SqlString + 'SELECT b.ItemName as 項目,case when ISNULL(Emp_DS,'''')='''' Then ''未指定所別'' Else Emp_DS END as 所別, '
+ replace(@CommonString, '@groupcase', @groupcase)
+ ' ' + 'FROM #tmpItem a ' +@JoinType +' JOIN #tmp_SqlJoin b ON a.ItemName=b.ItemName ' + ' GROUP BY b.ItemName, Emp_DS ,Emp_Sort
Order by b.ItemName, CASE Emp_DS WHEN ''台北所'' then 10 WHEN ''台中所'' THEN 20 WHEN ''高雄所''
THEN 30 WHEN ''上海所'' THEN 40 WHEN ''深圳所'' THEN 50 WHEN
''武漢所'' THEN 60 WHEN ''蘇州所'' THEN 70 WHEN ''外包人員'' THEN 80 WHEN ''小計'' THEN 999 ELSE 990 END, Emp_Sort ; ' ;
END;
ELSE
BEGIN
IF @p_RptType = 'byDS'
BEGIN
-- by 部別
SET @groupcase = ' from #tmpItem p '+@JoinType +' JOIN #tmp_SqlJoin q ON p.ItemName=q.ItemName where q.ItemName=b.ItemName and q.Emp_Item=b.Emp_Item and q.Emp_DS=b.Emp_DS ';
SET @groupcase1 = ' from #tmpPatC_5 p WHERE p.ItemIN<>'''' and p.ItemIN=a.ItemIN and p.Emp_DS=a.Emp_DS and p.Emp_Item=a.Emp_Item and p.Emp_Itemnum=a.Emp_Itemnum ';
SET @groupcase2 = ' from #tmpTodos5_1 p WHERE p.ItemIN<>'''' and p.ItemIN=a.ItemIN and p.Emp_DS=a.Emp_DS and p.Emp_Item=a.Emp_Item and p.Emp_Itemnum=a.Emp_Itemnum ';
SET @groupcase3 = ' from #tmpTodos5_2 p WHERE p.ItemFH<>'''' and p.ItemFH=a.ItemFH and p.Emp_DS=a.Emp_DS and p.Emp_Item=a.Emp_Item and p.Emp_Itemnum=a.Emp_Itemnum ';
SET @groupcase4 = ' from #tmpTodos5_3 p where p.Item_NotFH<>'''' and p.Item_NotFH=a.Item_NotFH and p.Emp_DS=a.Emp_DS and p.Emp_Item=a.Emp_Item and p.Emp_Itemnum=a.Emp_Itemnum ';
SET @SqlJoinString = @SqlJoinString + 'select a.* into #tmp_SqlJoin from ( '
--+ 'SELECT ItemIN as ItemName, Emp_DS, Emp_Item,Emp_Itemnum , ' + replace(@CommonStringJoin1, '@groupcase', @groupcase1) + 'FROM #tmpPatC_5 a WHERE ItemIN<>'''' GROUP BY ItemIN, Emp_DS, Emp_Item ,Emp_Itemnum '
--+ 'Union all '
+ 'SELECT ItemIN as ItemName, Emp_DS, Emp_Item,Emp_Itemnum , ' + replace(@CommonStringJoin2, '@groupcase', @groupcase2) + 'FROM #tmpTodos5_1 a WHERE ItemIN<>'''' GROUP BY ItemIN, Emp_DS, Emp_Item ,Emp_Itemnum '
+ 'Union all '
+ 'SELECT ItemFH as ItemName,Emp_DS, Emp_Item,Emp_Itemnum , ' + replace(@CommonStringJoin3, '@groupcase', @groupcase3) + 'FROM #tmpTodos5_2 a WHERE ItemFH<>'''' GROUP BY ItemFH, Emp_DS, Emp_Item,Emp_Itemnum '
+ 'Union all '
+ 'SELECT Item_NotFH as ItemName, Emp_DS,Emp_Item,Emp_Itemnum , ' + replace(@CommonStringJoin4, '@groupcase', @groupcase4) + 'FROM #tmpTodos5_3 a where Item_NotFH<>'''' GROUP BY Item_NotFH, Emp_DS, Emp_Item,Emp_Itemnum ) a ';
SET @SqlString = @SqlString + @SqlJoinString + ' ;';
SET @SqlString = @SqlString + 'SELECT b.ItemName as 項目,case when ISNULL(Emp_DS,'''')='''' Then ''未指定所別'' Else Emp_DS END as 所別,ISNULL(Emp_Item,'''') as 部別, '
+ replace(@CommonString, '@groupcase', @groupcase) + ' ' + 'FROM #tmpItem a ' + 'RIGHT JOIN #tmp_SqlJoin b ON a.ItemName=b.ItemName ' + ' GROUP BY b.ItemName, Emp_Item, Emp_DS
Order by b.ItemName, CASE Emp_DS WHEN ''台北所'' then 10 WHEN ''台中所'' THEN 20 WHEN ''高雄所''
THEN 30 WHEN ''上海所'' THEN 40 WHEN ''深圳所'' THEN 50 WHEN
''武漢所'' THEN 60 WHEN ''蘇州所'' THEN 70 WHEN ''外包人員'' THEN 80 WHEN ''小計'' THEN 999 ELSE 990 END ; ';
END;
END;
BEGIN
IF @p_RptType = 'byPeople'
BEGIN
-- by 部別
SET @groupcase = ' from #tmpItem p '+@JoinType +' JOIN #tmp_SqlJoin q ON p.ItemName=q.ItemName where q.ItemName=b.ItemName and q.Emp_Item=b.Emp_Item and q.Emp_DS=b.Emp_DS and q.Emp_Name=b.Emp_Name and q.Client_CompanyName=b.Client_CompanyName and q.office=b.office and q.Emp_DeptName=b.Emp_DeptName';
SET @groupcase1 = ' from #tmpPatC_5 p WHERE p.ItemIN<>'''' and p.ItemIN=a.ItemIN and p.Emp_DS=a.Emp_DS and p.Emp_Item=a.Emp_Item and p.Emp_Itemnum=a.Emp_Itemnum and p.Emp_Name=a.Emp_Name and p.Client_CompanyName=a.Client_CompanyName and p.office=a.office and p.Emp_DeptName=a.Emp_DeptName';
SET @groupcase2 = ' from #tmpTodos5_1 p WHERE p.ItemIN<>'''' and p.ItemIN=a.ItemIN and p.Emp_DS=a.Emp_DS and p.Emp_Item=a.Emp_Item and p.Emp_Itemnum=a.Emp_Itemnum and p.Emp_Name=a.Emp_Name and p.Client_CompanyName=a.Client_CompanyName and p.office=a.office and p.Emp_DeptName=a.Emp_DeptName';
SET @groupcase3 = ' from #tmpTodos5_2 p WHERE p.ItemFH<>'''' and p.ItemFH=a.ItemFH and p.Emp_DS=a.Emp_DS and p.Emp_Item=a.Emp_Item and p.Emp_Itemnum=a.Emp_Itemnum and p.Emp_Name=a.Emp_Name and p.Client_CompanyName=a.Client_CompanyName and p.office=a.office and p.Emp_DeptName=a.Emp_DeptName';
SET @groupcase4 = ' from #tmpTodos5_3 p where p.Item_NotFH<>'''' and p.Item_NotFH=a.Item_NotFH and p.Emp_DS=a.Emp_DS and p.Emp_Item=a.Emp_Item and p.Emp_Itemnum=a.Emp_Itemnum and p.Emp_Name=a.Emp_Name and p.Client_CompanyName=a.Client_CompanyName and p.office=a.office and p.Emp_DeptName=a.Emp_DeptName';
SET @SqlJoinString = @SqlJoinString + 'select a.* into #tmp_SqlJoin from ( '
--+'SELECT ItemIN as ItemName , Emp_Name,Emp_DS, Emp_Item,Emp_Itemnum , ' + replace(@CommonStringJoin1, '@groupcase', @groupcase1) + 'FROM #tmpPatC_5 a WHERE ItemIN<>'''' GROUP BY ItemIN, Emp_DS, Emp_Item ,Emp_Itemnum,Emp_Name '
--+ 'Union all '
+ 'SELECT ItemIN as ItemName , Emp_Name, Emp_DS, Emp_Item,Emp_Itemnum,Client_CompanyName,Client_Group,office,Emp_DeptName , ' + replace(@CommonStringJoin2, '@groupcase', @groupcase2) + 'FROM #tmpTodos5_1 a WHERE ItemIN<>'''' GROUP BY ItemIN, Emp_DS, Emp_Item ,Emp_Itemnum,Emp_Name,Client_CompanyName,Client_Group,office,Emp_DeptName '
+ 'Union all '
+ 'SELECT ItemFH as ItemName, Emp_Name,Emp_DS, Emp_Item,Emp_Itemnum,Client_CompanyName,Client_Group,office,Emp_DeptName , ' + replace(@CommonStringJoin3, '@groupcase', @groupcase3) + 'FROM #tmpTodos5_2 a WHERE ItemFH<>'''' GROUP BY ItemFH, Emp_DS, Emp_Item,Emp_Itemnum,Emp_Name ,Client_CompanyName,Client_Group,office,Emp_DeptName '
+ 'Union all '
+ 'SELECT Item_NotFH as ItemName, Emp_Name, Emp_DS,Emp_Item,Emp_Itemnum ,Client_CompanyName,Client_Group,office,Emp_DeptName, ' + replace(@CommonStringJoin4, '@groupcase', @groupcase4) + 'FROM #tmpTodos5_3 a where Item_NotFH<>'''' GROUP BY Item_NotFH, Emp_DS, Emp_Item,Emp_Itemnum,Emp_Name,Client_CompanyName,Client_Group,office ,Emp_DeptName ) a ';
SET @SqlString = @SqlString + @SqlJoinString + ' ;';
SET @SqlString = @SqlString + 'SELECT b.ItemName as 項目, case when ISNULL(Emp_DS,'''')='''' Then ''未指定所別'' Else Emp_DS END as 所別,Emp_DeptName as 部門, ISNULL(Emp_Item,'''') as 部別,b.Emp_Name as 承辦人員, '
+ replace(@CommonString, '@groupcase', @groupcase) + ' ' + 'FROM #tmpItem a ' +@JoinType +' JOIN #tmp_SqlJoin b ON a.ItemName=b.ItemName ' + ' GROUP BY b.Emp_Name , b.ItemName, Emp_Item, Emp_DS,Client_CompanyName,Client_Group,office,Emp_DeptName
Order by b.ItemName ,b.Emp_Name , CASE Emp_DS WHEN ''台北所'' then 10 WHEN ''台中所'' THEN 20 WHEN ''高雄所''
THEN 30 WHEN ''上海所'' THEN 40 WHEN ''深圳所'' THEN 50 WHEN
''武漢所'' THEN 60 WHEN ''蘇州所'' THEN 70 WHEN ''外包人員'' THEN 80 WHEN ''小計'' THEN 999 ELSE 990 END ; ';
END;
END;
BEGIN
IF @p_RptType = 'byPeople_board_todos'
BEGIN
-- by 部別
SET @groupcase = ' from #tmpItem p '+@JoinType +' JOIN #tmp_SqlJoin q ON p.ItemName=q.ItemName where q.ItemName=b.ItemName and q.Emp_Item=b.Emp_Item and q.Emp_DS=b.Emp_DS and q.Emp_Name=b.Emp_Name and q.Client_CompanyName=b.Client_CompanyName and q.office=b.office and q.Emp_DeptName=b.Emp_DeptName';
SET @groupcase1 = ' from #tmpPatC_5 p WHERE p.ItemIN<>'''' and p.ItemIN=a.ItemIN and p.Emp_DS=a.Emp_DS and p.Emp_Item=a.Emp_Item and p.Emp_Itemnum=a.Emp_Itemnum and p.Emp_Name=a.Emp_Name and p.Client_CompanyName=a.Client_CompanyName and p.office=a.office and p.Emp_DeptName=a.Emp_DeptName';
SET @groupcase2 = ' from #tmpTodos5_1 p WHERE p.ItemIN<>'''' and p.ItemIN=a.ItemIN and p.Emp_DS=a.Emp_DS and p.Emp_Item=a.Emp_Item and p.Emp_Itemnum=a.Emp_Itemnum and p.Emp_Name=a.Emp_Name and p.Client_CompanyName=a.Client_CompanyName and p.office=a.office and p.Emp_DeptName=a.Emp_DeptName';
SET @groupcase3 = ' from #tmpTodos5_2 p WHERE p.ItemFH<>'''' and p.ItemFH=a.ItemFH and p.Emp_DS=a.Emp_DS and p.Emp_Item=a.Emp_Item and p.Emp_Itemnum=a.Emp_Itemnum and p.Emp_Name=a.Emp_Name and p.Client_CompanyName=a.Client_CompanyName and p.office=a.office and p.Emp_DeptName=a.Emp_DeptName';
SET @groupcase4 = ' from #tmpTodos5_3 p where p.Item_NotFH<>'''' and p.Item_NotFH=a.Item_NotFH and p.Emp_DS=a.Emp_DS and p.Emp_Item=a.Emp_Item and p.Emp_Itemnum=a.Emp_Itemnum and p.Emp_Name=a.Emp_Name and p.Client_CompanyName=a.Client_CompanyName and p.office=a.office and p.Emp_DeptName=a.Emp_DeptName';
SET @SqlJoinString = @SqlJoinString + 'select a.* into #tmp_SqlJoin from ( '
--+ 'SELECT ItemIN as ItemName , Emp_Name,Emp_DS, Emp_Item,Emp_Itemnum ,Client_CompanyName,Client_Group,office,Emp_DeptName, ' + replace(@CommonStringJoin1, '@groupcase', @groupcase1) + 'FROM #tmpPatC_5 a WHERE ItemIN<>'''' GROUP BY ItemIN, Emp_DS, Emp_Item ,Emp_Itemnum,Emp_Name,Client_CompanyName,Client_Group,office ,Emp_DeptName '
--+ 'Union all '
+ 'SELECT ItemIN as ItemName , Emp_Name, Emp_DS, Emp_Item,Emp_Itemnum,Client_CompanyName,Client_Group,office,Emp_DeptName , ' + replace(@CommonStringJoin2, '@groupcase', @groupcase2) + 'FROM #tmpTodos5_1 a WHERE ItemIN<>'''' GROUP BY ItemIN, Emp_DS, Emp_Item ,Emp_Itemnum,Emp_Name,Client_CompanyName,Client_Group,office,Emp_DeptName '
+ 'Union all '
+ 'SELECT ItemFH as ItemName, Emp_Name,Emp_DS, Emp_Item,Emp_Itemnum,Client_CompanyName,Client_Group,office,Emp_DeptName , ' + replace(@CommonStringJoin3, '@groupcase', @groupcase3) + 'FROM #tmpTodos5_2 a WHERE ItemFH<>'''' GROUP BY ItemFH, Emp_DS, Emp_Item,Emp_Itemnum,Emp_Name ,Client_CompanyName,Client_Group,office,Emp_DeptName '
+ 'Union all '
+ 'SELECT Item_NotFH as ItemName, Emp_Name, Emp_DS,Emp_Item,Emp_Itemnum ,Client_CompanyName,Client_Group,office,Emp_DeptName, ' + replace(@CommonStringJoin4, '@groupcase', @groupcase4) + 'FROM #tmpTodos5_3 a where Item_NotFH<>'''' GROUP BY Item_NotFH, Emp_DS, Emp_Item,Emp_Itemnum,Emp_Name,Client_CompanyName,Client_Group,office ,Emp_DeptName ) a ';
SET @SqlString = @SqlString + @SqlJoinString + ' ;';
SET @SqlString = @SqlString + 'SELECT b.ItemName as attr_ItemName, b.ItemName as 項目,Emp_DS as attr_Emp_DS, case when ISNULL(Emp_DS,'''')='''' Then ''未指定所別'' Else Emp_DS END as 所別,Emp_DeptName as attr_Emp_DeptName, Emp_Item as attr_Emp_Item, ISNULL(Emp_Item,'''') as 部別,b.Emp_Name as 承辦人員,Client_CompanyName as attr_Client_CompanyName,Client_Group as attr_Client_Group,office as attr_office, '
+ replace(@CommonString, '@groupcase', @groupcase) + ' ' + 'FROM #tmpItem a ' +@JoinType +' JOIN #tmp_SqlJoin b ON a.ItemName=b.ItemName ' + ' GROUP BY b.Emp_Name , b.ItemName, Emp_Item, Emp_DS,Client_CompanyName,Client_Group,office,Emp_DeptName
Order by b.ItemName ,b.Emp_Name , CASE Emp_DS WHEN ''台北所'' then 10 WHEN ''台中所'' THEN 20 WHEN ''高雄所''
THEN 30 WHEN ''上海所'' THEN 40 WHEN ''深圳所'' THEN 50 WHEN
''武漢所'' THEN 60 WHEN ''蘇州所'' THEN 70 WHEN ''外包人員'' THEN 80 WHEN ''小計'' THEN 999 ELSE 990 END ; ';
--WAITFOR DELAY '00:05:00';
END;
END;
END;
select * from #tmpTodos5_1
where isnull(AssignedTo_userid,'')=''
select * from #tmpTodos5_2
where isnull(AssignedTo_userid,'')=''
select * from #tmpTodos5_3
where isnull(AssignedTo_userid,'')=''
select * from esn_todos a
where sn in(741666,708943,555401,742262,742265,742268)
print('9:'+convert(varchar(20),getdate(),126))
--select cast(@SqlJoinString as varchar(max)); --debug query
Exec (@SqlJoinString+' ; select * from #tmp_SqlJoin ');
--Exec (@SqlJoinString+' ; ');
SELECT CAST(@SqlString AS VARCHAR(MAX)); --debug query
EXEC (@SqlString+' ; IF OBJECT_ID(''tempdb..#tmp_SqlJoin'', ''U'') IS NOT NULL DROP TABLE #tmp_SqlJoin');
print('10:'+convert(varchar(20),getdate(),126))
\ No newline at end of file
Balter PROCEDURE [dbo].[rpt_CustCaseTot_Week] ( Balter PROCEDURE [dbo].[rpt_CustCaseTot_Week] (
 declare
@p_YM_F varchar(50)='2020-03'
,@p_YM_T varchar(50)='2020-03'
,@p_RptType varchar(50)='byds' -- byItem ,bydept,byds
,@p_CustName varchar(50)=''
Declare @p_EmpItem varchar(1),@Emp_ItemNo varchar(50),@p_StartDate datetime,@p_EndDate datetime,@p_StartWeek datetime ,@p_StartWeekt datetime ;
Declare @p_EndDateWeek varchar(10),@i tinyint=1,@p_YMT_sql varchar(max)='';
declare @Sweekend int,@Eweekend int,@pointday int,@countWeek int=0
IF OBJECT_ID('tempdb..#tmpTodosAll_1', 'U') IS NOT NULL DROP TABLE #tmpTodosAll_1
IF OBJECT_ID('tempdb..#tmpPatC_5All_1', 'U') IS NOT NULL DROP TABLE #tmpPatC_5All_1
IF OBJECT_ID('tempdb..#tmpTodosAll', 'U') IS NOT NULL DROP TABLE #tmpTodosAll
IF OBJECT_ID('tempdb..#p_YMT', 'U') IS NOT NULL DROP TABLE #p_YMT
IF OBJECT_ID('tempdb..#tb_Split2', 'U') IS NOT NULL DROP TABLE #tb_Split2
IF OBJECT_ID('tempdb..#tmpItem', 'U') IS NOT NULL DROP TABLE #tmpItem
IF OBJECT_ID('tempdb..#tmpEmp', 'U') IS NOT NULL DROP TABLE #tmpEmp
IF OBJECT_ID('tempdb..#tmpPatC_5All', 'U') IS NOT NULL DROP TABLE #tmpPatC_5All
IF OBJECT_ID('tempdb..#tmpTodosAll_3', 'U') IS NOT NULL DROP TABLE #tmpTodosAll_3
IF OBJECT_ID('tempdb..#tmpPatC_5', 'U') IS NOT NULL DROP TABLE #tmpPatC_5
IF OBJECT_ID('tempdb..#tmpTodos5TDList', 'U') IS NOT NULL DROP TABLE #tmpTodos5TDList
IF OBJECT_ID('tempdb..#tmpTodos5_1All', 'U') IS NOT NULL DROP TABLE #tmpTodos5_1All
IF OBJECT_ID('tempdb..#tmpTodos5_1', 'U') IS NOT NULL DROP TABLE #tmpTodos5_1
IF OBJECT_ID('tempdb..#tmpTodos5_2All', 'U') IS NOT NULL DROP TABLE #tmpTodos5_2All
IF OBJECT_ID('tempdb..#tmpTodos5_2', 'U') IS NOT NULL DROP TABLE #tmpTodos5_2
IF OBJECT_ID('tempdb..#tmpTodos5_3All', 'U') IS NOT NULL DROP TABLE #tmpTodos5_3All
IF OBJECT_ID('tempdb..#tmpTodos5_3', 'U') IS NOT NULL DROP TABLE #tmpTodos5_3
--初始星期設定
set @p_StartDate =Convert(datetime,@p_YM_F+'-01',126) ;
set @p_EndDate =DATEADD(day,-1,DATEADD(month, 1,cast(@p_YM_T+'-01' as datetime))) ;
Set @Sweekend=DATEPART(WEEKDAY,@p_StartDate)
Set @Eweekend=DATEPART(WEEKDAY,@p_EndDate)
Set @pointday=abs(@@DATEFIRST-7+2) --取得目標weekend day
select @p_StartWeek=case when @Sweekend>@pointday Then DATEADD(day,-(@Sweekend-@pointday)+7,@p_StartDate)
when @Sweekend<@pointday Then DATEADD(day,(@pointday-@Sweekend),@p_StartDate)
else @p_StartDate End
IF OBJECT_ID('tempdb..#p_YMT', 'U') IS NOT NULL DROP TABLE #p_YMT
select 0 as id ,Convert(varchar(10),@p_EndDate,126) as value into #p_YMT
set @p_StartWeekt=@p_StartWeek
WHILE datediff(day,@p_StartWeekt,@p_EndDate) >=0
BEGIN
Set @p_YMT_sql=@p_YMT_sql+'('+cast(@i as varchar(2))+',Convert(varchar(10),DATEADD(WEEK,'+cast((@i-1) as varchar(2))+','''+Convert(varchar(10),@p_StartWeek,126)+''') ,126)),'
Set @i= @i+1
Set @countWeek= @countWeek+1
Set @p_StartWeekt=DATEADD(WEEK,1,@p_StartWeekt)
END
set @p_YMT_sql=left(@p_YMT_sql,len(@p_YMT_sql)-1);
exec ('insert into #p_YMT (id,Value) values ' + @p_YMT_sql)
Set @p_EndDateWeek=Convert(varchar(10),@p_StartWeekt,126)
select @p_StartDate,@p_EndDate
--/*
-- 取得「客戶名稱」的 recordset
SELECT ID as ItemNo,replace(replace(value, char(13),''), char(10),'') as ItemDesc into #tb_Split2 FROM [ufn_split](@p_CustName, ';') ;
-- 取得RPT項目List
SELECT * into #tmpItem FROM (
SELECT 1 as ItemNo, 'CN 查新' as ItemName union
SELECT 2, 'CN 新申請' union SELECT 3, 'PCT 新申請' union
SELECT 4, 'US 新申請' union SELECT 5, 'KR 新申請' union SELECT 6, 'JP 新申請' union SELECT 7, 'EA 新申請' union SELECT 8, 'EU 新申請' union
SELECT 9, 'IN 新申請' union SELECT 10, 'TW 新申請' union SELECT 11, 'DE 新申請' union SELECT 12, 'GB 新申請' union SELECT 13, 'RU 新申請' union
SELECT 41, 'CN OA' union SELECT 42, 'TW OA' union SELECT 43, 'US OA' union SELECT 45, 'KR OA' union SELECT 46, 'JP OA' union
SELECT 47, 'EA OA' union SELECT 48, 'DE OA' union SELECT 49, 'EU OA' union SELECT 50, 'GB OA' union SELECT 51, 'RU OA' union
SELECT 52, 'RCE' union SELECT 53, 'IDS' union SELECT 54, '繳費領證'
union SELECT 61 as ItemNo, 'CN OA-核駁' as ItemName union SELECT 62, 'TW OA-核駁' union SELECT 63, 'US OA-核駁' union SELECT 65, 'KR OA-核駁'
union SELECT 66, 'JP OA-核駁' union SELECT 67, 'EA OA-核駁' union SELECT 68, 'DE OA-核駁' union SELECT 69, 'EU OA-核駁' union SELECT 70, 'GB OA-核駁' union SELECT 71, 'RU OA-核駁'
union SELECT 72 as ItemNo, 'CN-核駁' as ItemName union SELECT 73, 'TW-核駁' union SELECT 74, 'US-核駁' union SELECT 75, 'KR-核駁'
union SELECT 76, 'JP-核駁' union SELECT 77, 'EA-核駁' union SELECT 78, 'DE-核駁' union SELECT 79, 'EU-核駁' union SELECT 80, 'GB-核駁' union SELECT 81, 'RU-核駁'
) a ;
-- 第二部, 客戶名稱不會只有「华星」, 第一部, 客戶名稱只會有「华星」
if (SELECT COUNT(*) FROM #tb_Split2 where ItemDesc like '%华星%' or ItemDesc like '%華星%' )>0
delete from #tmpItem where ItemNo > 60
print('1:'+convert(varchar(20),getdate(),126))
-- 員工部別 (因該員工會多部別, 放在Emp_DS2裡, 所以要distinct )
SELECT distinct a.user_name as Emp_ID, cn_name as Emp_Name, isnull(a.Emp_DS,'') as Emp_DS, isnull(a.Emp_DSNum,'') as Emp_DSNum, isnull(a.Emp_Item,'') as Emp_Item, isnull(a.Emp_ItemNum,'') as Emp_ItemNum, 0 as Emp_Sort ,a.user_id
--, emp_N1, Emp_N2, Emp_N3
into #tmpEmp
FROM [dbo].[evw_Employee] a
SELECT a.country_id,a.customer_name,a.PatentType,a.charge_date,a.case_volume,a.PatentType_Name,a.Case_id,a.case_status_id,a.business_type_id
--,(select value from [ufn_split](a.case_volume,'-') a where a.ID=1) as CaseNo_l
,(select value from [ufn_split](a.case_volume,'-') a where a.ID=2) as CaseNo_r
into #tmpPatC_5All_1 FROM [dbo].[evw_p_case_info] a
inner join #tb_Split2 s on a.customer_name like s.ItemDesc +'%'
WHERE a.charge_date between @p_StartDate AND @p_EndDate -- 立案日
AND a.PatentType IN ('PN01', 'PN02', 'PN03','PN07') -- 案件
-- 1.取得: 該案件之 查新, 新申請的「新進」資料
SELECT CASE WHEN LEFT(a.CaseNo_r,1) in('M','CN') THEN 'CN 查新' END as ItemIN1, -- CN 查新(未完成) -->1.客戶名稱為華星, 2.案件編號有-M, 3.管制事項:完成初稿, 4.完成日為空白, 5.事務所到期日落在該月份
CASE WHEN a.country_id='CN' AND a.PatentType IN ('PN01', 'PN02', 'PN03') AND ics.case_status_zh_tw='撰稿中' THEN 'CN 新申請' END as ItemIN2, -- 2.CN 新申請(新進) -->1.國家為CN, 2.案件類別: PN01, PN02, PN03, 3.立案日落在該月份, 4.案件狀態:撰稿(RS01)
CASE WHEN a.country_id='WO' AND a.PatentType IN ('PN01','PN07') AND ics.case_status_zh_tw='撰稿中' THEN 'PCT 新申請' END as ItemIN3, -- 3.PCT 新申請(新進) -->1.國家為PCT, 2.案件類別: PN01, PN07, 3.立案日落在該月份, 4.案件狀態:撰稿(RS01)
CASE WHEN a.country_id NOT IN ('CN','WO' ) AND a.PatentType IN ('PN01') AND b2.business_type_code='PI' AND ics.case_status_zh_tw='撰稿中' THEN a.country_id+' 新申請' END as ItemIN4, -- 4.XX 新申請(新進) --> 1.國家為XX, 2.案件類別: PN01 , 3.是 PCT國家階段, 4.立案日落在該月份, 5.案件狀態:撰稿(RS01)
Convert(varchar(10),a.charge_date,126) as YM_cr,a.case_volume as FlowKey,
a.customer_name as Client_CompanyName, a.country_id, a.PatentType, a.PatentType_Name, ics.case_status_code as Status,
ics.case_status_zh_tw as Status_Names --, InCharge, InCharge_Name
, e.Emp_ID, e.Emp_Name, e.Emp_DS, e.Emp_DSNum, e.Emp_Item, e.Emp_ItemNum,e.Emp_Sort
into #tmpPatC_5All
FROM #tmpPatC_5All_1 a
--inner join #tb_Split2 s on a.customer_name like '%'+s.ItemDesc +'%'
Inner JOIN [evw_p_proc_pic_list] ppl on ppl.Case_id=a.Case_id --案件流程人员
Inner JOIN #tmpEmp e on e.Emp_ID=ppl.pic_userID
LEFT JOIN i_case_status ics on ics.case_status_id=a.case_status_id
LEFT JOIN i_business_type b2 on b2.business_type_id=a.business_type_id
print('2:'+convert(varchar(20),getdate(),126))
--select * from #tmpTodosAll
--select * from #tmpPatC_5All
select @p_StartDate,@p_EndDate
select * into #tmpPatC_5 from (
select CAST(ItemIN1 as varCHAR(20)) as ItemIN, a.* from #tmpPatC_5All a where ItemIN1<>''
union
select ItemIN2 as ItemIN, a.* from #tmpPatC_5All a where ItemIN2<>''
union
select ItemIN3 as ItemIN, a.* from #tmpPatC_5All a where ItemIN3<>''
union
select ItemIN4 as ItemIN, a.* from #tmpPatC_5All a where ItemIN4<>''
) a
;
-- 2.取得: ToDos
print('3:'+convert(varchar(20),getdate(),126))
select sn,a.proc_id,CaseType,CaseType_Name,CaseNo,TaskDescription,StartDate2,AttorneyDueDate,FinishedDate,AssignedTo_userid,
b.Emp_ID as AssignedTo,b.Emp_Name as AssignedTo_Name,Points,ExchangeRate,Matter,Matter_Name,PatentType,PatentType_Name,ToDosStatus,ToDosStatus_Name,a.case_id
,isnull(c.review_stage,'') as review_stage
into #tmpTodosAll_1
from evw_esn_todos a
inner join #tmpEmp b on a.AssignedTo_userid=b.user_id
inner join p_proc_info c on a.proc_id=c.proc_id
where
((a.StartDate2 between @p_StartDate AND @p_EndDate) OR -- 起始日
(a.FinishedDate between @p_StartDate AND @p_EndDate) OR -- 完成日
(a.AttorneyDueDate between @p_StartDate AND @p_EndDate))
AND a.PatentType IN ('PN01', 'PN02', 'PN03','PN07')
print('3-2:'+convert(varchar(20),getdate(),126))
SELECT a.* , case when ibt.business_type_code='PN' THEN 'Y' END as PctNationalPhase,p.country_id as office,Cast(a.sn as varchar(20)) as Flowkey
,p.customer_name as Client_CompanyName
,(select value from [ufn_split](a.CaseNo,'-') a where a.ID=2) as CaseNo_r
,e.Emp_ID, e.Emp_Name,e.Emp_DSNum, e.Emp_Item, e.Emp_ItemNum, 0 as Emp_Sort ,e.Emp_DS
into #tmpTodosAll
FROM #tmpTodosAll_1 a
inner join [evw_p_case_info] p on p.case_id=a.case_id
--left join p_case_info p on p.case_id=a.case_id
--left join c_customer c on p.customer_id=c.customer_id
inner join #tb_Split2 s on p.customer_name like s.ItemDesc +'%'
--left join i_case_status ics on ics.case_status_id=p.case_status_
left join i_business_type ibt on ibt.business_type_id=p.business_type_id
left join #tmpEmp e on a.AssignedTo_userid=e.user_id
;
print('4:'+convert(varchar(20),getdate(),126))
--return
-- 3.取得: OA 的「新進」資料
SELECT CASE WHEN a.Office='CN' AND (CHARINDEX('審查意見',a.TaskDescription)>0 OR CHARINDEX('审查意见',a.TaskDescription)>0) THEN 'CN OA' END as ItemIN1, -- CN OA(新進) -->1.國家為CN , 2.抓管制事項:审查意见/驳回, 3.起始日落在該月份, 4.案件狀態:答辯中-撰稿(RS05.1)
CASE WHEN a.Office='TW' AND review_stage<>'' AND (CHARINDEX('申復',a.TaskDescription)>0 OR CHARINDEX('申复',a.TaskDescription)>0 OR CHARINDEX('提出再審',a.TaskDescription)>0) THEN 'TW OA' END as ItemIN2, -- TW OA(新進) -->1.國家為TW, 2.抓管制事項:申復/提出再審 3.起始日落在該月份, 4.案件狀態:答辯中(RS05)
CASE WHEN a.Office='US' AND review_stage<>'' AND (CHARINDEX('response',LOWER(a.TaskDescription))>0 OR CHARINDEX('election',LOWER(a.TaskDescription))>0 OR CHARINDEX('advisory action',LOWER(a.TaskDescription))>0 OR CHARINDEX('parte quayle',LOWER(a.TaskDescription))>0) THEN 'US OA' END as ItemIN3, -- US OA(新進) -->1.國家為US, 2.抓管制事項:Respnose/Election/Advisory Action/parte quayle 3.起始日落在該月份, 4.案件狀態:答辯中(RS05)
CASE WHEN a.Office='KR' AND review_stage<>'' AND (CHARINDEX('response',LOWER(a.TaskDescription))>0 OR CHARINDEX('Re-examination',LOWER(a.TaskDescription))>0 OR CHARINDEX('appeal',LOWER(a.TaskDescription))>0 OR CHARINDEX('final rejection',LOWER(a.TaskDescription))>0) THEN 'KR OA' END as ItemIN4, -- KR OA(新進) -->1.國家為KR, 2.抓管制事項:Response/Request for Re-examination/Appeal/final rejection 3.起始日落在該月份, 4.案件狀態:答辯中(RS05)
CASE WHEN a.Office='JP' AND review_stage<>'' AND review_stage<>'' AND (CHARINDEX('response',LOWER(a.TaskDescription))>0 OR CHARINDEX('appeal',LOWER(a.TaskDescription))>0 OR CHARINDEX('行政訴訟',a.TaskDescription)>0 ) THEN 'JP OA' END as ItemIN5, -- JP OA(新進) -->1.國家為JP, 2.抓管制事項:Response/Appeal/行政訴訟 3.起始日落在該月份, 4.案件狀態:答辯中(RS05)
CASE WHEN a.Office NOT IN ('CN', 'TW', 'US','KR', 'JP') AND review_stage<>'' AND CHARINDEX('response',LOWER(a.TaskDescription))>0 THEN a.Office+' OA' END as ItemIN6, -- XX OA(新進) -->1.國家為XX, 2.抓管制事項:Response 3.起始日落在該月份, 4.案件狀態:答辯中(RS05)
CASE WHEN a.TaskDescription='RCE' THEN 'RCE' END as ItemIN7, -- RCE(新進) -->1.不分國家, 2.抓管制事項:RCE, 3.起始日落在該月份
CASE WHEN a.TaskDescription='IDS' THEN 'IDS' END as ItemIN8, -- IDS(新進) -->1.不分國家, 2.抓管制事項:IDS, 3.起始日落在該月份
CASE WHEN (CHARINDEX('繳費領證',a.TaskDescription)>0 OR CHARINDEX('缴纳领证',a.TaskDescription)>0) THEN '繳費領證' END as ItemIN9, -- 繳費領證(新進) -->1.不分國家, 2.抓管制事項:繳費領證, 3.起始日落在該月份
CASE WHEN ( CHARINDEX('駁回',a.TaskDescription)>0 OR CHARINDEX('驳回',a.TaskDescription)>0) THEN a.Office+'-核駁' END as ItemIN10,
Convert(varchar(10),a.StartDate2,126) as YM_ST, a.*, getdate() as sysDate
into #tmpTodos5_1All
FROM #tmpTodosAll a
WHERE a.StartDate2 between @p_StartDate AND @p_EndDate
;
select CAST(ItemIN1 as varCHAR(20)) as ItemIN, a.* into #tmpTodos5_1 from #tmpTodos5_1All a where ItemIN1<>'';
insert #tmpTodos5_1
select ItemIN2 as ItemIN, a.* from #tmpTodos5_1All a where ItemIN2<>''
union select ItemIN3 as ItemIN, a.* from #tmpTodos5_1All a where ItemIN3<>'' union select ItemIN4 as ItemIN, a.* from #tmpTodos5_1All a where ItemIN4<>''
union select ItemIN5 as ItemIN, a.* from #tmpTodos5_1All a where ItemIN5<>'' union select ItemIN6 as ItemIN, a.* from #tmpTodos5_1All a where ItemIN6<>''
union select ItemIN7 as ItemIN, a.* from #tmpTodos5_1All a where ItemIN7<>'' union select ItemIN8 as ItemIN, a.* from #tmpTodos5_1All a where ItemIN8<>''
union select ItemIN9 as ItemIN, a.* from #tmpTodos5_1All a where ItemIN9<>'' union select ItemIN10 as ItemIN, a.* from #tmpTodos5_1All a where ItemIN10<>'';
-- ALTER TABLE tmpTodos5_1 ADD INDEX(`CaseNo`);
print('5:'+convert(varchar(20),getdate(),126))
-- 4.取得: OA 的「「完成」資料
SELECT CASE WHEN LEFT(a.CaseNo_r,1) in('M','CN') AND (CHARINDEX('提出報告',a.TaskDescription)>0 OR CHARINDEX('提出报告',a.TaskDescription)>0) THEN 'CN 查新' END as ItemFH1, -- CN 查新(完成) -->1.案件編號有-M, 3.案件狀態:結案(RS11), 4.管制事項:提出報告, 5.完成日落在該月份
CASE WHEN a.Office='CN' AND review_stage='' AND a.PatentType IN ('PN01', 'PN02', 'PN03') AND a.TaskDescription='完成初稿' THEN 'CN 新申請' END as ItemFH2, -- CN 新申請(完成) -->1.國家為CN, 2.案件類別: PN01, PN02, PN03, 3.管制事項:完成初稿, 4.完成日落在該月份, 5. 案件程序:中國發明申請(CNP01)
CASE WHEN a.Office='WO' AND review_stage='' AND a.PatentType IN ('PN01','PN07') AND a.TaskDescription='完成初稿' THEN 'PCT 新申請' END as ItemFH3, -- PCT 新申請(完成)-->1.國家為PCT, 2.案件類別: PN01, PN07, 3.管制事項:完成初稿, 4.完成日落在該月份, 5. 案件程序:PCT國際申請(WOP01)
CASE WHEN a.Office='TW' AND review_stage='' AND a.PatentType='PN01' AND a.PctNationalPhase='Y' AND a.TaskDescription='完成初稿' THEN 'TW 新申請' END as ItemFH5, -- TW 新申請(完成)-->1.國家為TW, 2.案件類別: PN01, PN07, 3.管制事項:完成初稿, 4.完成日落在該月份, 5. 案件程序:台灣發明申請(TWP01)
CASE WHEN a.Office NOT IN ('CN', 'WO','TW') AND review_stage='' AND (LEFT(a.CaseNo_r,1)<>'M')
AND a.PatentType='PN01' AND a.PctNationalPhase='Y' AND a.TaskDescription='完成初稿' THEN a.Office+' 新申請' END as ItemFH6, -- XX 新申請(完成) -->1.國家為XX, 2.案件類別: PN01 , 3.是 PCT國家階段, 4.管制事項:完成初稿, 5.完成日落在該月份, 6. 案件程序:專利申請(P01)
CASE WHEN Office='CN' AND review_stage<>'' AND CHARINDEX('完成初稿',a.TaskDescription)>0 THEN 'CN OA' END as ItemFH7, -- CN OA(完成) -->1.國家為CN, 2.抓管制事項:完成初稿(都含), 3.完成日落在該月份, 4.案件程序: 中國發明審查(CNP02)
CASE WHEN Office='TW' AND review_stage<>'' AND a.TaskDescription='完成初稿' THEN 'TW OA' END as ItemFH8, -- TW OA(完成) -->1.國家為TW, 2.抓管制事項:完成初稿(只有這4個字), 4.完成日落在該月份, 4.案件程序: 台灣發明審查(TWP02)
CASE WHEN Office='US' AND review_stage<>'' AND a.TaskDescription='完成初稿' THEN 'US OA' END as ItemFH9, -- US OA(完成) -->1.國家為US, 2.抓管制事項:完成初稿(只有這4個字), 4.完成日落在該月份, 4.案件程序: 美國Utility審查(USP02)
CASE WHEN Office NOT IN ('CN', 'TW','US') AND review_stage<>'' AND a.TaskDescription='完成初稿' THEN a.Office+' OA' END as ItemFH10, -- XX OA(完成) -->1.國家為XX, 2.抓管制事項:完成初稿(只有這4個字), 4.完成日落在該月份, 4.案件程序: 專利審查(P02)
CASE WHEN Office='CN' AND CHARINDEX('核駁報導',a.TaskDescription)>0 THEN 'CN-核駁' END as ItemFH71, -- CN OA-核駁(完成) -->1.國家為CN, 2.抓管制事項:核駁報導(都含), 3.完成日落在該月份, 4.案件程序: 中國發明審查(CNP02)
CASE WHEN a.TaskDescription='核駁報導' AND a.Office NOT IN('CN') THEN a.Office+'-核駁' END as ItemFH81, -- XX OA-核駁(未完成) -->1.國家為XX, 2.管制事項:完成初稿(只有這4個字), 3.案件狀態:答辯中(RS05), 4.完成日為空白, 5.事務到期日落在該月份
CASE WHEN CHARINDEX('rce', LOWER(a.TaskDescription))>0 THEN 'RCE' END as ItemFH91, -- RCE(完成) -->1.不分國家, 2.抓管制事項:RCE -->完成日落在該月份
CASE WHEN CHARINDEX('ids', LOWER(a.TaskDescription))>0 THEN 'IDS' END as ItemFH101, -- IDS(完成) -->1.不分國家, 2.抓管制事項:IDS -->完成日落在該月份
CASE WHEN CHARINDEX('繳費領證', a.TaskDescription)>0 THEN '繳費領證' END as ItemFH111, -- 繳費領證(完成) -->1.不分國家, 2.管制事項有「繳費領證」該項, 3.抓管制事項:完成初稿 -->完成日落在該月份
Convert(varchar(10),a.FinishedDate,126) as YM_FH, a.*
into #tmpTodos5_2All
FROM #tmpTodosAll a
WHERE a.FinishedDate between @p_StartDate AND @p_EndDate
AND (CHARINDEX('完成初稿',a.TaskDescription)>0 OR CHARINDEX('提出報告',a.TaskDescription)>0 OR CHARINDEX('提出报告',a.TaskDescription)>0 OR
CHARINDEX('rce', LOWER(a.TaskDescription))>0 OR CHARINDEX('ids', LOWER(a.TaskDescription))>0 OR CHARINDEX('繳費領證', a.TaskDescription)>0 OR
CHARINDEX('核駁報導', a.TaskDescription)>0
)
;
--select * from #tmpTodos5_2All a
--where a.Emp_Name like '%杨艇要%'
--select * from #tmpTodos5_2All a
--where ItemFH2 <>null
print('6:'+convert(varchar(20),getdate(),126))
select CAST(ItemFH1 as varCHAR(20)) as ItemFH, a.* into #tmpTodos5_2 from #tmpTodos5_2All a where ItemFH1<>'';
insert #tmpTodos5_2
select ItemFH2 as ItemFH, a.* from #tmpTodos5_2All a where ItemFH2<>''
union select ItemFH3 as ItemFH, a.* from #tmpTodos5_2All a where ItemFH3<>''-- union select ItemFH4 as ItemFH, a.* from #tmpTodos5_2All a where ItemFH4<>''
union select ItemFH5 as ItemFH, a.* from #tmpTodos5_2All a where ItemFH5<>'' union select ItemFH6 as ItemFH, a.* from #tmpTodos5_2All a where ItemFH6<>''
union select ItemFH7 as ItemFH, a.* from #tmpTodos5_2All a where ItemFH7<>'' union select ItemFH8 as ItemFH, a.* from #tmpTodos5_2All a where ItemFH8<>''
union select ItemFH9 as ItemFH, a.* from #tmpTodos5_2All a where ItemFH9<>'' union select ItemFH10 as ItemFH, a.* from #tmpTodos5_2All a where ItemFH10<>''
union select ItemFH71 as ItemFH, a.* from #tmpTodos5_2All a where ItemFH71<>'' union select ItemFH81 as ItemFH, a.* from #tmpTodos5_2All a where ItemFH81<>''
union select ItemFH91 as ItemFH, a.* from #tmpTodos5_2All a where ItemFH91<>''
union select ItemFH101 as ItemFH, a.* from #tmpTodos5_2All a where ItemFH101<>'' union select ItemFH111 as ItemFH, a.* from #tmpTodos5_2All a where ItemFH111<>'';
print('7:'+convert(varchar(20),getdate(),126))
-- 5.取得:「未完成」資料
SELECT CASE WHEN LEFT(a.CaseNo_r,1) in('M','CN') AND (CHARINDEX('提出報告',a.TaskDescription)>0 OR CHARINDEX('提出报告',a.TaskDescription)>0) THEN 'CN 查新' END as Item_NotFH1, -- CN 查新(未完成) -->1.客戶名稱為華星, 2.案件編號有-M, 3.管制事項:提出报告, 4.完成日為空白, 5.事務到期日落在該月份
CASE WHEN a.Office='CN' AND review_stage='' AND a.PatentType IN ('PN01', 'PN02', 'PN03') AND a.TaskDescription='完成初稿' THEN 'CN 新申請' END as Item_NotFH2, -- CN 新申請(未完成) -->1.國家為CN, 2.案件類別: PN01, PN02, PN03, 3.管制事項:完成初稿(只有這4個字), 4.案件狀態:撰稿(RS01), 5.完成日為空白, 6.事務到期日落在該月份
CASE WHEN a.Office='WO' AND review_stage='' AND a.PatentType IN ('PN01','PN07') AND a.TaskDescription='完成初稿' THEN 'PCT 新申請' END as Item_NotFH3, -- PCT 新申請(未完成)-->1.國家為PCT, 2.案件類別: PN01, PN07, 3.管制事項:完成初稿(只有這4個字), 4.案件狀態:撰稿(RS01), 5.完成日為空白, 6.事務到期日落在該月份
CASE WHEN review_stage='' AND a.PatentType='PN01' AND a.PctNationalPhase='Y' AND a.TaskDescription='完成初稿' THEN a.Office+' 新申請' END as Item_NotFH4, -- XX 新申請(未完成) -->1.國家為XX, 2.案件類別: PN01 , 3.是 PCT國家階段, 4.管制事項:完成初稿(只有這4個字), 5.案件狀態:撰稿(RS01), 5.完成日為空白, 6.事務到期日落在該月份
CASE WHEN CHARINDEX('完成初稿',a.TaskDescription)>0 AND review_stage<>'' THEN 'CN OA' END as Item_NotFH5, -- CN OA(未完成) -->1.國家為CN, 2.管制事項:完成初稿(都含), 3.案件狀態:答辯中-撰稿(RS05.1), 4.完成日為空白, 5.事務到期日落在該月份
CASE WHEN a.TaskDescription='完成初稿' AND review_stage<>'' AND a.Office NOT IN('CN') THEN a.Office+' OA' END as Item_NotFH6, -- XX OA(未完成) -->1.國家為XX, 2.管制事項:完成初稿(只有這4個字), 3.案件狀態:答辯中(RS05), 4.完成日為空白, 5.事務到期日落在該月份
CASE WHEN CHARINDEX('核駁報導',a.TaskDescription)>0 THEN 'CN-核駁' END as Item_NotFH51, -- CN OA-核駁(未完成) -->1.國家為CN, 2.管制事項:完成初稿(都含), 3.案件狀態:答辯中-撰稿(RS05.1), 4.完成日為空白, 5.事務到期日落在該月份
CASE WHEN a.TaskDescription='核駁報導' AND a.Office NOT IN('CN') THEN a.Office+'-核駁' END as Item_NotFH61, -- XX OA-核駁(未完成) -->1.國家為XX, 2.管制事項:完成初稿(只有這4個字), 3.案件狀態:答辯中(RS05), 4.完成日為空白, 5.事務到期日落在該月份
CASE WHEN CHARINDEX('rce', LOWER(a.TaskDescription))>0 THEN 'RCE' END as Item_NotFH7, -- RCE(未完成) -->1.不分國家, 2.管制事項:「RCE」該項, 3.完成日為空白, 4.事務到期日落在該月份
CASE WHEN CHARINDEX('ids', LOWER(a.TaskDescription))>0 THEN 'IDS' END as Item_NotFH8, -- IDS(未完成) -->1.不分國家, 2.管制事項:「IDS」該項, 3.完成日為空白, 4.事務到期日落在該月份
CASE WHEN CHARINDEX('繳費領證', a.TaskDescription)>0 THEN '繳費領證' END as Item_NotFH9, -- 繳費領證(未完成) -->1.不分國家, 2.管制事項:「繳費領證」該項, 3.完成日為空白, 4.事務到期日落在該月份
CASE WHEN (a.AttorneyDueDate='' or a.AttorneyDueDate is null) THEN '' ELSE Convert(varchar(10),a.AttorneyDueDate,126) END as YM_AD, a.*
into #tmpTodos5_3All
FROM #tmpTodosAll a
WHERE ((a.AttorneyDueDate between @p_StartDate AND @p_EndDate ) AND (a.finishedDate='' or a.finishedDate is null))
AND (CHARINDEX('完成初稿',a.TaskDescription)>0 OR CHARINDEX('提出報告',a.TaskDescription)>0 OR CHARINDEX('提出报告',a.TaskDescription)>0 OR
CHARINDEX('rce', LOWER(a.TaskDescription))>0 OR CHARINDEX('ids', LOWER(a.TaskDescription))>0 OR CHARINDEX('繳費領證', a.TaskDescription)>0 OR
CHARINDEX('核駁報導', a.TaskDescription)>0 )
;
select CAST(Item_NotFH1 as varCHAR(20)) as Item_NotFH, a.* into #tmpTodos5_3 from #tmpTodos5_3All a where Item_NotFH1<>'';
Insert into #tmpTodos5_3
select Item_NotFH2 as Item_NotFH, a.* from #tmpTodos5_3All a where Item_NotFH2<>''
Union select Item_NotFH3 as Item_NotFH, a.* from #tmpTodos5_3All a where Item_NotFH3<>''
Union select Item_NotFH4 as Item_NotFH, a.* from #tmpTodos5_3All a where Item_NotFH4<>''
Union select Item_NotFH5 as Item_NotFH, a.* from #tmpTodos5_3All a where Item_NotFH5<>''
Union select Item_NotFH6 as Item_NotFH, a.* from #tmpTodos5_3All a where Item_NotFH6<>''
Union select Item_NotFH7 as Item_NotFH, a.* from #tmpTodos5_3All a where Item_NotFH7<>''
Union select Item_NotFH8 as Item_NotFH, a.* from #tmpTodos5_3All a where Item_NotFH8<>''
Union select Item_NotFH9 as Item_NotFH, a.* from #tmpTodos5_3All a where Item_NotFH9<>''
Union select Item_NotFH51 as Item_NotFH, a.* from #tmpTodos5_3All a where Item_NotFH51<>''
Union select Item_NotFH61 as Item_NotFH, a.* from #tmpTodos5_3All a where Item_NotFH61<>'';
print('8:'+convert(varchar(20),getdate(),126))
--print(convert(varchar(20),getdate(),126))
-- ALTER TABLE tmpTodos5_3 ADD INDEX(`CaseNo`);
--*/
--select * from #tmpTodos5_3
--where emp_ds='深圳所'
--select * from #tmpTodos5_1
--where emp_ds='深圳所'
--select * from #tmpTodosAll a
--select top 500 * from esn_Todos a
--inner join [evw_Employee] b on a.AssignedTo_userid=b.user_id
--inner join
--where b.emp_ds='深圳所' and b.Emp_ItemNum=2
--order by FinishedDate desc
--where caseno='TP200320-M275'
--select * from #tmpTodos5_2
--where emp_ds='深圳所'
--select * from #tmpPatC_5
--where emp_ds='深圳所'
;
--select * from evw_esn_todos a
--left join evw_employee b on a.AssignedTo_userid=b.user_id
--where emp_ds='深圳所' and Emp_ItemNum=2
--return
-- 6.結果
DECLARE @SqlString varchar(max)= '', @SqlJoinString varchar(max)= '', @CommonString varchar(max)= '', @CommonStringJoin1 varchar(max)= '', @CommonStringJoin2 varchar(max)= '',
@CommonStringJoin3 varchar(max)= '', @CommonStringJoin4 varchar(max)= '', @SortString varchar(500)= '', @cnt tinyint= 1, @cntT varchar(3)= '', @cntO varchar(3)= '',
@groupcase1 varchar(200)= '', @groupcase2 varchar(200)= '', @groupcase3 varchar(200)= '', @groupcase4 varchar(200)= '', @groupcase varchar(200)= '', @p_YMT_value varchar(10);
WHILE @cnt <= @countWeek
BEGIN
SET @cntT = RIGHT(REPLICATE('0', 2) + CAST(@cnt AS varchar), 2); -- 補零
SET @cntO = CAST(@cnt AS varchar);
SET @p_YMT_value =
(
SELECT Value
FROM #p_YMT
WHERE id = @cntO
);
if @p_YMT_value is not null
BEGIN
SET @CommonString = @CommonString + 'CASE WHEN ''' + @p_EndDateWeek + ''' > ''' + @p_YMT_value + ''' THEN 1 ELSE 0 END v' + @cntT + ',STUFF ((SELECT distinct '','' + (CASE WHEN attr_IN' + @cntT
+ '<>'''' THEN attr_IN' + @cntT + ' END) @groupcase FOR XML PATH('''')), 1, 1, N'''') as attr_IN' + @cntT + '_todos2, SUM(isnull(IN' + @cntT + ','''')) as ''新進_' + @cntT
+ ''', STUFF ((SELECT distinct '','' + (CASE WHEN attr_FH' + @cntT + '<>'''' THEN attr_FH' + @cntT + ' END) @groupcase FOR XML PATH('''')), 1, 1, N'''') as attr_FH'
+ @cntT + '_todos2, SUM(Isnull(FH' + @cntT + ',0)) as ''完成_' + @cntT + ''','
--+'''' + @p_YMT_value + ''' as datte'+ @cntT+',';
SET @CommonStringJoin1 = @CommonStringJoin1 + 'SUM(CASE WHEN ''' + @p_YMT_value + ''' <=YM_cr and Dateadd(week,1,cast(''' + @p_YMT_value + ''' as datetime)) > YM_cr THEN 1 ELSE 0 END) as IN' + @cntT
+ ',STUFF ((SELECT distinct '','' + (CASE WHEN ''' + @p_YMT_value + ''' <=YM_cr and Dateadd(week,1,cast(''' + @p_YMT_value + ''' as datetime)) > YM_cr THEN FlowKey END) @groupcase FOR XML PATH('''')), 1, 1, N'''') as attr_IN' + @cntT + ',' + ' 0 as FH' + @cntT + ', '''' as attr_FH' + @cntT + ',';
SET @CommonStringJoin2 = @CommonStringJoin2 + 'SUM(CASE WHEN ''' + @p_YMT_value + ''' <=YM_ST and Dateadd(week,1,cast(''' + @p_YMT_value + ''' as datetime)) > YM_ST THEN 1 ELSE 0 END) as IN' + @cntT
+ ',STUFF ((SELECT distinct '','' + (CASE WHEN ''' + @p_YMT_value + ''' <=YM_ST and Dateadd(week,1,cast(''' + @p_YMT_value + ''' as datetime)) > YM_ST THEN FlowKey END) @groupcase FOR XML PATH('''')), 1, 1, N'''') as attr_IN' + @cntT + ',' + ' 0 as FH' + @cntT + ', '''' as attr_FH' + @cntT + ',';
SET @CommonStringJoin3 = @CommonStringJoin3 + '0 as IN' + @cntT + ', '''' as attr_IN' + @cntT + ',' + 'SUM(CASE WHEN ''' + @p_YMT_value + ''' <=YM_FH and Dateadd(week,1,cast(''' + @p_YMT_value + ''' as datetime)) > YM_FH THEN 1 ELSE 0 END) as FH' + @cntT
+ ', STUFF ((SELECT distinct '','' + (CASE WHEN ''' + @p_YMT_value + ''' <=YM_FH and Dateadd(week,1,cast(''' + @p_YMT_value + ''' as datetime)) > YM_FH THEN FlowKey END) @groupcase FOR XML PATH('''')), 1, 1, N'''') as attr_FH' + @cntT + ',';
SET @CommonStringJoin4 = @CommonStringJoin4 + '0 as IN' + @cntT + ', '''' as attr_IN' + @cntT + ',' + '0 as FH' + @cntT + ', '''' as attr_FH' + @cntT + ', ';
END
SET @cnt = @cnt + 1;
END;
SET @CommonString = @CommonString + +'1 as v13, STUFF ((SELECT distinct '','' + (CASE WHEN att_cntNotFH<>'''' THEN att_cntNotFH END) @groupcase FOR XML PATH('''')), 1, 1, N'''') as attr_NotFH_todos2, SUM(isnull(cntNotFH,0)) as 未完成 ';
SET @CommonStringJoin1 = @CommonStringJoin1 + ' 0 as cntNotFH, '''' as att_cntNotFH ';
SET @CommonStringJoin2 = @CommonStringJoin2 + ' 0 as cntNotFH, '''' as att_cntNotFH ';
SET @CommonStringJoin3 = @CommonStringJoin3 + ' 0 as cntNotFH, '''' as att_cntNotFH ';
SET @CommonStringJoin4 = @CommonStringJoin4 + ' COUNT(Item_NotFH) as cntNotFH, STUFF ((SELECT distinct '','' + FlowKey @groupcase FOR XML PATH('''')), 1, 1, N'''') as attr_cntNotFH ';
IF @p_RptType = 'byItem' -- by 項目
BEGIN
SET @groupcase = ' from #tmpItem p LEFT JOIN #tmp_SqlJoin q ON p.ItemName=q.ItemIN where p.ItemNo=a.ItemNo and p.ItemName=a.ItemName ';
SET @groupcase1 = ' from #tmpPatC_5 p WHERE p.ItemIN<>'''' and p.ItemIN=a.ItemIN ';
SET @groupcase2 = ' from #tmpTodos5_1 p WHERE p.ItemIN<>'''' and p.ItemIN=a.ItemIN ';
SET @groupcase3 = ' from #tmpTodos5_2 p WHERE p.ItemFH<>'''' and p.ItemFH=a.ItemFH ';
SET @groupcase4 = ' from #tmpTodos5_3 p where p.Item_NotFH<>'''' and p.Item_NotFH=a.Item_NotFH ';
SET @SqlJoinString = @SqlJoinString + ' select a.* into #tmp_SqlJoin from (
SELECT ItemIN, ' + replace(@CommonStringJoin1, '@groupcase', @groupcase1) + 'FROM #tmpPatC_5 a WHERE ItemIN<>'''' GROUP BY ItemIN '
+ 'Union all ' + 'SELECT ItemIN, ' + replace(@CommonStringJoin2, '@groupcase', @groupcase2) + 'FROM #tmpTodos5_1 a WHERE ItemIN<>'''' GROUP BY ItemIN '
+ 'Union all ' + 'SELECT ItemFH as ItemIN, ' + replace(@CommonStringJoin3, '@groupcase', @groupcase3) + 'FROM #tmpTodos5_2 a WHERE ItemFH<>'''' GROUP BY ItemFH '
+ 'Union all ' + 'SELECT Item_NotFH as ItemIN, ' + replace(@CommonStringJoin4, '@groupcase', @groupcase4) + 'FROM #tmpTodos5_3 a where Item_NotFH<>'''' GROUP BY Item_NotFH ) a ';
--select cast(@SqlJoinString as varchar(max)); --debug query
--Exec (@SqlJoinString+' ; select * from #tmp_SqlJoin ');
SET @SqlString = @SqlString + @SqlJoinString + ' ;';
SET @SqlString = @SqlString + 'SELECT a.ItemName as attr_ItemName, a.ItemName as 項目, '
+ replace(@CommonString, '@groupcase', @groupcase) + ' ' + 'FROM #tmpItem a '
+ 'INNER JOIN #tmp_SqlJoin b ON a.ItemName=b.ItemIN ' + ' GROUP BY a.ItemNo, a.ItemName Order by a.ItemNo ;' ;
END;
ELSE
BEGIN
IF @p_RptType = 'byDept'
BEGIN
-- by 所別
SET @groupcase = ' from #tmpItem p LEFT JOIN #tmp_SqlJoin q ON p.ItemName=q.ItemIN where p.ItemNo=a.ItemNo and p.ItemName=a.ItemName and q.Emp_DS=b.Emp_DS and q.Emp_Sort=b.Emp_Sort ';
SET @groupcase1 = ' from #tmpPatC_5 p WHERE p.ItemIN<>'''' and p.ItemIN=a.ItemIN and p.Emp_DS=a.Emp_DS and p.Emp_Sort=a.Emp_Sort ';
SET @groupcase2 = ' from #tmpTodos5_1 p WHERE p.ItemIN<>'''' and p.ItemIN=a.ItemIN and p.Emp_DS=a.Emp_DS and p.Emp_Sort=a.Emp_Sort ';
SET @groupcase3 = ' from #tmpTodos5_2 p WHERE p.ItemFH<>'''' and p.ItemFH=a.ItemFH and p.Emp_DS=a.Emp_DS and p.Emp_Sort=a.Emp_Sort ';
SET @groupcase4 = ' from #tmpTodos5_3 p where p.Item_NotFH<>'''' and p.Item_NotFH=a.Item_NotFH and p.Emp_DS=a.Emp_DS and p.Emp_Sort=a.Emp_Sort ';
SET @SqlJoinString = @SqlJoinString + 'select a.* into #tmp_SqlJoin from (
SELECT ItemIN, Emp_DS, Emp_Sort,' + replace(@CommonStringJoin1, '@groupcase', @groupcase1) + 'FROM #tmpPatC_5 a WHERE ItemIN<>'''' GROUP BY ItemIN, Emp_DS, Emp_Sort '
+ 'Union all ' + 'SELECT ItemIN, Emp_DS, Emp_Sort,' + replace(@CommonStringJoin2, '@groupcase', @groupcase2) + 'FROM #tmpTodos5_1 a WHERE ItemIN<>'''' GROUP BY ItemIN, Emp_DS, Emp_Sort '
+ 'Union all ' + 'SELECT ItemFH as ItemIN, Emp_DS, Emp_Sort, ' + replace(@CommonStringJoin3, '@groupcase', @groupcase3) + 'FROM #tmpTodos5_2 a WHERE ItemFH<>'''' GROUP BY ItemFH, Emp_DS, Emp_Sort '
+ 'Union all ' + 'SELECT Item_NotFH as ItemIN, Emp_DS, Emp_Sort, ' + replace(@CommonStringJoin4, '@groupcase', @groupcase4) + 'FROM #tmpTodos5_3 a where Item_NotFH<>'''' GROUP BY Item_NotFH, Emp_DS, Emp_Sort ) a ';
--select cast(@SqlJoinString as varchar(max)); --debug query
--Exec (@SqlJoinString+' ; select * from #tmp_SqlJoin ');
SET @SqlString = @SqlString + @SqlJoinString + ' ;';
--SET @SqlString = @SqlString + 'SELECT a.ItemName as attr_ItemName, a.ItemName as 項目, Emp_DS as attr_Emp_DS, ISNULL(Emp_DS,''未指定所別'') as 所別, ' + replace(@CommonString, '@groupcase', @groupcase)
SET @SqlString = @SqlString + 'SELECT a.ItemName as attr_ItemName, a.ItemName as 項目, Emp_DS as attr_Emp_DS,case when ISNULL(Emp_DS,'''')='''' Then ''未指定所別'' Else Emp_DS END as 所別, '
+ replace(@CommonString, '@groupcase', @groupcase)
+ ' ' + 'FROM #tmpItem a ' + 'INNER JOIN #tmp_SqlJoin b ON a.ItemName=b.ItemIN ' + ' GROUP BY a.ItemNo, a.ItemName, Emp_DS ,Emp_Sort
Order by a.ItemNo, CASE Emp_DS WHEN ''台北所'' then 10 WHEN ''台中所'' THEN 20 WHEN ''高雄所''
THEN 30 WHEN ''上海所'' THEN 40 WHEN ''深圳所'' THEN 50 WHEN
''武漢所'' THEN 60 WHEN ''蘇州所'' THEN 70 WHEN ''外包人員'' THEN 80 WHEN ''小計'' THEN 999 ELSE 990 END, Emp_Sort ; ' ;
END;
ELSE
BEGIN
IF @p_RptType = 'byDS'
BEGIN
-- by 部別
SET @groupcase = ' from #tmpItem p LEFT JOIN #tmp_SqlJoin q ON p.ItemName=q.ItemIN where p.ItemNo=a.ItemNo and p.ItemName=a.ItemName and q.Emp_Item=b.Emp_Item and q.Emp_DS=b.Emp_DS ';
SET @groupcase1 = ' from #tmpPatC_5 p WHERE p.ItemIN<>'''' and p.ItemIN=a.ItemIN and p.Emp_DS=a.Emp_DS and p.Emp_Item=a.Emp_Item and p.Emp_Itemnum=a.Emp_Itemnum ';
SET @groupcase2 = ' from #tmpTodos5_1 p WHERE p.ItemIN<>'''' and p.ItemIN=a.ItemIN and p.Emp_DS=a.Emp_DS and p.Emp_Item=a.Emp_Item and p.Emp_Itemnum=a.Emp_Itemnum ';
SET @groupcase3 = ' from #tmpTodos5_2 p WHERE p.ItemFH<>'''' and p.ItemFH=a.ItemFH and p.Emp_DS=a.Emp_DS and p.Emp_Item=a.Emp_Item and p.Emp_Itemnum=a.Emp_Itemnum ';
SET @groupcase4 = ' from #tmpTodos5_3 p where p.Item_NotFH<>'''' and p.Item_NotFH=a.Item_NotFH and p.Emp_DS=a.Emp_DS and p.Emp_Item=a.Emp_Item and p.Emp_Itemnum=a.Emp_Itemnum ';
SET @SqlJoinString = @SqlJoinString + 'select a.* into #tmp_SqlJoin from (
SELECT ItemIN, Emp_DS, Emp_Item,Emp_Itemnum , ' + replace(@CommonStringJoin1, '@groupcase', @groupcase1) + 'FROM #tmpPatC_5 a WHERE ItemIN<>'''' GROUP BY ItemIN, Emp_DS, Emp_Item ,Emp_Itemnum '
+ 'Union all ' + 'SELECT ItemIN, Emp_DS, Emp_Item,Emp_Itemnum , ' + replace(@CommonStringJoin2, '@groupcase', @groupcase2) + 'FROM #tmpTodos5_1 a WHERE ItemIN<>'''' GROUP BY ItemIN, Emp_DS, Emp_Item ,Emp_Itemnum '
+ 'Union all ' + 'SELECT ItemFH as ItemIN,Emp_DS, Emp_Item,Emp_Itemnum , ' + replace(@CommonStringJoin3, '@groupcase', @groupcase3) + 'FROM #tmpTodos5_2 a WHERE ItemFH<>'''' GROUP BY ItemFH, Emp_DS, Emp_Item,Emp_Itemnum '
+ 'Union all ' + 'SELECT Item_NotFH as ItemIN, Emp_DS,Emp_Item,Emp_Itemnum , ' + replace(@CommonStringJoin4, '@groupcase', @groupcase4) + 'FROM #tmpTodos5_3 a where Item_NotFH<>'''' GROUP BY Item_NotFH, Emp_DS, Emp_Item,Emp_Itemnum ) a ';
select cast(@SqlJoinString as varchar(max)); --debug query
--Exec (@SqlJoinString+' ; select * from tmp_SqlJoin ');
--Exec (@SqlJoinString+' ; ');
SET @SqlString = @SqlString + @SqlJoinString + ' ;';
SET @SqlString = @SqlString + 'SELECT a.ItemName as attr_ItemName, a.ItemName as 項目, Emp_DS as attr_Emp_DS, case when ISNULL(Emp_DS,'''')='''' Then ''未指定所別'' Else Emp_DS END as 所別, Emp_Item as attr_Emp_Item, ISNULL(Emp_Item,'''') as 部別, '
+ replace(@CommonString, '@groupcase', @groupcase) + ' ' + 'FROM #tmpItem a ' + 'INNER JOIN #tmp_SqlJoin b ON a.ItemName=b.ItemIN ' + ' GROUP BY a.ItemNo, a.ItemName, Emp_Item, Emp_DS
Order by a.ItemNo, CASE Emp_DS WHEN ''台北所'' then 10 WHEN ''台中所'' THEN 20 WHEN ''高雄所''
THEN 30 WHEN ''上海所'' THEN 40 WHEN ''深圳所'' THEN 50 WHEN
''武漢所'' THEN 60 WHEN ''蘇州所'' THEN 70 WHEN ''外包人員'' THEN 80 WHEN ''小計'' THEN 999 ELSE 990 END ; ';
END;
END;
END;
print('9:'+convert(varchar(20),getdate(),126))
SELECT CAST(@SqlString AS VARCHAR(MAX)); --debug query
EXEC (@SqlString+' ;IF OBJECT_ID(''tempdb..#tmp_SqlJoin'', ''U'') IS NOT NULL DROP TABLE #tmp_SqlJoin; ');
print('10:'+convert(varchar(20),getdate(),126))

alter PROCEDURE [dbo].[rpt_CustCaseTot_YM] (
@p_YM_F varchar(7), -- 區期年月起值
@p_YM_T varchar(7), -- 區期年月迄值
@p_RptType varchar(10), -- 報表類別 RptType = byItem 項目 , byDept 所別, byDS 部別
@p_CustName nvarchar(100)
)
AS
BEGIN
-- 案件統計表by項目, 案件統計表by所別, 案件統計表by部別
-- call rpt_CustCaseTot_YM('201901','201906','byDS','华星');
Declare @p_EmpItem varchar(1),@Emp_ItemNo varchar(50),@p_StartDate datetime,@p_EndDate datetime,@p_StartDatet datetime;
Declare @p_EndDateYM varchar(7),@i tinyint=1,@p_YMT_sql varchar(max)='';
set @p_StartDate =Convert(datetime,@p_YM_F+'-01',126) ;
set @p_EndDate =DATEADD(day,-1,DATEADD(month, 1,cast(@p_YM_T+'-01' as datetime))) ;
set @p_EndDateYM=Convert(varchar(7),@p_EndDate,126);
print('1:'+convert(varchar(20),getdate(),126))
select 99 as id ,Convert(varchar(7),@p_EndDate,126) as value into #p_YMT
Set @p_StartDatet=@p_StartDate
WHILE datediff(month,@p_StartDatet,@p_EndDate) >=0
BEGIN
Set @p_YMT_sql=@p_YMT_sql+'('+cast(@i as varchar(2))+',Convert(varchar(7),DATEADD(month,'+cast((@i-1) as varchar(2))+','''+(@p_YM_F+'-01')+''') ,126)),'
--insert into #p_YMT (id,Value)
--values(@i,Convert(varchar(7),DATEADD(month,@i-1,@p_StartDate) ,126))
Set @i=@i+1
Set @p_StartDatet=DATEADD(month,1,@p_StartDatet)
END
set @p_YMT_sql=left(@p_YMT_sql,len(@p_YMT_sql)-1);
--print 'insert into #p_YMT (id,Value) values ' + @p_YMT_sql
exec ('insert into #p_YMT (id,Value) values' + @p_YMT_sql)
--/*
-- 取得「客戶名稱」的 recordset
SELECT ID as ItemNo,replace(replace(value, char(13),''), char(10),'') as ItemDesc into #tb_Split2 FROM [ufn_split](@p_CustName, ';') ;
-- 取得RPT項目List
SELECT * into #tmpItem FROM (
SELECT 1 as ItemNo, 'CN 查新' as ItemName union
SELECT 2, 'CN 新申請' union SELECT 3, 'PCT 新申請' union
SELECT 4, 'US 新申請' union SELECT 5, 'KR 新申請' union SELECT 6, 'JP 新申請' union SELECT 7, 'EA 新申請' union SELECT 8, 'EU 新申請' union
SELECT 9, 'IN 新申請' union SELECT 10, 'TW 新申請' union SELECT 11, 'DE 新申請' union SELECT 12, 'GB 新申請' union SELECT 13, 'RU 新申請' union
SELECT 41, 'CN OA' union SELECT 42, 'TW OA' union SELECT 43, 'US OA' union SELECT 45, 'KR OA' union SELECT 46, 'JP OA' union
SELECT 47, 'EA OA' union SELECT 48, 'DE OA' union SELECT 49, 'EU OA' union SELECT 50, 'GB OA' union SELECT 51, 'RU OA' union
SELECT 52, 'RCE' union SELECT 53, 'IDS' union SELECT 54, '繳費領證'
union SELECT 61 as ItemNo, 'CN OA-核駁' as ItemName union SELECT 62, 'TW OA-核駁' union SELECT 63, 'US OA-核駁' union SELECT 65, 'KR OA-核駁'
union SELECT 66, 'JP OA-核駁' union SELECT 67, 'EA OA-核駁' union SELECT 68, 'DE OA-核駁' union SELECT 69, 'EU OA-核駁' union SELECT 70, 'GB OA-核駁' union SELECT 71, 'RU OA-核駁'
union SELECT 72 as ItemNo, 'CN-核駁' as ItemName union SELECT 73, 'TW-核駁' union SELECT 74, 'US-核駁' union SELECT 75, 'KR-核駁'
union SELECT 76, 'JP-核駁' union SELECT 77, 'EA-核駁' union SELECT 78, 'DE-核駁' union SELECT 79, 'EU-核駁' union SELECT 80, 'GB-核駁' union SELECT 81, 'RU-核駁'
) a ;
-- 第二部, 客戶名稱不會只有「华星」, 第一部, 客戶名稱只會有「华星」
if (SELECT COUNT(*) FROM #tb_Split2 where ItemDesc like '%华星%' or ItemDesc like '%華星%' )>0
delete from #tmpItem where ItemNo > 60
print('1:'+convert(varchar(20),getdate(),126))
-- 員工部別 (因該員工會多部別, 放在Emp_DS2裡, 所以要distinct )
SELECT distinct a.user_name as Emp_ID, cn_name as Emp_Name, isnull(a.Emp_DS,'') as Emp_DS, isnull(a.Emp_DSNum,'') as Emp_DSNum, isnull(a.Emp_Item,'') as Emp_Item, isnull(a.Emp_ItemNum,'') as Emp_ItemNum, 0 as Emp_Sort ,a.user_id
into #tmpEmp
FROM [dbo].[evw_Employee] a
SELECT a.country_id,a.customer_name,a.PatentType,a.charge_date,a.case_volume,a.PatentType_Name,a.Case_id,a.case_status_id,a.business_type_id
--,(select value from [ufn_split](a.case_volume,'-') a where a.ID=1) as CaseNo_l
,(select value from [ufn_split](a.case_volume,'-') a where a.ID=2) as CaseNo_r
into #tmpPatC_5All_1 FROM [dbo].[evw_p_case_info] a
inner join #tb_Split2 s on a.customer_name like s.ItemDesc +'%'
WHERE a.charge_date between @p_StartDate AND @p_EndDate -- 立案日
AND a.PatentType IN ('PN01', 'PN02', 'PN03','PN07') -- 案件
-- 1.取得: 該案件之 查新, 新申請的「新進」資料
SELECT CASE WHEN LEFT(a.CaseNo_r,1) in('M','CN') THEN 'CN 查新' END as ItemIN1, -- CN 查新(未完成) -->1.客戶名稱為華星, 2.案件編號有-M, 3.管制事項:完成初稿, 4.完成日為空白, 5.事務所到期日落在該月份
CASE WHEN a.country_id='CN' AND a.PatentType IN ('PN01', 'PN02', 'PN03') AND ics.case_status_zh_tw='撰稿中' THEN 'CN 新申請' END as ItemIN2, -- 2.CN 新申請(新進) -->1.國家為CN, 2.案件類別: PN01, PN02, PN03, 3.立案日落在該月份, 4.案件狀態:撰稿(RS01)
CASE WHEN a.country_id='WO' AND a.PatentType IN ('PN01','PN07') AND ics.case_status_zh_tw='撰稿中' THEN 'PCT 新申請' END as ItemIN3, -- 3.PCT 新申請(新進) -->1.國家為PCT, 2.案件類別: PN01, PN07, 3.立案日落在該月份, 4.案件狀態:撰稿(RS01)
CASE WHEN a.country_id NOT IN ('CN','WO' ) AND a.PatentType IN ('PN01') AND b2.business_type_code='PI' AND ics.case_status_zh_tw='撰稿中' THEN a.country_id+' 新申請' END as ItemIN4, -- 4.XX 新申請(新進) --> 1.國家為XX, 2.案件類別: PN01 , 3.是 PCT國家階段, 4.立案日落在該月份, 5.案件狀態:撰稿(RS01)
Convert(varchar(7),a.charge_date,126) as YM_cr,a.case_volume as FlowKey,
a.customer_name as Client_CompanyName, a.country_id, a.PatentType, a.PatentType_Name, ics.case_status_code as Status,
ics.case_status_zh_tw as Status_Names --, InCharge, InCharge_Name
, e.Emp_ID, e.Emp_Name, e.Emp_DS, e.Emp_DSNum, e.Emp_Item, e.Emp_ItemNum,e.Emp_Sort
into #tmpPatC_5All
FROM #tmpPatC_5All_1 a
--inner join #tb_Split2 s on a.customer_name like '%'+s.ItemDesc +'%'
Inner JOIN [evw_p_proc_pic_list] ppl on ppl.Case_id=a.Case_id --案件流程人员
Inner JOIN #tmpEmp e on e.Emp_ID=ppl.pic_userID
LEFT JOIN i_case_status ics on ics.case_status_id=a.case_status_id
LEFT JOIN i_business_type b2 on b2.business_type_id=a.business_type_id
print('2:'+convert(varchar(20),getdate(),126))
select * into #tmpPatC_5 from (
select CAST(ItemIN1 as varCHAR(20)) as ItemIN, a.* from #tmpPatC_5All a where ItemIN1<>''
union
select ItemIN2 as ItemIN, a.* from #tmpPatC_5All a where ItemIN2<>''
union
select ItemIN3 as ItemIN, a.* from #tmpPatC_5All a where ItemIN3<>''
union
select ItemIN4 as ItemIN, a.* from #tmpPatC_5All a where ItemIN4<>''
) a
;
print('3:'+convert(varchar(20),getdate(),126))
-- 2.取得: ToDos
--;with tmpTodosAll_1 as(
--select sn,proc_id,CaseType,CaseType_Name,CaseNo,TaskDescription,StartDate2,AttorneyDueDate,FinishedDate,AssignedTo_userid,
--b.Emp_ID as AssignedTo,b.Emp_Name as AssignedTo_Name,Points,ExchangeRate,Matter,Matter_Name,PatentType,PatentType_Name,ToDosStatus,ToDosStatus_Name,
--case_id
--from evw_esn_todos a
--inner join #tmpEmp b on a.AssignedTo_userid=b.user_id
--where (a.StartDate2 between @p_StartDate AND @p_EndDate) OR -- 起始日
-- (a.FinishedDate between @p_StartDate AND @p_EndDate) OR -- 完成日
-- (a.AttorneyDueDate between @p_StartDate AND @p_EndDate)
-- AND a.PatentType IN ('PN01', 'PN02', 'PN03','PN07')
--)
print('3-1:'+convert(varchar(20),getdate(),126))
select sn,a.proc_id,CaseType,CaseType_Name,CaseNo,TaskDescription,StartDate2,AttorneyDueDate,FinishedDate,AssignedTo_userid,
b.Emp_ID as AssignedTo,b.Emp_Name as AssignedTo_Name,Points,ExchangeRate,Matter,Matter_Name,PatentType,PatentType_Name,ToDosStatus,ToDosStatus_Name,a.case_id
,isnull(c.review_stage,'') as review_stage
into #tmpTodosAll_1
from evw_esn_todos a
inner join #tmpEmp b on a.AssignedTo_userid=b.user_id
inner join p_proc_info c on a.proc_id=c.proc_id
where
((a.StartDate2 between @p_StartDate AND @p_EndDate) OR -- 起始日
(a.FinishedDate between @p_StartDate AND @p_EndDate) OR -- 完成日
(a.AttorneyDueDate between @p_StartDate AND @p_EndDate))
AND a.PatentType IN ('PN01', 'PN02', 'PN03','PN07')
print('3-2:'+convert(varchar(20),getdate(),126))
SELECT a.* , case when ibt.business_type_code='PN' THEN 'Y' END as PctNationalPhase,p.country_id as office,Cast(a.sn as varchar(20)) as Flowkey
,p.customer_name as Client_CompanyName
,(select value from [ufn_split](a.CaseNo,'-') a where a.ID=2) as CaseNo_r
,e.Emp_ID, e.Emp_Name,e.Emp_DSNum, e.Emp_Item, e.Emp_ItemNum, 0 as Emp_Sort ,e.Emp_DS
into #tmpTodosAll
FROM #tmpTodosAll_1 a
inner join [evw_p_case_info] p on p.case_id=a.case_id
--left join p_case_info p on p.case_id=a.case_id
--left join c_customer c on p.customer_id=c.customer_id
inner join #tb_Split2 s on p.customer_name like s.ItemDesc +'%'
--left join i_case_status ics on ics.case_status_id=p.case_status_
left join i_business_type ibt on ibt.business_type_id=p.business_type_id
left join #tmpEmp e on a.AssignedTo_userid=e.user_id
;
print('4:'+convert(varchar(20),getdate(),126))
--return
-- 3.取得: OA 的「新進」資料
SELECT CASE WHEN a.Office='CN' AND (CHARINDEX('審查意見',a.TaskDescription)>0 OR CHARINDEX('审查意见',a.TaskDescription)>0) THEN 'CN OA' END as ItemIN1, -- CN OA(新進) -->1.國家為CN , 2.抓管制事項:审查意见/驳回, 3.起始日落在該月份, 4.案件狀態:答辯中-撰稿(RS05.1)
CASE WHEN a.Office='TW' AND review_stage<>'' AND (CHARINDEX('申復',a.TaskDescription)>0 OR CHARINDEX('申复',a.TaskDescription)>0 OR CHARINDEX('提出再審',a.TaskDescription)>0) THEN 'TW OA' END as ItemIN2, -- TW OA(新進) -->1.國家為TW, 2.抓管制事項:申復/提出再審 3.起始日落在該月份, 4.案件狀態:答辯中(RS05)
CASE WHEN a.Office='US' AND review_stage<>'' AND (CHARINDEX('response',LOWER(a.TaskDescription))>0 OR CHARINDEX('election',LOWER(a.TaskDescription))>0 OR CHARINDEX('advisory action',LOWER(a.TaskDescription))>0 OR CHARINDEX('parte quayle',LOWER(a.TaskDescription))>0) THEN 'US OA' END as ItemIN3, -- US OA(新進) -->1.國家為US, 2.抓管制事項:Respnose/Election/Advisory Action/parte quayle 3.起始日落在該月份, 4.案件狀態:答辯中(RS05)
CASE WHEN a.Office='KR' AND review_stage<>'' AND (CHARINDEX('response',LOWER(a.TaskDescription))>0 OR CHARINDEX('Re-examination',LOWER(a.TaskDescription))>0 OR CHARINDEX('appeal',LOWER(a.TaskDescription))>0 OR CHARINDEX('final rejection',LOWER(a.TaskDescription))>0) THEN 'KR OA' END as ItemIN4, -- KR OA(新進) -->1.國家為KR, 2.抓管制事項:Response/Request for Re-examination/Appeal/final rejection 3.起始日落在該月份, 4.案件狀態:答辯中(RS05)
CASE WHEN a.Office='JP' AND review_stage<>'' AND review_stage<>'' AND (CHARINDEX('response',LOWER(a.TaskDescription))>0 OR CHARINDEX('appeal',LOWER(a.TaskDescription))>0 OR CHARINDEX('行政訴訟',a.TaskDescription)>0 ) THEN 'JP OA' END as ItemIN5, -- JP OA(新進) -->1.國家為JP, 2.抓管制事項:Response/Appeal/行政訴訟 3.起始日落在該月份, 4.案件狀態:答辯中(RS05)
CASE WHEN a.Office NOT IN ('CN', 'TW', 'US','KR', 'JP') AND review_stage<>'' AND CHARINDEX('response',LOWER(a.TaskDescription))>0 THEN a.Office+' OA' END as ItemIN6, -- XX OA(新進) -->1.國家為XX, 2.抓管制事項:Response 3.起始日落在該月份, 4.案件狀態:答辯中(RS05)
CASE WHEN a.TaskDescription='RCE' THEN 'RCE' END as ItemIN7, -- RCE(新進) -->1.不分國家, 2.抓管制事項:RCE, 3.起始日落在該月份
CASE WHEN a.TaskDescription='IDS' THEN 'IDS' END as ItemIN8, -- IDS(新進) -->1.不分國家, 2.抓管制事項:IDS, 3.起始日落在該月份
CASE WHEN (CHARINDEX('繳費領證',a.TaskDescription)>0 OR CHARINDEX('缴纳领证',a.TaskDescription)>0) THEN '繳費領證' END as ItemIN9, -- 繳費領證(新進) -->1.不分國家, 2.抓管制事項:繳費領證, 3.起始日落在該月份
CASE WHEN ( CHARINDEX('駁回',a.TaskDescription)>0 OR CHARINDEX('驳回',a.TaskDescription)>0) THEN a.Office+'-核駁' END as ItemIN10,
Convert(varchar(7),a.StartDate2,126) as YM_ST, a.*, getdate() as sysDate
into #tmpTodos5_1All
FROM #tmpTodosAll a
WHERE a.StartDate2 between @p_StartDate AND @p_EndDate
;
select CAST(ItemIN1 as varCHAR(20)) as ItemIN, a.* into #tmpTodos5_1 from #tmpTodos5_1All a where ItemIN1<>'';
insert #tmpTodos5_1
select ItemIN2 as ItemIN, a.* from #tmpTodos5_1All a where ItemIN2<>''
union select ItemIN3 as ItemIN, a.* from #tmpTodos5_1All a where ItemIN3<>'' union select ItemIN4 as ItemIN, a.* from #tmpTodos5_1All a where ItemIN4<>''
union select ItemIN5 as ItemIN, a.* from #tmpTodos5_1All a where ItemIN5<>'' union select ItemIN6 as ItemIN, a.* from #tmpTodos5_1All a where ItemIN6<>''
union select ItemIN7 as ItemIN, a.* from #tmpTodos5_1All a where ItemIN7<>'' union select ItemIN8 as ItemIN, a.* from #tmpTodos5_1All a where ItemIN8<>''
union select ItemIN9 as ItemIN, a.* from #tmpTodos5_1All a where ItemIN9<>'' union select ItemIN10 as ItemIN, a.* from #tmpTodos5_1All a where ItemIN10<>'';
-- ALTER TABLE tmpTodos5_1 ADD INDEX(`CaseNo`);
print('5:'+convert(varchar(20),getdate(),126))
-- 4.取得: OA 的「「完成」資料
SELECT CASE WHEN LEFT(a.CaseNo_r,1) in('M','CN') AND (CHARINDEX('提出報告',a.TaskDescription)>0 OR CHARINDEX('提出报告',a.TaskDescription)>0) THEN 'CN 查新' END as ItemFH1, -- CN 查新(完成) -->1.案件編號有-M, 3.案件狀態:結案(RS11), 4.管制事項:提出報告, 5.完成日落在該月份
CASE WHEN a.Office='CN' AND review_stage='' AND a.PatentType IN ('PN01', 'PN02', 'PN03') AND a.TaskDescription='完成初稿' THEN 'CN 新申請' END as ItemFH2, -- CN 新申請(完成) -->1.國家為CN, 2.案件類別: PN01, PN02, PN03, 3.管制事項:完成初稿, 4.完成日落在該月份, 5. 案件程序:中國發明申請(CNP01)
CASE WHEN a.Office='WO' AND review_stage='' AND a.PatentType IN ('PN01','PN07') AND a.TaskDescription='完成初稿' THEN 'PCT 新申請' END as ItemFH3, -- PCT 新申請(完成)-->1.國家為PCT, 2.案件類別: PN01, PN07, 3.管制事項:完成初稿, 4.完成日落在該月份, 5. 案件程序:PCT國際申請(WOP01)
CASE WHEN a.Office='TW' AND review_stage='' AND a.PatentType='PN01' AND a.PctNationalPhase='Y' AND a.TaskDescription='完成初稿' THEN 'TW 新申請' END as ItemFH5, -- TW 新申請(完成)-->1.國家為TW, 2.案件類別: PN01, PN07, 3.管制事項:完成初稿, 4.完成日落在該月份, 5. 案件程序:台灣發明申請(TWP01)
CASE WHEN a.Office NOT IN ('CN', 'WO','TW') AND review_stage='' AND (LEFT(a.CaseNo_r,1)<>'M')
AND a.PatentType='PN01' AND a.PctNationalPhase='Y' AND a.TaskDescription='完成初稿' THEN a.Office+' 新申請' END as ItemFH6, -- XX 新申請(完成) -->1.國家為XX, 2.案件類別: PN01 , 3.是 PCT國家階段, 4.管制事項:完成初稿, 5.完成日落在該月份, 6. 案件程序:專利申請(P01)
CASE WHEN Office='CN' AND review_stage<>'' AND CHARINDEX('完成初稿',a.TaskDescription)>0 THEN 'CN OA' END as ItemFH7, -- CN OA(完成) -->1.國家為CN, 2.抓管制事項:完成初稿(都含), 3.完成日落在該月份, 4.案件程序: 中國發明審查(CNP02)
CASE WHEN Office='TW' AND review_stage<>'' AND a.TaskDescription='完成初稿' THEN 'TW OA' END as ItemFH8, -- TW OA(完成) -->1.國家為TW, 2.抓管制事項:完成初稿(只有這4個字), 4.完成日落在該月份, 4.案件程序: 台灣發明審查(TWP02)
CASE WHEN Office='US' AND review_stage<>'' AND a.TaskDescription='完成初稿' THEN 'US OA' END as ItemFH9, -- US OA(完成) -->1.國家為US, 2.抓管制事項:完成初稿(只有這4個字), 4.完成日落在該月份, 4.案件程序: 美國Utility審查(USP02)
CASE WHEN Office NOT IN ('CN', 'TW','US') AND review_stage<>'' AND a.TaskDescription='完成初稿' THEN a.Office+' OA' END as ItemFH10, -- XX OA(完成) -->1.國家為XX, 2.抓管制事項:完成初稿(只有這4個字), 4.完成日落在該月份, 4.案件程序: 專利審查(P02)
CASE WHEN Office='CN' AND CHARINDEX('核駁報導',a.TaskDescription)>0 THEN 'CN-核駁' END as ItemFH71, -- CN OA-核駁(完成) -->1.國家為CN, 2.抓管制事項:核駁報導(都含), 3.完成日落在該月份, 4.案件程序: 中國發明審查(CNP02)
CASE WHEN a.TaskDescription='核駁報導' AND a.Office NOT IN('CN') THEN a.Office+'-核駁' END as ItemFH81, -- XX OA-核駁(未完成) -->1.國家為XX, 2.管制事項:完成初稿(只有這4個字), 3.案件狀態:答辯中(RS05), 4.完成日為空白, 5.事務到期日落在該月份
CASE WHEN CHARINDEX('rce', LOWER(a.TaskDescription))>0 THEN 'RCE' END as ItemFH91, -- RCE(完成) -->1.不分國家, 2.抓管制事項:RCE -->完成日落在該月份
CASE WHEN CHARINDEX('ids', LOWER(a.TaskDescription))>0 THEN 'IDS' END as ItemFH101, -- IDS(完成) -->1.不分國家, 2.抓管制事項:IDS -->完成日落在該月份
CASE WHEN CHARINDEX('繳費領證', a.TaskDescription)>0 THEN '繳費領證' END as ItemFH111, -- 繳費領證(完成) -->1.不分國家, 2.管制事項有「繳費領證」該項, 3.抓管制事項:完成初稿 -->完成日落在該月份
Convert(varchar(7),a.FinishedDate,126) as YM_FH, a.*
into #tmpTodos5_2All
FROM #tmpTodosAll a
WHERE a.FinishedDate between @p_StartDate AND @p_EndDate
AND (CHARINDEX('完成初稿',a.TaskDescription)>0 OR CHARINDEX('提出報告',a.TaskDescription)>0 OR CHARINDEX('提出报告',a.TaskDescription)>0 OR
CHARINDEX('rce', LOWER(a.TaskDescription))>0 OR CHARINDEX('ids', LOWER(a.TaskDescription))>0 OR CHARINDEX('繳費領證', a.TaskDescription)>0 OR
CHARINDEX('核駁報導', a.TaskDescription)>0
)
;
print('6:'+convert(varchar(20),getdate(),126))
select CAST(ItemFH1 as varCHAR(20)) as ItemFH, a.* into #tmpTodos5_2 from #tmpTodos5_2All a where ItemFH1<>'';
insert #tmpTodos5_2
select ItemFH2 as ItemFH, a.* from #tmpTodos5_2All a where ItemFH2<>''
union select ItemFH3 as ItemFH, a.* from #tmpTodos5_2All a where ItemFH3<>''-- union select ItemFH4 as ItemFH, a.* from #tmpTodos5_2All a where ItemFH4<>''
union select ItemFH5 as ItemFH, a.* from #tmpTodos5_2All a where ItemFH5<>'' union select ItemFH6 as ItemFH, a.* from #tmpTodos5_2All a where ItemFH6<>''
union select ItemFH7 as ItemFH, a.* from #tmpTodos5_2All a where ItemFH7<>'' union select ItemFH8 as ItemFH, a.* from #tmpTodos5_2All a where ItemFH8<>''
union select ItemFH9 as ItemFH, a.* from #tmpTodos5_2All a where ItemFH9<>'' union select ItemFH10 as ItemFH, a.* from #tmpTodos5_2All a where ItemFH10<>''
union select ItemFH71 as ItemFH, a.* from #tmpTodos5_2All a where ItemFH71<>'' union select ItemFH81 as ItemFH, a.* from #tmpTodos5_2All a where ItemFH81<>''
union select ItemFH91 as ItemFH, a.* from #tmpTodos5_2All a where ItemFH91<>''
union select ItemFH101 as ItemFH, a.* from #tmpTodos5_2All a where ItemFH101<>'' union select ItemFH111 as ItemFH, a.* from #tmpTodos5_2All a where ItemFH111<>'';
print('7:'+convert(varchar(20),getdate(),126))
-- 5.取得:「未完成」資料
SELECT CASE WHEN LEFT(a.CaseNo_r,1) in('M','CN') AND (CHARINDEX('提出報告',a.TaskDescription)>0 OR CHARINDEX('提出报告',a.TaskDescription)>0) THEN 'CN 查新' END as Item_NotFH1, -- CN 查新(未完成) -->1.客戶名稱為華星, 2.案件編號有-M, 3.管制事項:提出报告, 4.完成日為空白, 5.事務到期日落在該月份
CASE WHEN a.Office='CN' AND review_stage='' AND a.PatentType IN ('PN01', 'PN02', 'PN03') AND a.TaskDescription='完成初稿' THEN 'CN 新申請' END as Item_NotFH2, -- CN 新申請(未完成) -->1.國家為CN, 2.案件類別: PN01, PN02, PN03, 3.管制事項:完成初稿(只有這4個字), 4.案件狀態:撰稿(RS01), 5.完成日為空白, 6.事務到期日落在該月份
CASE WHEN a.Office='WO' AND review_stage='' AND a.PatentType IN ('PN01','PN07') AND a.TaskDescription='完成初稿' THEN 'PCT 新申請' END as Item_NotFH3, -- PCT 新申請(未完成)-->1.國家為PCT, 2.案件類別: PN01, PN07, 3.管制事項:完成初稿(只有這4個字), 4.案件狀態:撰稿(RS01), 5.完成日為空白, 6.事務到期日落在該月份
CASE WHEN a.Office NOT IN ('CN', 'WO') and review_stage='' AND a.PatentType='PN01' AND a.PctNationalPhase='Y' AND a.TaskDescription='完成初稿' THEN a.Office+' 新申請' END as Item_NotFH4, -- XX 新申請(未完成) -->1.國家為XX, 2.案件類別: PN01 , 3.是 PCT國家階段, 4.管制事項:完成初稿(只有這4個字), 5.案件狀態:撰稿(RS01), 5.完成日為空白, 6.事務到期日落在該月份
CASE WHEN a.Office IN('CN') and CHARINDEX('完成初稿',a.TaskDescription)>0 AND review_stage<>'' THEN 'CN OA' END as Item_NotFH5, -- CN OA(未完成) -->1.國家為CN, 2.管制事項:完成初稿(都含), 3.案件狀態:答辯中-撰稿(RS05.1), 4.完成日為空白, 5.事務到期日落在該月份
CASE WHEN a.TaskDescription='完成初稿' AND review_stage<>'' AND a.Office NOT IN('CN') THEN a.Office+' OA' END as Item_NotFH6, -- XX OA(未完成) -->1.國家為XX, 2.管制事項:完成初稿(只有這4個字), 3.案件狀態:答辯中(RS05), 4.完成日為空白, 5.事務到期日落在該月份
CASE WHEN a.Office IN('CN') and CHARINDEX('核駁報導',a.TaskDescription)>0 THEN 'CN-核駁' END as Item_NotFH51, -- CN OA-核駁(未完成) -->1.國家為CN, 2.管制事項:完成初稿(都含), 3.案件狀態:答辯中-撰稿(RS05.1), 4.完成日為空白, 5.事務到期日落在該月份
CASE WHEN a.TaskDescription='核駁報導' AND a.Office NOT IN('CN') THEN a.Office+'-核駁' END as Item_NotFH61, -- XX OA-核駁(未完成) -->1.國家為XX, 2.管制事項:完成初稿(只有這4個字), 3.案件狀態:答辯中(RS05), 4.完成日為空白, 5.事務到期日落在該月份
CASE WHEN CHARINDEX('rce', LOWER(a.TaskDescription))>0 THEN 'RCE' END as Item_NotFH7, -- RCE(未完成) -->1.不分國家, 2.管制事項:「RCE」該項, 3.完成日為空白, 4.事務到期日落在該月份
CASE WHEN CHARINDEX('ids', LOWER(a.TaskDescription))>0 THEN 'IDS' END as Item_NotFH8, -- IDS(未完成) -->1.不分國家, 2.管制事項:「IDS」該項, 3.完成日為空白, 4.事務到期日落在該月份
CASE WHEN CHARINDEX('繳費領證', a.TaskDescription)>0 THEN '繳費領證' END as Item_NotFH9, -- 繳費領證(未完成) -->1.不分國家, 2.管制事項:「繳費領證」該項, 3.完成日為空白, 4.事務到期日落在該月份
CASE WHEN (a.AttorneyDueDate='' or a.AttorneyDueDate is null) THEN '' ELSE Convert(varchar(7),a.AttorneyDueDate,126) END as YM_AD, a.*
into #tmpTodos5_3All
FROM #tmpTodosAll a
WHERE ((a.AttorneyDueDate between @p_StartDate AND @p_EndDate ) AND (a.finishedDate='' or a.finishedDate is null))
AND (CHARINDEX('完成初稿',a.TaskDescription)>0 OR CHARINDEX('提出報告',a.TaskDescription)>0 OR CHARINDEX('提出报告',a.TaskDescription)>0 OR
CHARINDEX('rce', LOWER(a.TaskDescription))>0 OR CHARINDEX('ids', LOWER(a.TaskDescription))>0 OR CHARINDEX('繳費領證', a.TaskDescription)>0 OR
CHARINDEX('核駁報導', a.TaskDescription)>0 )
;
select CAST(Item_NotFH1 as varCHAR(20)) as Item_NotFH, a.* into #tmpTodos5_3 from #tmpTodos5_3All a where Item_NotFH1<>'';
Insert into #tmpTodos5_3
select Item_NotFH2 as Item_NotFH, a.* from #tmpTodos5_3All a where Item_NotFH2<>''
Union select Item_NotFH3 as Item_NotFH, a.* from #tmpTodos5_3All a where Item_NotFH3<>''
Union select Item_NotFH4 as Item_NotFH, a.* from #tmpTodos5_3All a where Item_NotFH4<>''
Union select Item_NotFH5 as Item_NotFH, a.* from #tmpTodos5_3All a where Item_NotFH5<>''
Union select Item_NotFH6 as Item_NotFH, a.* from #tmpTodos5_3All a where Item_NotFH6<>''
Union select Item_NotFH7 as Item_NotFH, a.* from #tmpTodos5_3All a where Item_NotFH7<>''
Union select Item_NotFH8 as Item_NotFH, a.* from #tmpTodos5_3All a where Item_NotFH8<>''
Union select Item_NotFH9 as Item_NotFH, a.* from #tmpTodos5_3All a where Item_NotFH9<>''
Union select Item_NotFH51 as Item_NotFH, a.* from #tmpTodos5_3All a where Item_NotFH51<>''
Union select Item_NotFH61 as Item_NotFH, a.* from #tmpTodos5_3All a where Item_NotFH61<>'';
print('8:'+convert(varchar(20),getdate(),126))
--print(convert(varchar(20),getdate(),126))
-- ALTER TABLE tmpTodos5_3 ADD INDEX(`CaseNo`);
--*/
;
-- 6.結果
DECLARE @SqlString varchar(max)= '', @SqlJoinString varchar(max)= '', @CommonString varchar(max)= '', @CommonStringJoin1 varchar(max)= '', @CommonStringJoin2 varchar(max)= '',
@CommonStringJoin3 varchar(max)= '', @CommonStringJoin4 varchar(max)= '', @SortString varchar(500)= '', @cnt tinyint= 1, @cntT varchar(3)= '', @cntO varchar(3)= '',
@groupcase1 varchar(200)= '', @groupcase2 varchar(200)= '', @groupcase3 varchar(200)= '', @groupcase4 varchar(200)= '', @groupcase varchar(200)= '', @p_YMT_value varchar(7);
WHILE @cnt < 13
BEGIN
SET @cntT = RIGHT(REPLICATE('0', 2) + CAST(@cnt AS varchar), 2); -- 補零
SET @cntO = CAST(@cnt AS varchar);
SET @p_YMT_value =
(
SELECT Value
FROM #p_YMT
WHERE id = @cntO
);
if @p_YMT_value is not null
BEGIN
SET @CommonString = @CommonString + 'CASE WHEN ''' + @p_EndDateYM + ''' >= ''' + @p_YMT_value + ''' THEN 1 ELSE 0 END v' + @cntT + ',STUFF ((SELECT distinct '','' + (CASE WHEN attr_IN' + @cntT
+ '<>'''' THEN attr_IN' + @cntT + ' END) @groupcase FOR XML PATH('''')), 1, 1, N'''') as attr_IN' + @cntT + '_todos2, SUM(Isnull(IN' + @cntT + ',0)) as ''新進_' + @cntT
+ ''', STUFF ((SELECT distinct '','' + (CASE WHEN attr_FH' + @cntT + '<>'''' THEN attr_FH' + @cntT + ' END) @groupcase FOR XML PATH('''')), 1, 1, N'''') as attr_FH'
+ @cntT + '_todos2, SUM(Isnull(FH' + @cntT + ',0)) as ''完成_' + @cntT + ''',';
SET @CommonStringJoin1 = @CommonStringJoin1 + 'SUM(CASE WHEN YM_cr= ''' + @p_YMT_value + ''' THEN 1 ELSE 0 END) as IN' + @cntT + ',STUFF ((SELECT distinct '','' + (CASE WHEN p.YM_cr= ''' + @p_YMT_value + ''' THEN FlowKey END) @groupcase FOR XML PATH('''')), 1, 1, N'''') as attr_IN' + @cntT + ',' + ' 0 as FH' + @cntT + ', '''' as attr_FH' + @cntT + ',';
SET @CommonStringJoin2 = @CommonStringJoin2 + 'SUM(CASE WHEN YM_ST=''' + @p_YMT_value + ''' THEN 1 ELSE 0 END) as IN' + @cntT + ',STUFF ((SELECT distinct '','' + (CASE WHEN YM_ST= ''' + @p_YMT_value + ''' THEN FlowKey END) @groupcase FOR XML PATH('''')), 1, 1, N'''') as attr_IN' + @cntT + ',' + ' 0 as FH' + @cntT + ', '''' as attr_FH' + @cntT + ',';
SET @CommonStringJoin3 = @CommonStringJoin3 + '0 as IN' + @cntT + ', '''' as attr_IN' + @cntT + ',' + 'SUM(CASE WHEN YM_FH= ''' + @p_YMT_value + ''' THEN 1 ELSE 0 END) as FH' + @cntT + ', STUFF ((SELECT distinct '','' + (CASE WHEN YM_FH= ''' + @p_YMT_value + ''' THEN FlowKey END) @groupcase FOR XML PATH('''')), 1, 1, N'''') as attr_FH' + @cntT + ',';
SET @CommonStringJoin4 = @CommonStringJoin4 + '0 as IN' + @cntT + ', '''' as attr_IN' + @cntT + ',' + '0 as FH' + @cntT + ', '''' as attr_FH' + @cntT + ', ';
END
SET @cnt = @cnt + 1;
END;
SET @CommonString = @CommonString + +'1 as v13, STUFF ((SELECT distinct '','' + (CASE WHEN att_cntNotFH<>'''' THEN att_cntNotFH END) @groupcase FOR XML PATH('''')), 1, 1, N'''') as attr_NotFH_todos2, SUM(isnull(cntNotFH,0)) as 未完成 ';
SET @CommonStringJoin1 = @CommonStringJoin1 + ' 0 as cntNotFH, '''' as att_cntNotFH ';
SET @CommonStringJoin2 = @CommonStringJoin2 + ' 0 as cntNotFH, '''' as att_cntNotFH ';
SET @CommonStringJoin3 = @CommonStringJoin3 + ' 0 as cntNotFH, '''' as att_cntNotFH ';
SET @CommonStringJoin4 = @CommonStringJoin4 + ' COUNT(Item_NotFH) as cntNotFH, STUFF ((SELECT distinct '','' + FlowKey @groupcase FOR XML PATH('''')), 1, 1, N'''') as attr_cntNotFH ';
IF @p_RptType = 'byItem' -- by 項目
BEGIN
SET @groupcase = ' from #tmpItem p LEFT JOIN #tmp_SqlJoin q ON p.ItemName=q.ItemIN where p.ItemNo=a.ItemNo and p.ItemName=a.ItemName ';
SET @groupcase1 = ' from #tmpPatC_5 p WHERE p.ItemIN<>'''' and p.ItemIN=a.ItemIN ';
SET @groupcase2 = ' from #tmpTodos5_1 p WHERE p.ItemIN<>'''' and p.ItemIN=a.ItemIN ';
SET @groupcase3 = ' from #tmpTodos5_2 p WHERE p.ItemFH<>'''' and p.ItemFH=a.ItemFH ';
SET @groupcase4 = ' from #tmpTodos5_3 p where p.Item_NotFH<>'''' and p.Item_NotFH=a.Item_NotFH ';
SET @SqlJoinString = @SqlJoinString + ' select a.* into #tmp_SqlJoin from (
SELECT ItemIN, ' + replace(@CommonStringJoin1, '@groupcase', @groupcase1) +',count(Emp_ID) as Emp_ID ' + 'FROM #tmpPatC_5 a WHERE ItemIN<>'''' GROUP BY ItemIN,Emp_ID '
+ 'Union all ' + 'SELECT ItemIN, ' + replace(@CommonStringJoin2, '@groupcase', @groupcase2) +',count(Emp_ID) as Emp_ID ' +'FROM #tmpTodos5_1 a WHERE ItemIN<>'''' GROUP BY ItemIN,Emp_ID '
+ 'Union all ' + 'SELECT ItemFH as ItemIN, ' + replace(@CommonStringJoin3, '@groupcase', @groupcase3) +',count(Emp_ID) as Emp_ID ' + 'FROM #tmpTodos5_2 a WHERE ItemFH<>'''' GROUP BY ItemFH,Emp_ID '
+ 'Union all ' + 'SELECT Item_NotFH as ItemIN, ' + replace(@CommonStringJoin4, '@groupcase', @groupcase4) +',count(Emp_ID) as Emp_ID ' +'FROM #tmpTodos5_3 a where Item_NotFH<>'''' GROUP BY Item_NotFH,Emp_ID ) a order by ItemIN';
--select cast(@SqlJoinString as varchar(max)); --debug query
--Exec (@SqlJoinString+' ; select * from #tmp_SqlJoin ');
SET @SqlString = @SqlString + @SqlJoinString + ' ;';
SET @SqlString = @SqlString + 'SELECT a.ItemName as attr_ItemName, a.ItemName as 項目, '''' as attr_Emp_ID,'
--+'sum(isnull(Emp_ID,0)) as 人數, '
+ replace(@CommonString, '@groupcase', @groupcase) + ' ' + 'FROM #tmpItem a '
+ 'INNER JOIN #tmp_SqlJoin b ON a.ItemName=b.ItemIN ' + ' GROUP BY a.ItemNo, a.ItemName Order by a.ItemNo ;' ;
END;
ELSE
BEGIN
IF @p_RptType = 'byDept'
BEGIN
-- by 所別
SET @groupcase = ' from #tmpItem p LEFT JOIN #tmp_SqlJoin q ON p.ItemName=q.ItemIN where p.ItemNo=a.ItemNo and p.ItemName=a.ItemName and q.Emp_DS=b.Emp_DS and q.Emp_Sort=b.Emp_Sort ';
SET @groupcase1 = ' from #tmpPatC_5 p WHERE p.ItemIN<>'''' and p.ItemIN=a.ItemIN and p.Emp_DS=a.Emp_DS and p.Emp_Sort=a.Emp_Sort ';
SET @groupcase2 = ' from #tmpTodos5_1 p WHERE p.ItemIN<>'''' and p.ItemIN=a.ItemIN and p.Emp_DS=a.Emp_DS and p.Emp_Sort=a.Emp_Sort ';
SET @groupcase3 = ' from #tmpTodos5_2 p WHERE p.ItemFH<>'''' and p.ItemFH=a.ItemFH and p.Emp_DS=a.Emp_DS and p.Emp_Sort=a.Emp_Sort ';
SET @groupcase4 = ' from #tmpTodos5_3 p where p.Item_NotFH<>'''' and p.Item_NotFH=a.Item_NotFH and p.Emp_DS=a.Emp_DS and p.Emp_Sort=a.Emp_Sort ';
SET @SqlJoinString = @SqlJoinString + 'select a.* into #tmp_SqlJoin from (
SELECT ItemIN, Emp_DS, Emp_Sort,' + replace(@CommonStringJoin1, '@groupcase', @groupcase1) +',count(Emp_ID) as Emp_ID ' +'FROM #tmpPatC_5 a WHERE ItemIN<>'''' GROUP BY ItemIN, Emp_DS, Emp_Sort,Emp_ID '
+ 'Union all ' + 'SELECT ItemIN, Emp_DS, Emp_Sort,' + replace(@CommonStringJoin2, '@groupcase', @groupcase2) + ',count(Emp_ID) as Emp_ID ' +'FROM #tmpTodos5_1 a WHERE ItemIN<>'''' GROUP BY ItemIN, Emp_DS, Emp_Sort ,Emp_ID '
+ 'Union all ' + 'SELECT ItemFH as ItemIN, Emp_DS, Emp_Sort, ' + replace(@CommonStringJoin3, '@groupcase', @groupcase3) +',count(Emp_ID) as Emp_ID ' + 'FROM #tmpTodos5_2 a WHERE ItemFH<>'''' GROUP BY ItemFH, Emp_DS, Emp_Sort,Emp_ID '
+ 'Union all ' + 'SELECT Item_NotFH as ItemIN, Emp_DS, Emp_Sort, ' + replace(@CommonStringJoin4, '@groupcase', @groupcase4) +',count(Emp_ID) as Emp_ID ' + 'FROM #tmpTodos5_3 a where Item_NotFH<>'''' GROUP BY Item_NotFH, Emp_DS, Emp_Sort,Emp_ID ) a order by ItemIN';
--select cast(@SqlJoinString as varchar(max)); --debug query
--Exec (@SqlJoinString+' ; select * from #tmp_SqlJoin ');
SET @SqlString = @SqlString + @SqlJoinString + ' ;';
--SET @SqlString = @SqlString + 'SELECT a.ItemName as attr_ItemName, a.ItemName as 項目, Emp_DS as attr_Emp_DS, ISNULL(Emp_DS,''未指定所別'') as 所別, ' + replace(@CommonString, '@groupcase', @groupcase)
SET @SqlString = @SqlString + 'SELECT a.ItemName as attr_ItemName, a.ItemName as 項目, Emp_DS as attr_Emp_DS,case when ISNULL(Emp_DS,'''')='''' Then ''未指定所別'' Else Emp_DS END as 所別,'''' as attr_Emp_ID,'
--+'sum(isnull(Emp_ID,0)) as 人數, '
+ replace(@CommonString, '@groupcase', @groupcase)
+ ' ' + 'FROM #tmpItem a ' + 'INNER JOIN #tmp_SqlJoin b ON a.ItemName=b.ItemIN ' + ' GROUP BY a.ItemNo, a.ItemName, Emp_DS ,Emp_Sort
Order by a.ItemNo, CASE Emp_DS WHEN ''台北所'' then 10 WHEN ''台中所'' THEN 20 WHEN ''高雄所''
THEN 30 WHEN ''上海所'' THEN 40 WHEN ''深圳所'' THEN 50 WHEN
''武漢所'' THEN 60 WHEN ''蘇州所'' THEN 70 WHEN ''外包人員'' THEN 80 WHEN ''小計'' THEN 999 ELSE 990 END, Emp_Sort ; ' ;
END;
ELSE
BEGIN
IF @p_RptType = 'byDS'
BEGIN
-- by 部別
SET @groupcase = ' from #tmpItem p LEFT JOIN #tmp_SqlJoin q ON p.ItemName=q.ItemIN where p.ItemNo=a.ItemNo and p.ItemName=a.ItemName and q.Emp_Item=b.Emp_Item and q.Emp_DS=b.Emp_DS ';
SET @groupcase1 = ' from #tmpPatC_5 p WHERE p.ItemIN<>'''' and p.ItemIN=a.ItemIN and p.Emp_DS=a.Emp_DS and p.Emp_Item=a.Emp_Item and p.Emp_Itemnum=a.Emp_Itemnum ';
SET @groupcase2 = ' from #tmpTodos5_1 p WHERE p.ItemIN<>'''' and p.ItemIN=a.ItemIN and p.Emp_DS=a.Emp_DS and p.Emp_Item=a.Emp_Item and p.Emp_Itemnum=a.Emp_Itemnum ';
SET @groupcase3 = ' from #tmpTodos5_2 p WHERE p.ItemFH<>'''' and p.ItemFH=a.ItemFH and p.Emp_DS=a.Emp_DS and p.Emp_Item=a.Emp_Item and p.Emp_Itemnum=a.Emp_Itemnum ';
SET @groupcase4 = ' from #tmpTodos5_3 p where p.Item_NotFH<>'''' and p.Item_NotFH=a.Item_NotFH and p.Emp_DS=a.Emp_DS and p.Emp_Item=a.Emp_Item and p.Emp_Itemnum=a.Emp_Itemnum ';
SET @SqlJoinString = @SqlJoinString + 'select a.* into #tmp_SqlJoin from (
SELECT ItemIN, Emp_DS, Emp_Item,Emp_Itemnum , ' + replace(@CommonStringJoin1, '@groupcase', @groupcase1) +',count(a.Emp_ID) as Emp_ID ' + 'FROM #tmpPatC_5 a WHERE ItemIN<>'''' GROUP BY ItemIN, Emp_DS, Emp_Item ,Emp_Itemnum,Emp_ID '
+ 'Union all ' + 'SELECT ItemIN, Emp_DS, Emp_Item,Emp_Itemnum , ' + replace(@CommonStringJoin2, '@groupcase', @groupcase2) +',count(a.Emp_ID) as Emp_ID ' + 'FROM #tmpTodos5_1 a WHERE ItemIN<>'''' GROUP BY ItemIN, Emp_DS, Emp_Item ,Emp_Itemnum,Emp_ID '
+ 'Union all ' + 'SELECT ItemFH as ItemIN,Emp_DS, Emp_Item,Emp_Itemnum , ' + replace(@CommonStringJoin3, '@groupcase', @groupcase3) +',count(a.Emp_ID) as Emp_ID ' + 'FROM #tmpTodos5_2 a WHERE ItemFH<>'''' GROUP BY ItemFH, Emp_DS, Emp_Item,Emp_Itemnum,Emp_ID '
+ 'Union all ' + 'SELECT Item_NotFH as ItemIN, Emp_DS,Emp_Item,Emp_Itemnum , ' + replace(@CommonStringJoin4, '@groupcase', @groupcase4) +',count(a.Emp_ID) as Emp_ID ' + 'FROM #tmpTodos5_3 a where Item_NotFH<>'''' GROUP BY Item_NotFH, Emp_DS, Emp_Item,Emp_Itemnum,Emp_ID ) a order by ItemIN';
--select cast(@SqlJoinString as varchar(max)); --debug query
--Exec (@SqlJoinString+' ; select * from tmp_SqlJoin ');
--Exec (@SqlJoinString+' ; ');
SET @SqlString = @SqlString + @SqlJoinString + ' ;';
SET @SqlString = @SqlString + 'SELECT a.ItemName as attr_ItemName, a.ItemName as 項目, Emp_DS as attr_Emp_DS, case when ISNULL(Emp_DS,'''')='''' Then ''未指定所別'' Else Emp_DS END as 所別, Emp_Item as attr_Emp_Item, ISNULL(Emp_Item,'''') as 部別,'''' as attr_Emp_ID,'
--+'sum(isnull(Emp_ID,0)) as 人數, '
+ replace(@CommonString, '@groupcase', @groupcase) + ' ' + 'FROM #tmpItem a ' + 'INNER JOIN #tmp_SqlJoin b ON a.ItemName=b.ItemIN ' + ' GROUP BY a.ItemNo, a.ItemName, Emp_Item,Emp_DS
Order by a.ItemNo, CASE Emp_DS WHEN ''台北所'' then 10 WHEN ''台中所'' THEN 20 WHEN ''高雄所''
THEN 30 WHEN ''上海所'' THEN 40 WHEN ''深圳所'' THEN 50 WHEN
''武漢所'' THEN 60 WHEN ''蘇州所'' THEN 70 WHEN ''外包人員'' THEN 80 WHEN ''小計'' THEN 999 ELSE 990 END ; ';
END;
END;
END;
print('9:'+convert(varchar(20),getdate(),126))
EXEC (@SqlString+' ;IF OBJECT_ID(''tempdb..#tmp_SqlJoin'', ''U'') IS NOT NULL DROP TABLE #tmp_SqlJoin; ');
--SELECT CAST(@SqlString AS VARCHAR(MAX)); --debug query
print('10:'+convert(varchar(20),getdate(),126))
IF OBJECT_ID('tempdb..#tmpTodosAll_1', 'U') IS NOT NULL DROP TABLE #tmpTodosAll_1
IF OBJECT_ID('tempdb..#tmpPatC_5All_1', 'U') IS NOT NULL DROP TABLE #tmpPatC_5All_1
IF OBJECT_ID('tempdb..#tmpTodosAll', 'U') IS NOT NULL DROP TABLE #tmpTodosAll
IF OBJECT_ID('tempdb..#p_YMT', 'U') IS NOT NULL DROP TABLE #p_YMT
IF OBJECT_ID('tempdb..#tb_Split2', 'U') IS NOT NULL DROP TABLE #tb_Split2
IF OBJECT_ID('tempdb..#tmpItem', 'U') IS NOT NULL DROP TABLE #tmpItem
IF OBJECT_ID('tempdb..#tmpEmp', 'U') IS NOT NULL DROP TABLE #tmpEmp
IF OBJECT_ID('tempdb..#tmpPatC_5All', 'U') IS NOT NULL DROP TABLE #tmpPatC_5All
IF OBJECT_ID('tempdb..#tmpTodosAll_3', 'U') IS NOT NULL DROP TABLE #tmpTodosAll_3
IF OBJECT_ID('tempdb..#tmpPatC_5', 'U') IS NOT NULL DROP TABLE #tmpPatC_5
IF OBJECT_ID('tempdb..#tmpTodos5TDList', 'U') IS NOT NULL DROP TABLE #tmpTodos5TDList
IF OBJECT_ID('tempdb..#tmpTodos5_1All', 'U') IS NOT NULL DROP TABLE #tmpTodos5_1All
IF OBJECT_ID('tempdb..#tmpTodos5_1', 'U') IS NOT NULL DROP TABLE #tmpTodos5_1
IF OBJECT_ID('tempdb..#tmpTodos5_2All', 'U') IS NOT NULL DROP TABLE #tmpTodos5_2All
IF OBJECT_ID('tempdb..#tmpTodos5_2', 'U') IS NOT NULL DROP TABLE #tmpTodos5_2
IF OBJECT_ID('tempdb..#tmpTodos5_3All', 'U') IS NOT NULL DROP TABLE #tmpTodos5_3All
IF OBJECT_ID('tempdb..#tmpTodos5_3', 'U') IS NOT NULL DROP TABLE #tmpTodos5_3
END
GO
--DECLARE @RC int
---- TODO: 在此處設定參數值。
--EXECUTE @RC = [dbo].[rpt_CustCaseTot_YM]
-- @p_YM_F='2020-03'
-- ,@p_YM_T='2020-03'
-- ,@p_RptType='byds' -- byItem ,bydept,byds
-- ,@p_CustName=''
--GO
--rpt_PatentCase_DS123 '2019-12-01','2019-12-31','2';
alter PROCEDURE [dbo].rpt_CustCaseTot_YM_NotFinish (
@p_YM_F varchar(7), -- 區期年月起值
@p_YM_T varchar(7), -- 區期年月迄值
@p_RptType varchar(10), -- 報表類別 RptType = byItem 項目 , byDept 所別, byDS 部別
@p_CustName nvarchar(100)
)
AS
BEGIN
-- 案件統計表by項目, 案件統計表by所別, 案件統計表by部別
-- call rpt_CustCaseTot_YM('201901','201906','byDS','');
Declare @p_EmpItem varchar(1),@Emp_ItemNo varchar(50),@p_StartDate datetime,@p_EndDate datetime;
Declare @p_EndDateYM varchar(7),@i tinyint=1;
set @p_StartDate =Convert(datetime,@p_YM_F+'-01',126) ;
set @p_EndDate =DATEADD(day,-1,DATEADD(month, 1,cast(@p_YM_T+'-01' as datetime))) ;
set @p_EndDateYM=Convert(varchar(7),@p_EndDate,126);
select 99 as id ,Convert(varchar(7),@p_EndDate,126) as value into #p_YMT
WHILE @i < 13
BEGIN
insert into #p_YMT (id,Value)
values(@i,Convert(varchar(7),DATEADD(month,@i-1,@p_StartDate) ,126))
Set @i=@i+1;
END
-- 取得「客戶名稱」的 recordset
SELECT ID as ItemNo,replace(replace(value, char(13),''), char(10),'') as ItemDesc into #tb_Split2 FROM [ufn_split](@p_CustName, ';') ;
-- 取得RPT項目List
SELECT * into #tmpItem FROM (
SELECT 1 as ItemNo, 'CN 查新' as ItemName union SELECT 2, 'CN 新申請' union SELECT 3, 'PCT 新申請' union
SELECT 4, 'US 新申請' union SELECT 5, 'KR 新申請' union SELECT 6, 'JP 新申請' union SELECT 7, 'EA 新申請' union SELECT 8, 'EU 新申請' union
SELECT 9, 'IN 新申請' union SELECT 10, 'TW 新申請' union SELECT 11, 'DE 新申請' union SELECT 12, 'GB 新申請' union SELECT 13, 'RU 新申請' union
SELECT 41, 'CN OA' union SELECT 42, 'TW OA' union SELECT 43, 'US OA' union SELECT 45, 'KR OA' union SELECT 46, 'JP OA' union
SELECT 47, 'EA OA' union SELECT 48, 'DE OA' union SELECT 49, 'EU OA' union SELECT 50, 'GB OA' union SELECT 51, 'RU OA' union
SELECT 52, 'RCE' union SELECT 53, 'IDS' union SELECT 54, '繳費領證' union SELECT 99, '總計') a;
-- 第二部, 客戶名稱不會只有「华星」, 第一部, 客戶名稱只會有「华星」
insert #tmpItem
SELECT * FROM (
SELECT 61 as ItemNo, 'CN OA-核駁' as ItemName union SELECT 62, 'TW OA-核駁' union SELECT 63, 'US OA-核駁' union SELECT 65, 'KR OA-核駁' union SELECT 66, 'JP OA-核駁' union
SELECT 67, 'EA OA-核駁' union SELECT 68, 'DE OA-核駁' union SELECT 69, 'EU OA-核駁' union SELECT 70, 'GB OA-核駁' union SELECT 71, 'RU OA-核駁'
) a WHERE @p_CustName<>'华星' AND (SELECT COUNT(*) FROM #tb_Split2) >=1;
-- 員工部別 (因該員工會多部別, 放在Emp_DS2裡, 所以要distinct )
SELECT distinct a.user_name as Emp_ID, cn_name as Emp_Name, a.Emp_DS, a.Emp_DSNum, a.Emp_Item, a.Emp_ItemNum, 0 as Emp_Sort ,a.user_id
--, emp_N1, Emp_N2, Emp_N3
into #tmpEmp
FROM [dbo].[evw_Employee] a
-- 1.取得: ToDos
print('1:'+convert(varchar(20),getdate(),126))
;with tmpTodosAll_1 as(
select sn,proc_id,CaseType,CaseType_Name,CaseNo,TaskDescription,StartDate2,AttorneyDueDate,FinishedDate,AssignedTo_userid,
b.Emp_ID as AssignedTo,b.Emp_Name as AssignedTo_Name,Points,ExchangeRate,Matter,Matter_Name,PatentType,PatentType_Name,ToDosStatus,ToDosStatus_Name,
case_id,b.*
from evw_esn_todos a
inner join #tmpEmp b on a.AssignedTo_userid=b.user_id
where (a.StartDate2 between @p_StartDate AND @p_EndDate) OR -- 起始日
(a.FinishedDate between @p_StartDate AND @p_EndDate) OR -- 完成日
(a.AttorneyDueDate between @p_StartDate AND @p_EndDate)
AND a.PatentType IN ('PN01', 'PN02', 'PN03','PN07')
)
SELECT a.* , case when ics.case_status_zh_tw='撰稿中' THEN 'Y' END as PctNationalPhase,p.country_id as office,Cast(a.sn as varchar(20)) as Flowkey
,(select value from [ufn_split](a.CaseNo,'-') u where u.ID=2) as CaseNo_r
,p.customer_name as Client_CompanyName,ics.case_status_zh_tw as Status_Name
into #tmpTodosAll
FROM tmpTodosAll_1 a
inner join [evw_p_case_info] p on p.case_id=a.case_id
inner join #tb_Split2 s on p.customer_name like s.ItemDesc +'%'
left join i_case_status ics on ics.case_status_id=p.case_status_id
;
print('2:'+convert(varchar(20),getdate(),126))
; -- ALTER TABLE tmpTodosAll ADD INDEX(`CaseNo`);
-- 2.取得:「未完成」資料
SELECT CASE WHEN LEFT(a.CaseNo_r,1)='M'
AND (CHARINDEX('提出報告',a.TaskDescription)>0 OR CHARINDEX('提出报告',a.TaskDescription)>0) THEN 'CN 查新' END as Item_NotFH1, -- CN 查新(未完成) -->1.客戶名稱為華星, 2.案件編號有-M, 3.管制事項:完成初稿, 4.完成日為空白, 5.事務所到期日落在該月份
CASE WHEN a.Office='CN' AND a.PatentType IN ('PN01', 'PN02', 'PN03') AND a.TaskDescription='完成初稿' THEN 'CN 新申請' END as Item_NotFH2, -- CN 新申請(未完成) -->1.國家為CN, 2.案件類別: PN01, PN02, PN03, 3.管制事項:完成初稿(只有這4個字), 4.案件狀態:撰稿(RS01), 5.完成日為空白, 6.事務到期日落在該月份
CASE WHEN a.Office='WO' AND a.PatentType IN ('PN01','PN07') AND a.TaskDescription='完成初稿' THEN 'PCT 新申請' END as Item_NotFH3, -- PCT 新申請(未完成)-->1.國家為PCT, 2.案件類別: PN01, PN07, 3.管制事項:完成初稿(只有這4個字), 4.案件狀態:撰稿(RS01), 5.完成日為空白, 6.事務到期日落在該月份
CASE WHEN a.Office NOT IN ('CN','WO') AND a.PatentType='PN01' AND a.PctNationalPhase='Y' AND a.TaskDescription='完成初稿' THEN a.Office+' 新申請' END as Item_NotFH4, -- XX 新申請(未完成) -->1.國家為XX, 2.案件類別: PN01 , 3.是 PCT國家階段, 4.管制事項:完成初稿(只有這4個字), 5.案件狀態:撰稿(RS01), 5.完成日為空白, 6.事務到期日落在該月份
CASE WHEN CHARINDEX('完成初稿',a.TaskDescription)>0 THEN 'CN OA' END as Item_NotFH5, -- CN OA(未完成) -->1.國家為CN, 2.管制事項:完成初稿(都含), 3.案件狀態:答辯中-撰稿(RS05.1), 4.完成日為空白, 5.事務到期日落在該月份
CASE WHEN a.TaskDescription='完成初稿' AND a.Office NOT IN('CN','WO') THEN a.Office+' OA' END as Item_NotFH6, -- XX OA(未完成) -->1.國家為XX, 2.管制事項:完成初稿(只有這4個字), 3.案件狀態:答辯中(RS05), 4.完成日為空白, 5.事務到期日落在該月份
CASE WHEN CHARINDEX('rce', LOWER(a.TaskDescription))>0 THEN 'RCE' END as Item_NotFH7, -- RCE(未完成) -->1.不分國家, 2.管制事項有「RCE」該項, 3.管制事項:完成初稿(只有這4個字), 4.完成日為空白, 5.事務到期日落在該月份
CASE WHEN CHARINDEX('ids', LOWER(a.TaskDescription))>0 THEN 'IDS' END as Item_NotFH8, -- IDS(未完成) -->1.不分國家, 2.管制事項有「IDS」該項, 3.管制事項:完成初稿(只有這4個字), 4.完成日為空白, 5.事務到期日落在該月份
CASE WHEN CHARINDEX('繳費領證', a.TaskDescription)>0 THEN '繳費領證' END as Item_NotFH9, -- 繳費領證(未完成) -->1.不分國家, 2.管制事項有「繳費領證」該項, 3.管制事項:完成初稿(只有這4個字), 4.完成日為空白, 5.事務到期日落在該月份
CASE WHEN CHARINDEX('核駁報導',a.TaskDescription)>0 THEN 'CN OA-核駁' END as Item_NotFH15, -- CN OA-核駁(未完成) -->1.國家為CN, 2.管制事項:核駁報導(都含), 3.案件狀態:答辯中-撰稿(RS05.1), 4.完成日為空白, 5.事務到期日落在該月份
CASE WHEN a.TaskDescription='核駁報導' AND a.Office NOT IN('CN','WO') THEN a.Office+' OA-核駁' END as Item_NotFH16, -- XX OA-核駁(未完成) -->1.國家為XX, 2.管制事項:核駁報導(只有這4個字), 3.案件狀態:答辯中(RS05), 4.完成日為空白, 5.事務到期日落在該月份
a.FlowKey, a.CaseNo, a.PctNationalPhase, a.AttorneyDueDate, a.FinishedDate, getdate() as sysDate,
CASE WHEN a.AttorneyDueDate='' THEN '' ELSE Convert(varchar(7),a.AttorneyDueDate,126) END as YM_AD,
CASE WHEN (a.FinishedDate between @p_StartDate AND @p_EndDate) THEN Convert(varchar(7),a.FinishedDate,126) ELSE '' END as YM_FH,
--CASE WHEN FinishedDate=''or FinishedDate is null THEN getdate() ELSE FinishedDate END as FinishedDate2,
a.StartDate2,
CASE WHEN a.AttorneyDueDate<>'' THEN DATEDIFF(day,getdate(),AttorneyDueDate) ELSE 0 END as NotFH_Days,
a.AssignedTo, a.AssignedTo_Name--, a.AssignedTo_DeptID, a.AssignedTo_DeptName, a.Matter, a.MatterName, a.Attorney, a.Attorney_Nationality, a.Office, a.Office_Name, a.Client, a.CaseType, a.CaseType_Desc
, a.Emp_ID, a.Emp_DS, a.Emp_DSNum, a.Emp_Item, a.Emp_Sort,
CASE WHEN a.AssignedTo='' THEN '未指定承辦人' ELSE AssignedTo_Name END as AssignedTo_Name2, a.TaskDescription, a.PatentType, PatentType_Name
, a.ToDosStatus, a.ToDosStatus_Name , a.Client_CompanyName
,ISNULL(b.CaseLevel,'') as CaseLevel, ISNULL(b.CaseLevelDesc,'') as CaseLevelDesc, ISNULL(c.IsPriority,'') as IsPriority, ISNULL(c.IsPriorityDesc,'') as IsPriorityDesc
into #tmpTodos6_3All
FROM #tmpTodosAll a
left join evw_qresult_CaseLevel b on a.CaseNo=b.CaseNo
left join evw_qresult_caseispriority c on a.CaseNo=c.CaseNo
;
print('3:'+convert(varchar(20),getdate(),126))
select * into #tmpTodos6_3 from (
select CAST(Item_NotFH1 as CHAR(20)) as Item_NotFH, a.* from #tmpTodos6_3All a where Item_NotFH1<>''
union
select Item_NotFH2 as Item_NotFH, a.* from #tmpTodos6_3All a where Item_NotFH2<>''
union
select Item_NotFH3 as Item_NotFH, a.* from #tmpTodos6_3All a where Item_NotFH3<>''
union
select Item_NotFH4 as Item_NotFH, a.* from #tmpTodos6_3All a where Item_NotFH4<>''
union
select Item_NotFH5 as Item_NotFH, a.* from #tmpTodos6_3All a where Item_NotFH5<>''
union
select Item_NotFH6 as Item_NotFH, a.* from #tmpTodos6_3All a where Item_NotFH6<>''
union
select Item_NotFH7 as Item_NotFH, a.* from #tmpTodos6_3All a where Item_NotFH7<>''
union
select Item_NotFH8 as Item_NotFH, a.* from #tmpTodos6_3All a where Item_NotFH8<>''
union
select Item_NotFH8 as Item_NotFH, a.* from #tmpTodos6_3All a where Item_NotFH9<>''
union
select Item_NotFH15 as Item_NotFH, a.* from #tmpTodos6_3All a where Item_NotFH15<>''
union
select Item_NotFH16 as Item_NotFH, a.* from #tmpTodos6_3All a where Item_NotFH16<>''
) a;
print('4:'+convert(varchar(20),getdate(),126))
-- ALTER TABLE tmpTodos6_3 ADD INDEX(`CaseNo`);
--select * from #tmpTodosAll
--select * from #tmpTodos6_3All
--select * from #tmpTodos6_3
-- 3.暫存檔
-- 3-1.新增項目之重要案件小計列暫存檔
SELECT Item_NotFH, AssignedTo_Name2, emp_DS, Emp_Item, emp_Sort, YM_AD, AttorneyDueDate, sysDate, FlowKey
into #tmpTodos6_Levelsum
FROM #tmpTodos6_3 WHERE (CaseLevel='1' OR IsPriority='Y'); -- CaseLevel=專利等級: 1=重要專利, 2=常規專利, IsPriority=是否優先處理: Y=是
if not exists(select * FROM #tmpTodos6_Levelsum where Item_NotFH='CN 查新')
begin
insert #tmpTodos6_Levelsum SELECT 'CN 查新' as Item_NotFH, '' as AssignedTo_Name2, '' as emp_DS, '' as Emp_Item, '' as emp_Sort, '' as YM_AD, '' as AttorneyDueDate, '' as sysDate, '' as FlowKey;
end ;
--SELECT * FROM tmpTodos6_3 WHERE (CaseLevel='1' OR IsPriority='Y'); -- CaseLevel=專利等級: 1=重要專利, 2=常規專利, IsPriority=是否優先處理: Y=是
-- 3-2.新增項目小計列暫存檔
--DROP TEMPORARY TABLE IF EXISTS tmpTodos6_4sum;
--CREATE TEMPORARY TABLE tmpTodos6_4sum as
--SELECT * FROM tmpTodos6_3;
-- 3-3.新增總計列暫存檔
--DROP TEMPORARY TABLE IF EXISTS tmpTodos6_4tot;
--CREATE TEMPORARY TABLE tmpTodos6_4tot as
--SELECT * FROM tmpTodos6_3;
-- 5.結果
declare @SqlString varchar(max)='',@SqlJoinString varchar(max)='',@CommonString varchar(max)='',@CommonStringJoin1 varchar(max)=''
,@CommonStringJoin2 varchar(max)='',@CommonStringJoin3 varchar(max)='',@CommonStringJoin4 varchar(max)='',@SortString varchar(500)='', @cnt tinyint=1,@cntT varchar(3)='',@cntO varchar(3)=''
,@groupcase1 varchar(200)='',@groupcase2 varchar(200)='',@groupcase3 varchar(200)='',@groupcase4 varchar(200)='',@groupcase varchar(200)='',@p_YMT_value varchar(7);
WHILE @cnt < 13
BEGIN
Set @cntT= RIGHT(REPLICATE('0',2) + CAST(@cnt as varchar),2); -- 補零
Set @cntO= CAST(@cnt as varchar);
Set @p_YMT_value= (select Value from #p_YMT where id=@cntO) ;
set @CommonString=@CommonString
+'CASE WHEN '''+@p_EndDateYM+''' >= '''+@p_YMT_value+''' THEN 1 ELSE 0 END v'+@cntT
+',STUFF ((SELECT distinct '','' + (CASE WHEN attr_NotFN'+@cntT+'<>'''' THEN attr_NotFN'+@cntT+' END) @groupcase FOR XML PATH('''')), 1, 1, N'''') as attr_NotFN'+@cntT+'_todos2, SUM(ISNULL(NotFN'+@cntT+',0)) as 逾期_'+@cntT
+', STUFF ((SELECT distinct '','' + (CASE WHEN attr_YesFN'+@cntT+'<>'''' THEN attr_YesFN'+@cntT+' END) @groupcase FOR XML PATH('''')), 1, 1, N'''') as attr_YesFN'+@cntT+'_todos2, SUM(ISNULL(YesFN'+@cntT+',0)) as 未逾期_'+@cntT+','
Set @CommonStringJoin1=@CommonStringJoin1
+ 'STUFF ((SELECT distinct '','' + (CASE WHEN YM_AD= '''+@p_YMT_value+''' AND AttorneyDueDate < sysDate THEN FlowKey END) @groupcase FOR XML PATH('''')), 1, 1, N'''') as attr_NotFN'+@cntT
+', SUM(CASE WHEN (YM_AD='''+@p_YMT_value+''' AND AttorneyDueDate < sysDate) THEN 1 ELSE 0 END) as NotFN'+@cntT
+',STUFF ((SELECT distinct '','' + (CASE WHEN YM_AD= '''+@p_YMT_value+''' AND AttorneyDueDate >= sysDate THEN FlowKey END) @groupcase FOR XML PATH('''')), 1, 1, N'''') as attr_YesFN'+@cntT
+', SUM(CASE WHEN (YM_AD='''+@p_YMT_value+''' AND AttorneyDueDate >= sysDate) THEN 1 ELSE 0 END) as YesFN'+@cntT+',';
SET @cnt = @cnt + 1;
END
set @CommonString=@CommonString +'1 as v13, STUFF ((SELECT distinct '','' + (CASE WHEN attr_sum<>'''' THEN attr_sum END) @groupcase FOR XML PATH('''')), 1, 1, N'''') as attr_sum_todos2,SUM(ISNULL(FNSUM,0)) as 小計 ';
Set @CommonStringJoin1=@CommonStringJoin1+'STUFF ((SELECT distinct '','' + FlowKey @groupcase FOR XML PATH('''')), 1, 1, N'''') as attr_sum, COUNT(distinct FlowKey) as FNSUM ';
Set @CommonStringJoin2=replace(@CommonStringJoin1,' COUNT(distinct FlowKey)','SUM(CASE WHEN ISNULL(FlowKey,'''')<>'''' THEN 1 ELSE 0 END)');
Set @CommonStringJoin3=@CommonStringJoin1;
Set @CommonStringJoin4=@CommonStringJoin1;
IF @p_RptType='byDS'
BEGIN
-- 5-1.byDS 部別
Set @groupcase=' from #tmp_SqlJoin p where a.ItemName=p.Item_NotFH and b.Emp_Item=p.Emp_Item and b.emp_DS=p.emp_DS '
--Set @groupcase1=' from #tmpTodos6_3 p WHERE p.Item_NotFH<>'''' and p.Item_NotFH=a.Item_NotFH and p.AssignedTo=a.AssignedTo and p.emp_DSNum=a.emp_DSNum and p.emp_DS=a.emp_DS and p.Emp_Item=a.Emp_Item '
Set @groupcase1=' from #tmpTodos6_3 p WHERE p.Item_NotFH<>'''' and p.Item_NotFH=a.Item_NotFH and p.AssignedTo=a.AssignedTo and p.emp_DS=a.emp_DS and p.emp_DSNum=a.emp_DSNum and p.Emp_Item=a.Emp_Item '
Set @groupcase2=' from #tmpTodos6_Levelsum p WHERE p.Item_NotFH<>'''' and p.Item_NotFH=a.Item_NotFH '
Set @groupcase3=' from #tmpTodos6_3 p WHERE p.Item_NotFH<>'''' and p.Item_NotFH=a.Item_NotFH '
Set @groupcase4=' from #tmpTodos6_3 p where p.Item_NotFH<>'''' '
Set @SqlJoinString=@SqlJoinString+'select a.* into #tmp_SqlJoin from (
SELECT Item_NotFH, AssignedTo+'' ''+AssignedTo_Name as AssignedTo_Name2, emp_DS,
CASE WHEN ISNULL(Emp_Item,'''')='''' THEN ''沒指定部別'' ELSE Emp_Item END as Emp_Item,
CASE WHEN ISNULL(emp_Sort,'''')='''' THEN 666 ELSE emp_Sort END as emp_Sort, ' + replace(@CommonStringJoin1 ,'@groupcase',@groupcase1)
+'FROM #tmpTodos6_3 a where Item_NotFH<>''''
GROUP BY Item_NotFH, AssignedTo, AssignedTo_Name, emp_DS, emp_DSNum, Emp_Item, emp_Sort '
+'Union all '
+'SELECT Item_NotFH, '''' as AssignedTo_Name2, '''' as emp_DS, ''重要小計'' as Emp_Item, 9977 as emp_Sort, ' + replace(@CommonStringJoin2,'@groupcase',@groupcase2)
+'FROM #tmpTodos6_Levelsum a where Item_NotFH<>'''' GROUP BY Item_NotFH '
+'Union all '
+'SELECT Item_NotFH, '''' as AssignedTo_Name2, '''' as emp_DS, ''小計'' as Emp_Item, 9988 as emp_Sort, ' + replace(@CommonStringJoin3 ,'@groupcase',@groupcase3)
+'FROM #tmpTodos6_3 a where Item_NotFH<>'''' GROUP BY Item_NotFH '
+'Union all '
+'SELECT ''總計'' as Item_NotFH, ''總計'' as AssignedTo_Name2, ''總計'' as emp_DS, ''總計'' as Emp_Item, 9999 as emp_Sort, ' + replace(@CommonStringJoin4 ,'@groupcase',@groupcase4)
+'FROM #tmpTodos6_3 a where Item_NotFH<>'''' ) a ' ;
--select cast(@SqlJoinString as varchar(max)); --debug query
SET @SqlString=@SqlString+@SqlJoinString+' ;';
--Exec (@SqlJoinString+' ');
set @SqlString=@SqlString+'SELECT a.ItemName as attr_ItemName, ISNULL(b.Emp_Item,'''') as attr_empcol2, a.ItemName as 項目, ISNULL(b.Emp_Item,'''') as attr_EmpItem, ISNULL(b.Emp_Item,'''') as 部別, '+ replace(@CommonString,'@groupcase',@groupcase) +' '
+'FROM #tmpItem a '
+'INNER JOIN #tmp_SqlJoin b ON a.ItemName=b.Item_NotFH
GROUP BY a.ItemNo, a.ItemName,Emp_Item, Emp_Sort ,emp_DS
Order by a.ItemNo, CASE WHEN RIGHT(Emp_Item,2)=''小計'' THEN 0 ELSE SUM(FNSUM) END DESC , Emp_Sort; '
+'IF OBJECT_ID(''tempdb..#tmp_SqlJoin'', ''U'') IS NOT NULL DROP TABLE #tmp_SqlJoin;'
END
ELSE IF @p_RptType='byDept'
BEGIN
-- 5-2.byDept 所別
Set @groupcase=' from #tmp_SqlJoin p where a.ItemName=p.Item_NotFH and b.Emp_Item=p.Emp_Item and b.emp_DS=p.emp_DS '
Set @groupcase1=' from #tmpTodos6_3 p WHERE p.Item_NotFH<>'''' and p.Item_NotFH=a.Item_NotFH and p.AssignedTo=a.AssignedTo and p.emp_DS=a.emp_DS and p.emp_DSNum=a.emp_DSNum and p.Emp_Item=a.Emp_Item '
Set @groupcase2=' from #tmpTodos6_Levelsum p WHERE p.Item_NotFH<>'''' and p.Item_NotFH=a.Item_NotFH '
Set @groupcase3=' from #tmpTodos6_3 p WHERE p.Item_NotFH<>'''' and p.Item_NotFH=a.Item_NotFH '
Set @groupcase4=' from #tmpTodos6_3 p where p.Item_NotFH<>'''' '
Set @SqlJoinString=@SqlJoinString+'select a.* into #tmp_SqlJoin from (
SELECT Item_NotFH, AssignedTo+'' ''+AssignedTo_Name as AssignedTo_Name2,
CASE WHEN ISNULL(emp_DS,'''')='''' THEN ISNULL(Emp_DS,''沒指定所別'') ELSE emp_DS END as emp_DS, emp_DSNum,
CASE WHEN ISNULL(Emp_Item,'''')='''' THEN ''沒指定部別'' ELSE Emp_Item END as Emp_Item,
CASE WHEN ISNULL(emp_Sort,'''')='''' THEN 666 ELSE emp_Sort END as emp_Sort, ' + replace(@CommonStringJoin1 ,'@groupcase',@groupcase1)
+'FROM #tmpTodos6_3 a where Item_NotFH<>''''
GROUP BY Item_NotFH, AssignedTo, AssignedTo_Name, emp_DS, emp_DSNum, Emp_Item, emp_Sort '
+'Union all '
+'SELECT Item_NotFH, '''' as AssignedTo_Name2, ''重要小計'' as emp_DS, 9977 as emp_DSNum, '''' as Emp_Item, 9977 as emp_Sort , ' + replace(@CommonStringJoin2,'@groupcase',@groupcase2)
+'FROM #tmpTodos6_Levelsum a where Item_NotFH<>'''' GROUP BY Item_NotFH '
+'Union all '
+'SELECT Item_NotFH, '''' as AssignedTo_Name2, ''小計'' as emp_DS, 9988 as emp_DSNum, '''' as Emp_Item, 9988 as emp_Sort, ' + replace(@CommonStringJoin3 ,'@groupcase',@groupcase3)
+'FROM #tmpTodos6_3 a where Item_NotFH<>'''' GROUP BY Item_NotFH '
+'Union all '
+'SELECT ''總計'' as Item_NotFH, ''總計'' as AssignedTo_Name2, ''總計'' as emp_DS, 9988 as emp_DSNum, ''總計'' as Emp_Item, 9999 as emp_Sort, ' + replace(@CommonStringJoin4 ,'@groupcase',@groupcase4)
+'FROM #tmpTodos6_3 a where Item_NotFH<>'''' ) a ' ;
--select cast(@SqlJoinString as varchar(max)); --debug query
SET @SqlString=@SqlString+@SqlJoinString+' ;';
--Exec (@SqlJoinString+' ;');
set @SqlString=@SqlString+'SELECT a.ItemName as attr_ItemName, ISNULL(b.emp_DS,'''') as attr_EmpCol2, a.ItemName as 項目, ISNULL(b.emp_DS,'''') as attr_EmpDS, ISNULL(b.emp_DS,'''') as 所別, '+ replace(@CommonString,'@groupcase',@groupcase) +' '
+'FROM #tmpItem a '
+'INNER JOIN #tmp_SqlJoin b ON a.ItemName=b.Item_NotFH
GROUP BY a.ItemNo, a.ItemName, emp_DS,Emp_DSNum,Emp_Item
Order by a.ItemNo, CASE WHEN RIGHT(emp_DS,2)=''小計'' THEN 0 ELSE SUM(FNSUM) END DESC, Emp_DSNum ; '
+'IF OBJECT_ID(''tempdb..#tmp_SqlJoin'', ''U'') IS NOT NULL DROP TABLE #tmp_SqlJoin;'
END
ELSE IF @p_RptType='byPeople'
BEGIN
-- 5-3.byPeople 人員
Set @groupcase=' from #tmp_SqlJoin p where a.ItemName=p.Item_NotFH and b.AssignedTo_Name2=p.AssignedTo_Name2 and b.Emp_Item=p.Emp_Item and b.emp_DS=p.emp_DS '
Set @groupcase1=' from #tmpTodos6_3 p WHERE p.Item_NotFH<>'''' and p.Item_NotFH=a.Item_NotFH and p.AssignedTo=a.AssignedTo and p.emp_DS=a.emp_DS and p.Emp_Item=a.Emp_Item '
Set @groupcase2=' from #tmpTodos6_Levelsum p WHERE p.Item_NotFH<>'''' and p.Item_NotFH=a.Item_NotFH '
Set @groupcase3=' from #tmpTodos6_3 p WHERE p.Item_NotFH<>'''' and p.Item_NotFH=a.Item_NotFH '
Set @groupcase4=' from #tmpTodos6_3 p where p.Item_NotFH<>'''' '
Set @SqlJoinString=@SqlJoinString+'select a.* into #tmp_SqlJoin from (
SELECT Item_NotFH, CASE WHEN Emp_ID LIKE ''12%'' THEN AssignedTo_Name+''(''+Emp_ID+'')'' ELSE AssignedTo_Name END as AssignedTo_Name2,
CASE WHEN ISNULL(emp_DS,'''')='''' THEN ISNULL(emp_DS,'''') ELSE emp_DS END as emp_DS,
CASE WHEN ISNULL(Emp_Item,'''')='''' THEN ''沒指定部別'' ELSE Emp_Item END as Emp_Item,
CASE WHEN ISNULL(emp_Sort,'''')='''' THEN 666 ELSE emp_Sort END as emp_Sort, ' + replace(@CommonStringJoin1 ,'@groupcase',@groupcase1)
+'FROM #tmpTodos6_3 a where Item_NotFH<>'''' GROUP BY Item_NotFH, AssignedTo, AssignedTo_Name, emp_DS,Emp_ID, Emp_Item, emp_Sort '
+'Union all '
+'SELECT Item_NotFH, ''重要小計'' as AssignedTo_Name2, '''' as emp_DS, '''' as Emp_Item, 9977 as emp_Sort , ' + replace(@CommonStringJoin2,'@groupcase',@groupcase2)
+'FROM #tmpTodos6_Levelsum a where Item_NotFH<>'''' GROUP BY Item_NotFH '
+'Union all '
+'SELECT Item_NotFH, ''小計'' as AssignedTo_Name2, '''' as emp_DS, '''' as Emp_Item, 9988 as emp_Sort, ' + replace(@CommonStringJoin3 ,'@groupcase',@groupcase3)
+'FROM #tmpTodos6_3 a where Item_NotFH<>'''' GROUP BY Item_NotFH '
+'Union all '
+'SELECT ''總計'' as Item_NotFH, ''總計'' as AssignedTo_Name2, ''總計'' as emp_DS, ''總計'' as Emp_Item, 9999 as emp_Sort, ' + replace(@CommonStringJoin4 ,'@groupcase',@groupcase4)
+'FROM #tmpTodos6_3 a where Item_NotFH<>'''' ) a ' ;
SET @SqlString=@SqlString+@SqlJoinString+' ;';
--select cast(@SqlJoinString as varchar(max)); --debug query
--Exec (@SqlJoinString+' ;');
set @SqlString=@SqlString+'SELECT a.ItemName as attr_ItemName, ISNULL(b.AssignedTo_Name2,'''') as attr_EmpCol2, a.ItemName as 項目, ISNULL(b.AssignedTo_Name2,'''') as attr_AssignedTo_Name2, ISNULL(b.AssignedTo_Name2,'''') as 承辦人員,
b.Emp_Item as attr_Emp_Item, b.Emp_Item as 部別, b.emp_DS as attr_emp_DS, b.emp_DS as 所別, '+ replace(@CommonString,'@groupcase',@groupcase) +' '
+'FROM #tmpItem a '
+'INNER JOIN #tmp_SqlJoin b ON a.ItemName=b.Item_NotFH
GROUP BY a.ItemNo, a.ItemName, AssignedTo_Name2, emp_Sort, Emp_Item, Emp_DS
Order by a.ItemNo, CASE WHEN RIGHT(AssignedTo_Name2,2)=''小計'' THEN 0 ELSE SUM(FNSUM) END DESC,emp_Sort, AssignedTo_Name2 ; '
+'IF OBJECT_ID(''tempdb..#tmp_SqlJoin'', ''U'') IS NOT NULL DROP TABLE #tmp_SqlJoin;'
END
--select cast(@SqlString as varchar(max)); --debug query
Exec (@SqlString );
IF OBJECT_ID('tempdb..#p_YMT', 'U') IS NOT NULL DROP TABLE #p_YMT
IF OBJECT_ID('tempdb..#tmpEmp', 'U') IS NOT NULL DROP TABLE #tmpEmp
IF OBJECT_ID('tempdb..#tmpItem', 'U') IS NOT NULL DROP TABLE #tmpItem
IF OBJECT_ID('tempdb..#tmpTodosAll', 'U') IS NOT NULL DROP TABLE #tmpTodosAll
IF OBJECT_ID('tempdb..#tmpTodos6TDList', 'U') IS NOT NULL DROP TABLE #tmpTodos6TDList
IF OBJECT_ID('tempdb..#tmpTodos6_3All', 'U') IS NOT NULL DROP TABLE #tmpTodos6_3All
IF OBJECT_ID('tempdb..#tmpTodos6_3', 'U') IS NOT NULL DROP TABLE #tmpTodos6_3
IF OBJECT_ID('tempdb..#tmpTodos6_Levelsum', 'U') IS NOT NULL DROP TABLE #tmpTodos6_Levelsum
IF OBJECT_ID('tempdb..#tb_Split2', 'U') IS NOT NULL DROP TABLE #tb_Split2
END
GO
DECLARE @RC int
-- TODO: 在此處設定參數值。
EXECUTE @RC = [dbo].rpt_CustCaseTot_YM_NotFinish
@p_YM_F='2020-01'
,@p_YM_T='2020-01'
,@p_RptType='bydept' -- byPeople ,bydept,byds
,@p_CustName='华星'
GO
\ No newline at end of file
declare
@p_YM_F varchar(50)='2020-03'
,@p_YM_T varchar(50)='2020-03'
,@p_RptType varchar(50)='bydept' -- byPeople ,bydept,byds
,@p_CustName varchar(50)=''
-- 案件統計表by項目, 案件統計表by所別, 案件統計表by部別
-- call rpt_CustCaseTot_YM('201901','201906','byDS','');
IF OBJECT_ID('tempdb..#p_YMT', 'U') IS NOT NULL DROP TABLE #p_YMT
IF OBJECT_ID('tempdb..#tmpEmp', 'U') IS NOT NULL DROP TABLE #tmpEmp
IF OBJECT_ID('tempdb..#tmpItem', 'U') IS NOT NULL DROP TABLE #tmpItem
IF OBJECT_ID('tempdb..#tmpTodosAll', 'U') IS NOT NULL DROP TABLE #tmpTodosAll
IF OBJECT_ID('tempdb..#tmpTodos6TDList', 'U') IS NOT NULL DROP TABLE #tmpTodos6TDList
IF OBJECT_ID('tempdb..#tmpTodos6_3All', 'U') IS NOT NULL DROP TABLE #tmpTodos6_3All
IF OBJECT_ID('tempdb..#tmpTodos6_3', 'U') IS NOT NULL DROP TABLE #tmpTodos6_3
IF OBJECT_ID('tempdb..#tmpTodos6_Levelsum', 'U') IS NOT NULL DROP TABLE #tmpTodos6_Levelsum
IF OBJECT_ID('tempdb..#tb_Split2', 'U') IS NOT NULL DROP TABLE #tb_Split2
Declare @p_EmpItem varchar(1),@Emp_ItemNo varchar(50),@p_StartDate datetime,@p_EndDate datetime;
Declare @p_EndDateYM varchar(7),@i tinyint=1;
set @p_StartDate =Convert(datetime,@p_YM_F+'-01',126) ;
set @p_EndDate =DATEADD(day,-1,DATEADD(month, 1,cast(@p_YM_T+'-01' as datetime))) ;
set @p_EndDateYM=Convert(varchar(7),@p_EndDate,126);
select 99 as id ,Convert(varchar(7),@p_EndDate,126) as value into #p_YMT
WHILE @i < 13
BEGIN
insert into #p_YMT (id,Value)
values(@i,Convert(varchar(7),DATEADD(month,@i-1,@p_StartDate) ,126))
Set @i=@i+1;
END
--select * from #p_YMT
-- 取得「客戶名稱」的 recordset
SELECT ID as ItemNo,replace(replace(value, char(13),''), char(10),'') as ItemDesc into #tb_Split2 FROM [ufn_split](@p_CustName, ';') ;
-- 取得RPT項目List
SELECT * into #tmpItem FROM (
SELECT 1 as ItemNo, 'CN 查新' as ItemName union SELECT 2, 'CN 新申請' union SELECT 3, 'PCT 新申請' union
SELECT 4, 'US 新申請' union SELECT 5, 'KR 新申請' union SELECT 6, 'JP 新申請' union SELECT 7, 'EA 新申請' union SELECT 8, 'EU 新申請' union
SELECT 9, 'IN 新申請' union SELECT 10, 'TW 新申請' union SELECT 11, 'DE 新申請' union SELECT 12, 'GB 新申請' union SELECT 13, 'RU 新申請' union
SELECT 41, 'CN OA' union SELECT 42, 'TW OA' union SELECT 43, 'US OA' union SELECT 45, 'KR OA' union SELECT 46, 'JP OA' union
SELECT 47, 'EA OA' union SELECT 48, 'DE OA' union SELECT 49, 'EU OA' union SELECT 50, 'GB OA' union SELECT 51, 'RU OA' union
SELECT 52, 'RCE' union SELECT 53, 'IDS' union SELECT 54, '繳費領證' union SELECT 99, '總計') a;
-- 第二部, 客戶名稱不會只有「华星」, 第一部, 客戶名稱只會有「华星」
insert #tmpItem
SELECT * FROM (
SELECT 61 as ItemNo, 'CN OA-核駁' as ItemName union SELECT 62, 'TW OA-核駁' union SELECT 63, 'US OA-核駁' union SELECT 65, 'KR OA-核駁' union SELECT 66, 'JP OA-核駁' union
SELECT 67, 'EA OA-核駁' union SELECT 68, 'DE OA-核駁' union SELECT 69, 'EU OA-核駁' union SELECT 70, 'GB OA-核駁' union SELECT 71, 'RU OA-核駁'
) a WHERE @p_CustName<>'华星' AND (SELECT COUNT(*) FROM #tb_Split2) >=1;
-- 員工部別 (因該員工會多部別, 放在Emp_DS2裡, 所以要distinct )
SELECT distinct a.user_name as Emp_ID, cn_name as Emp_Name, a.Emp_DS, a.Emp_DSNum, a.Emp_Item, a.Emp_ItemNum, 0 as Emp_Sort ,a.user_id
--, emp_N1, Emp_N2, Emp_N3
into #tmpEmp
FROM [dbo].[evw_Employee] a
-- 1.取得: ToDos
print('1:'+convert(varchar(20),getdate(),126))
;with tmpTodosAll_1 as(
select sn,proc_id,CaseType,CaseType_Name,CaseNo,TaskDescription,StartDate2,AttorneyDueDate,FinishedDate,AssignedTo_userid,
b.Emp_ID as AssignedTo,b.Emp_Name as AssignedTo_Name,Points,ExchangeRate,Matter,Matter_Name,PatentType,PatentType_Name,ToDosStatus,ToDosStatus_Name,
case_id,b.*
from evw_esn_todos a
inner join #tmpEmp b on a.AssignedTo_userid=b.user_id
where (a.StartDate2 between @p_StartDate AND @p_EndDate) OR -- 起始日
(a.FinishedDate between @p_StartDate AND @p_EndDate) OR -- 完成日
(a.AttorneyDueDate between @p_StartDate AND @p_EndDate)
AND a.PatentType IN ('PN01', 'PN02', 'PN03','PN07')
)
SELECT a.* , case when ics.case_status_zh_tw='撰稿中' THEN 'Y' END as PctNationalPhase,p.country_id as office,Cast(a.sn as varchar(20)) as Flowkey
,(select value from [ufn_split](a.CaseNo,'-') u where u.ID=2) as CaseNo_r
,p.customer_name as Client_CompanyName,ics.case_status_zh_tw as Status_Name
into #tmpTodosAll
FROM tmpTodosAll_1 a
inner join [evw_p_case_info] p on p.case_id=a.case_id
inner join #tb_Split2 s on p.customer_name like s.ItemDesc +'%'
left join i_case_status ics on ics.case_status_id=p.case_status_id
;
print('2:'+convert(varchar(20),getdate(),126))
; -- ALTER TABLE tmpTodosAll ADD INDEX(`CaseNo`);
-- 2.取得:「未完成」資料
SELECT CASE WHEN a.Office='CN' AND LEFT(a.CaseNo_r,1)='M' AND (CHARINDEX('提出報告',a.TaskDescription)>0 OR CHARINDEX('提出报告',a.TaskDescription)>0) THEN 'CN 查新' END as Item_NotFH1, -- CN 查新(未完成) -->1.客戶名稱為華星, 2.案件編號有-M, 3.管制事項:完成初稿, 4.完成日為空白, 5.事務所到期日落在該月份
CASE WHEN a.Office='CN' AND a.PatentType IN ('PN01', 'PN02', 'PN03') AND a.TaskDescription='完成初稿' THEN 'CN 新申請' END as Item_NotFH2, -- CN 新申請(未完成) -->1.國家為CN, 2.案件類別: PN01, PN02, PN03, 3.管制事項:完成初稿(只有這4個字), 4.案件狀態:撰稿(RS01), 5.完成日為空白, 6.事務到期日落在該月份
CASE WHEN a.Office='PCT' AND a.PatentType IN ('PN01','PN07') AND a.TaskDescription='完成初稿' THEN 'PCT 新申請' END as Item_NotFH3, -- PCT 新申請(未完成)-->1.國家為PCT, 2.案件類別: PN01, PN07, 3.管制事項:完成初稿(只有這4個字), 4.案件狀態:撰稿(RS01), 5.完成日為空白, 6.事務到期日落在該月份
CASE WHEN a.Office NOT IN ('CN','WO') AND a.PatentType='PN01' AND a.PctNationalPhase='Y' AND a.TaskDescription='完成初稿' THEN a.Office+' 新申請' END as Item_NotFH4, -- XX 新申請(未完成) -->1.國家為XX, 2.案件類別: PN01 , 3.是 PCT國家階段, 4.管制事項:完成初稿(只有這4個字), 5.案件狀態:撰稿(RS01), 5.完成日為空白, 6.事務到期日落在該月份
CASE WHEN CHARINDEX('完成初稿',a.TaskDescription)>0 THEN 'CN OA' END as Item_NotFH5, -- CN OA(未完成) -->1.國家為CN, 2.管制事項:完成初稿(都含), 3.案件狀態:答辯中-撰稿(RS05.1), 4.完成日為空白, 5.事務到期日落在該月份
CASE WHEN a.TaskDescription='完成初稿' AND a.Office NOT IN('CN','WO') THEN a.Office+' OA' END as Item_NotFH6, -- XX OA(未完成) -->1.國家為XX, 2.管制事項:完成初稿(只有這4個字), 3.案件狀態:答辯中(RS05), 4.完成日為空白, 5.事務到期日落在該月份
CASE WHEN CHARINDEX('rce', LOWER(a.TaskDescription))>0 THEN 'RCE' END as Item_NotFH7, -- RCE(未完成) -->1.不分國家, 2.管制事項有「RCE」該項, 3.管制事項:完成初稿(只有這4個字), 4.完成日為空白, 5.事務到期日落在該月份
CASE WHEN CHARINDEX('ids', LOWER(a.TaskDescription))>0 THEN 'IDS' END as Item_NotFH8, -- IDS(未完成) -->1.不分國家, 2.管制事項有「IDS」該項, 3.管制事項:完成初稿(只有這4個字), 4.完成日為空白, 5.事務到期日落在該月份
CASE WHEN CHARINDEX('繳費領證', a.TaskDescription)>0 THEN '繳費領證' END as Item_NotFH9, -- 繳費領證(未完成) -->1.不分國家, 2.管制事項有「繳費領證」該項, 3.管制事項:完成初稿(只有這4個字), 4.完成日為空白, 5.事務到期日落在該月份
CASE WHEN CHARINDEX('核駁報導',a.TaskDescription)>0 THEN 'CN OA-核駁' END as Item_NotFH15, -- CN OA-核駁(未完成) -->1.國家為CN, 2.管制事項:核駁報導(都含), 3.案件狀態:答辯中-撰稿(RS05.1), 4.完成日為空白, 5.事務到期日落在該月份
CASE WHEN a.TaskDescription='核駁報導' AND a.Office NOT IN('CN','WO') THEN a.Office+' OA-核駁' END as Item_NotFH16, -- XX OA-核駁(未完成) -->1.國家為XX, 2.管制事項:核駁報導(只有這4個字), 3.案件狀態:答辯中(RS05), 4.完成日為空白, 5.事務到期日落在該月份
a.FlowKey, a.CaseNo, a.PctNationalPhase, a.AttorneyDueDate, a.FinishedDate, getdate() as sysDate,
CASE WHEN a.AttorneyDueDate='' THEN '' ELSE Convert(varchar(7),a.AttorneyDueDate,126) END as YM_AD,
CASE WHEN (a.FinishedDate between @p_StartDate AND @p_EndDate) THEN Convert(varchar(7),a.FinishedDate,126) ELSE '' END as YM_FH,
--CASE WHEN FinishedDate=''or FinishedDate is null THEN getdate() ELSE FinishedDate END as FinishedDate2,
a.StartDate2,
CASE WHEN a.AttorneyDueDate<>'' THEN DATEDIFF(day,getdate(),AttorneyDueDate) ELSE 0 END as NotFH_Days,
a.AssignedTo, a.AssignedTo_Name--, a.AssignedTo_DeptID, a.AssignedTo_DeptName, a.Matter, a.MatterName, a.Attorney, a.Attorney_Nationality, a.Office, a.Office_Name, a.Client, a.CaseType, a.CaseType_Desc
, a.Emp_ID, a.Emp_DS, a.Emp_DSNum, a.Emp_Item, a.Emp_Sort,
CASE WHEN a.AssignedTo='' THEN '未指定承辦人' ELSE AssignedTo_Name END as AssignedTo_Name2, a.TaskDescription, a.PatentType, PatentType_Name
, a.ToDosStatus, a.ToDosStatus_Name , a.Client_CompanyName
,ISNULL(b.CaseLevel,'') as CaseLevel, ISNULL(b.CaseLevelDesc,'') as CaseLevelDesc, ISNULL(c.IsPriority,'') as IsPriority, ISNULL(c.IsPriorityDesc,'') as IsPriorityDesc
into #tmpTodos6_3All
FROM #tmpTodosAll a
left join evw_qresult_CaseLevel b on a.CaseNo=b.CaseNo
left join evw_qresult_caseispriority c on a.CaseNo=c.CaseNo
;
print('3:'+convert(varchar(20),getdate(),126))
select * into #tmpTodos6_3 from (
select CAST(Item_NotFH1 as CHAR(20)) as Item_NotFH, a.* from #tmpTodos6_3All a where Item_NotFH1<>''
union
select Item_NotFH2 as Item_NotFH, a.* from #tmpTodos6_3All a where Item_NotFH2<>''
union
select Item_NotFH3 as Item_NotFH, a.* from #tmpTodos6_3All a where Item_NotFH3<>''
union
select Item_NotFH4 as Item_NotFH, a.* from #tmpTodos6_3All a where Item_NotFH4<>''
union
select Item_NotFH5 as Item_NotFH, a.* from #tmpTodos6_3All a where Item_NotFH5<>''
union
select Item_NotFH6 as Item_NotFH, a.* from #tmpTodos6_3All a where Item_NotFH6<>''
union
select Item_NotFH7 as Item_NotFH, a.* from #tmpTodos6_3All a where Item_NotFH7<>''
union
select Item_NotFH8 as Item_NotFH, a.* from #tmpTodos6_3All a where Item_NotFH8<>''
union
select Item_NotFH8 as Item_NotFH, a.* from #tmpTodos6_3All a where Item_NotFH9<>''
union
select Item_NotFH15 as Item_NotFH, a.* from #tmpTodos6_3All a where Item_NotFH15<>''
union
select Item_NotFH16 as Item_NotFH, a.* from #tmpTodos6_3All a where Item_NotFH16<>''
) a;
print('4:'+convert(varchar(20),getdate(),126))
-- ALTER TABLE tmpTodos6_3 ADD INDEX(`CaseNo`);
--select * from #tmpTodosAll
--select * from #tmpTodos6_3All
--select * from #tmpTodos6_3
-- 3.暫存檔
-- 3-1.新增項目之重要案件小計列暫存檔
SELECT Item_NotFH, AssignedTo_Name2, emp_DS, Emp_Item, emp_Sort, YM_AD, AttorneyDueDate, sysDate, FlowKey
into #tmpTodos6_Levelsum
FROM #tmpTodos6_3 WHERE (CaseLevel='1' OR IsPriority='Y'); -- CaseLevel=專利等級: 1=重要專利, 2=常規專利, IsPriority=是否優先處理: Y=是
if not exists(select * FROM #tmpTodos6_Levelsum where Item_NotFH='CN 查新')
begin
insert #tmpTodos6_Levelsum SELECT 'CN 查新' as Item_NotFH, '' as AssignedTo_Name2, '' as emp_DS, '' as Emp_Item, '' as emp_Sort, '' as YM_AD, '' as AttorneyDueDate, '' as sysDate, '' as FlowKey;
end ;
--SELECT * FROM tmpTodos6_3 WHERE (CaseLevel='1' OR IsPriority='Y'); -- CaseLevel=專利等級: 1=重要專利, 2=常規專利, IsPriority=是否優先處理: Y=是
-- 5.結果
declare @SqlString varchar(max)='',@SqlJoinString varchar(max)='',@CommonString varchar(max)='',@CommonStringJoin1 varchar(max)=''
,@CommonStringJoin2 varchar(max)='',@CommonStringJoin3 varchar(max)='',@CommonStringJoin4 varchar(max)='',@SortString varchar(500)='', @cnt tinyint=1,@cntT varchar(3)='',@cntO varchar(3)=''
,@groupcase1 varchar(200)='',@groupcase2 varchar(200)='',@groupcase3 varchar(200)='',@groupcase4 varchar(200)='',@groupcase varchar(200)='',@p_YMT_value varchar(7);
WHILE @cnt < 13
BEGIN
Set @cntT= RIGHT(REPLICATE('0',2) + CAST(@cnt as varchar),2); -- 補零
Set @cntO= CAST(@cnt as varchar);
Set @p_YMT_value= (select Value from #p_YMT where id=@cntO) ;
set @CommonString=@CommonString
+'CASE WHEN '''+@p_EndDateYM+''' >= '''+@p_YMT_value+''' THEN 1 ELSE 0 END v'+@cntT
+',STUFF ((SELECT distinct '','' + (CASE WHEN attr_NotFN'+@cntT+'<>'''' THEN attr_NotFN'+@cntT+' END) @groupcase FOR XML PATH('''')), 1, 1, N'''') as attr_NotFN'+@cntT+'_todos2, SUM(ISNULL(NotFN'+@cntT+',0)) as 逾期_'+@cntT
+', STUFF ((SELECT distinct '','' + (CASE WHEN attr_YesFN'+@cntT+'<>'''' THEN attr_YesFN'+@cntT+' END) @groupcase FOR XML PATH('''')), 1, 1, N'''') as attr_YesFN'+@cntT+'_todos2, SUM(ISNULL(YesFN'+@cntT+',0)) as 未逾期_'+@cntT+','
Set @CommonStringJoin1=@CommonStringJoin1
+ 'STUFF ((SELECT distinct '','' + (CASE WHEN YM_AD= '''+@p_YMT_value+''' AND AttorneyDueDate < sysDate THEN FlowKey END) @groupcase FOR XML PATH('''')), 1, 1, N'''') as attr_NotFN'+@cntT
+', SUM(CASE WHEN (YM_AD='''+@p_YMT_value+''' AND AttorneyDueDate < sysDate) THEN 1 ELSE 0 END) as NotFN'+@cntT
+',STUFF ((SELECT distinct '','' + (CASE WHEN YM_AD= '''+@p_YMT_value+''' AND AttorneyDueDate >= sysDate THEN FlowKey END) @groupcase FOR XML PATH('''')), 1, 1, N'''') as attr_YesFN'+@cntT
+', SUM(CASE WHEN (YM_AD='''+@p_YMT_value+''' AND AttorneyDueDate >= sysDate) THEN 1 ELSE 0 END) as YesFN'+@cntT+',';
SET @cnt = @cnt + 1;
END
set @CommonString=@CommonString +'1 as v13, STUFF ((SELECT distinct '','' + (CASE WHEN attr_sum<>'''' THEN attr_sum END) @groupcase FOR XML PATH('''')), 1, 1, N'''') as attr_sum_todos2,SUM(ISNULL(FNSUM,0)) as 小計 ';
Set @CommonStringJoin1=@CommonStringJoin1+'STUFF ((SELECT distinct '','' + FlowKey @groupcase FOR XML PATH('''')), 1, 1, N'''') as attr_sum, COUNT(distinct FlowKey) as FNSUM ';
Set @CommonStringJoin2=replace(@CommonStringJoin1,' COUNT(distinct FlowKey)','SUM(CASE WHEN ISNULL(FlowKey,'''')<>'''' THEN 1 ELSE 0 END)');
Set @CommonStringJoin3=@CommonStringJoin1;
Set @CommonStringJoin4=@CommonStringJoin1;
IF @p_RptType='byDS'
BEGIN
-- 5-1.byDS 部別
Set @groupcase=' from #tmp_SqlJoin p where a.ItemName=p.Item_NotFH and b.Emp_Item=p.Emp_Item and b.emp_DS=p.emp_DS '
--Set @groupcase1=' from #tmpTodos6_3 p WHERE p.Item_NotFH<>'''' and p.Item_NotFH=a.Item_NotFH and p.AssignedTo=a.AssignedTo and p.emp_DSNum=a.emp_DSNum and p.emp_DS=a.emp_DS and p.Emp_Item=a.Emp_Item '
Set @groupcase1=' from #tmpTodos6_3 p WHERE p.Item_NotFH<>'''' and p.Item_NotFH=a.Item_NotFH and p.AssignedTo=a.AssignedTo and p.emp_DS=a.emp_DS and p.emp_DSNum=a.emp_DSNum and p.Emp_Item=a.Emp_Item '
Set @groupcase2=' from #tmpTodos6_Levelsum p WHERE p.Item_NotFH<>'''' and p.Item_NotFH=a.Item_NotFH '
Set @groupcase3=' from #tmpTodos6_3 p WHERE p.Item_NotFH<>'''' and p.Item_NotFH=a.Item_NotFH '
Set @groupcase4=' from #tmpTodos6_3 p where p.Item_NotFH<>'''' '
Set @SqlJoinString=@SqlJoinString+'select a.* into #tmp_SqlJoin from (
SELECT Item_NotFH, AssignedTo+'' ''+AssignedTo_Name as AssignedTo_Name2, emp_DS,
CASE WHEN ISNULL(Emp_Item,'''')='''' THEN ''沒指定部別'' ELSE Emp_Item END as Emp_Item,
CASE WHEN ISNULL(emp_Sort,'''')='''' THEN 666 ELSE emp_Sort END as emp_Sort, ' + replace(@CommonStringJoin1 ,'@groupcase',@groupcase1)
+'FROM #tmpTodos6_3 a where Item_NotFH<>''''
GROUP BY Item_NotFH, AssignedTo, AssignedTo_Name, emp_DS, emp_DSNum, Emp_Item, emp_Sort '
+'Union all '
+'SELECT Item_NotFH, '''' as AssignedTo_Name2, '''' as emp_DS, ''重要小計'' as Emp_Item, 9977 as emp_Sort, ' + replace(@CommonStringJoin2,'@groupcase',@groupcase2)
+'FROM #tmpTodos6_Levelsum a where Item_NotFH<>'''' GROUP BY Item_NotFH '
+'Union all '
+'SELECT Item_NotFH, '''' as AssignedTo_Name2, '''' as emp_DS, ''小計'' as Emp_Item, 9988 as emp_Sort, ' + replace(@CommonStringJoin3 ,'@groupcase',@groupcase3)
+'FROM #tmpTodos6_3 a where Item_NotFH<>'''' GROUP BY Item_NotFH '
+'Union all '
+'SELECT ''總計'' as Item_NotFH, ''總計'' as AssignedTo_Name2, ''總計'' as emp_DS, ''總計'' as Emp_Item, 9999 as emp_Sort, ' + replace(@CommonStringJoin4 ,'@groupcase',@groupcase4)
+'FROM #tmpTodos6_3 a where Item_NotFH<>'''' ) a ' ;
--select cast(@SqlJoinString as varchar(max)); --debug query
SET @SqlString=@SqlString+@SqlJoinString+' ;';
--Exec (@SqlJoinString+' ');
set @SqlString=@SqlString+'SELECT a.ItemName as attr_ItemName, ISNULL(b.Emp_Item,'''') as attr_empcol2, a.ItemName as 項目, ISNULL(b.Emp_Item,'''') as attr_EmpItem, ISNULL(b.Emp_Item,'''') as 部別, '+ replace(@CommonString,'@groupcase',@groupcase) +' '
+'FROM #tmpItem a '
+'LEFT JOIN #tmp_SqlJoin b ON a.ItemName=b.Item_NotFH
GROUP BY a.ItemNo, a.ItemName,Emp_Item, Emp_Sort ,emp_DS
Order by a.ItemNo, CASE WHEN RIGHT(Emp_Item,2)=''小計'' THEN 0 ELSE SUM(FNSUM) END DESC , Emp_Sort; '
+'IF OBJECT_ID(''tempdb..#tmp_SqlJoin'', ''U'') IS NOT NULL DROP TABLE #tmp_SqlJoin;'
END
ELSE IF @p_RptType='byDept'
BEGIN
-- 5-2.byDept 所別
Set @groupcase=' from #tmp_SqlJoin p where a.ItemName=p.Item_NotFH and b.Emp_Item=p.Emp_Item and b.emp_DS=p.emp_DS '
Set @groupcase1=' from #tmpTodos6_3 p WHERE p.Item_NotFH<>'''' and p.Item_NotFH=a.Item_NotFH and p.AssignedTo=a.AssignedTo and p.emp_DS=a.emp_DS and p.emp_DSNum=a.emp_DSNum and p.Emp_Item=a.Emp_Item '
Set @groupcase2=' from #tmpTodos6_Levelsum p WHERE p.Item_NotFH<>'''' and p.Item_NotFH=a.Item_NotFH '
Set @groupcase3=' from #tmpTodos6_3 p WHERE p.Item_NotFH<>'''' and p.Item_NotFH=a.Item_NotFH '
Set @groupcase4=' from #tmpTodos6_3 p where p.Item_NotFH<>'''' '
Set @SqlJoinString=@SqlJoinString+'select a.* into #tmp_SqlJoin from (
SELECT Item_NotFH, AssignedTo+'' ''+AssignedTo_Name as AssignedTo_Name2,
CASE WHEN ISNULL(emp_DS,'''')='''' THEN ISNULL(Emp_DS,''沒指定所別'') ELSE emp_DS END as emp_DS, emp_DSNum,
CASE WHEN ISNULL(Emp_Item,'''')='''' THEN ''沒指定部別'' ELSE Emp_Item END as Emp_Item,
CASE WHEN ISNULL(emp_Sort,'''')='''' THEN 666 ELSE emp_Sort END as emp_Sort, ' + replace(@CommonStringJoin1 ,'@groupcase',@groupcase1)
+'FROM #tmpTodos6_3 a where Item_NotFH<>''''
GROUP BY Item_NotFH, AssignedTo, AssignedTo_Name, emp_DS, emp_DSNum, Emp_Item, emp_Sort '
+'Union all '
+'SELECT Item_NotFH, '''' as AssignedTo_Name2, ''重要小計'' as emp_DS, 9977 as emp_DSNum, '''' as Emp_Item, 9977 as emp_Sort , ' + replace(@CommonStringJoin2,'@groupcase',@groupcase2)
+'FROM #tmpTodos6_Levelsum a where Item_NotFH<>'''' GROUP BY Item_NotFH '
+'Union all '
+'SELECT Item_NotFH, '''' as AssignedTo_Name2, ''小計'' as emp_DS, 9988 as emp_DSNum, '''' as Emp_Item, 9988 as emp_Sort, ' + replace(@CommonStringJoin3 ,'@groupcase',@groupcase3)
+'FROM #tmpTodos6_3 a where Item_NotFH<>'''' GROUP BY Item_NotFH '
+'Union all '
+'SELECT ''總計'' as Item_NotFH, ''總計'' as AssignedTo_Name2, ''總計'' as emp_DS, 9988 as emp_DSNum, ''總計'' as Emp_Item, 9999 as emp_Sort, ' + replace(@CommonStringJoin4 ,'@groupcase',@groupcase4)
+'FROM #tmpTodos6_3 a where Item_NotFH<>'''' ) a ' ;
--select cast(@SqlJoinString as varchar(max)); --debug query
SET @SqlString=@SqlString+@SqlJoinString+' ;';
--Exec (@SqlJoinString+' ;');
set @SqlString=@SqlString+'SELECT a.ItemName as attr_ItemName, ISNULL(b.emp_DS,'''') as attr_EmpCol2, a.ItemName as 項目, ISNULL(b.emp_DS,'''') as attr_EmpDS, ISNULL(b.emp_DS,'''') as 所別, '+ replace(@CommonString,'@groupcase',@groupcase) +' '
+'FROM #tmpItem a '
+'LEFT JOIN #tmp_SqlJoin b ON a.ItemName=b.Item_NotFH
GROUP BY a.ItemNo, a.ItemName, emp_DS,Emp_DSNum,Emp_Item
Order by a.ItemNo, CASE WHEN RIGHT(emp_DS,2)=''小計'' THEN 0 ELSE SUM(FNSUM) END DESC, Emp_DSNum ; '
+'IF OBJECT_ID(''tempdb..#tmp_SqlJoin'', ''U'') IS NOT NULL DROP TABLE #tmp_SqlJoin;'
END
ELSE IF @p_RptType='byPeople'
BEGIN
-- 5-3.byPeople 人員
Set @groupcase=' from #tmp_SqlJoin p where a.ItemName=p.Item_NotFH and b.AssignedTo_Name2=p.AssignedTo_Name2 and b.Emp_Item=p.Emp_Item and b.emp_DS=p.emp_DS '
Set @groupcase1=' from #tmpTodos6_3 p WHERE p.Item_NotFH<>'''' and p.Item_NotFH=a.Item_NotFH and p.AssignedTo=a.AssignedTo and p.emp_DS=a.emp_DS and p.Emp_Item=a.Emp_Item '
Set @groupcase2=' from #tmpTodos6_Levelsum p WHERE p.Item_NotFH<>'''' and p.Item_NotFH=a.Item_NotFH '
Set @groupcase3=' from #tmpTodos6_3 p WHERE p.Item_NotFH<>'''' and p.Item_NotFH=a.Item_NotFH '
Set @groupcase4=' from #tmpTodos6_3 p where p.Item_NotFH<>'''' '
Set @SqlJoinString=@SqlJoinString+'select a.* into #tmp_SqlJoin from (
SELECT Item_NotFH, CASE WHEN Emp_ID LIKE ''12%'' THEN AssignedTo_Name+''(''+Emp_ID+'')'' ELSE AssignedTo_Name END as AssignedTo_Name2,
CASE WHEN ISNULL(emp_DS,'''')='''' THEN ISNULL(emp_DS,'''') ELSE emp_DS END as emp_DS,
CASE WHEN ISNULL(Emp_Item,'''')='''' THEN ''沒指定部別'' ELSE Emp_Item END as Emp_Item,
CASE WHEN ISNULL(emp_Sort,'''')='''' THEN 666 ELSE emp_Sort END as emp_Sort, ' + replace(@CommonStringJoin1 ,'@groupcase',@groupcase1)
+'FROM #tmpTodos6_3 a where Item_NotFH<>'''' GROUP BY Item_NotFH, AssignedTo, AssignedTo_Name, emp_DS,Emp_ID, Emp_Item, emp_Sort '
+'Union all '
+'SELECT Item_NotFH, ''重要小計'' as AssignedTo_Name2, '''' as emp_DS, '''' as Emp_Item, 9977 as emp_Sort , ' + replace(@CommonStringJoin2,'@groupcase',@groupcase2)
+'FROM #tmpTodos6_Levelsum a where Item_NotFH<>'''' GROUP BY Item_NotFH '
+'Union all '
+'SELECT Item_NotFH, ''小計'' as AssignedTo_Name2, '''' as emp_DS, '''' as Emp_Item, 9988 as emp_Sort, ' + replace(@CommonStringJoin3 ,'@groupcase',@groupcase3)
+'FROM #tmpTodos6_3 a where Item_NotFH<>'''' GROUP BY Item_NotFH '
+'Union all '
+'SELECT ''總計'' as Item_NotFH, ''總計'' as AssignedTo_Name2, ''總計'' as emp_DS, ''總計'' as Emp_Item, 9999 as emp_Sort, ' + replace(@CommonStringJoin4 ,'@groupcase',@groupcase4)
+'FROM #tmpTodos6_3 a where Item_NotFH<>'''' ) a ' ;
SET @SqlString=@SqlString+@SqlJoinString+' ;';
--select cast(@SqlJoinString as varchar(max)); --debug query
--Exec (@SqlJoinString+' ;');
set @SqlString=@SqlString+'SELECT a.ItemName as attr_ItemName, ISNULL(b.AssignedTo_Name2,'''') as attr_EmpCol2, a.ItemName as 項目, ISNULL(b.AssignedTo_Name2,'''') as attr_AssignedTo_Name2, ISNULL(b.AssignedTo_Name2,'''') as 承辦人員,
b.Emp_Item as attr_Emp_Item, b.Emp_Item as 部別, b.emp_DS as attr_emp_DS, b.emp_DS as 所別, '+ replace(@CommonString,'@groupcase',@groupcase) +' '
+'FROM #tmpItem a '
+'LEFT JOIN #tmp_SqlJoin b ON a.ItemName=b.Item_NotFH
GROUP BY a.ItemNo, a.ItemName, AssignedTo_Name2, emp_Sort, Emp_Item, Emp_DS
Order by a.ItemNo, CASE WHEN RIGHT(AssignedTo_Name2,2)=''小計'' THEN 0 ELSE SUM(FNSUM) END DESC,emp_Sort, AssignedTo_Name2 ; '
+'IF OBJECT_ID(''tempdb..#tmp_SqlJoin'', ''U'') IS NOT NULL DROP TABLE #tmp_SqlJoin;'
END
--select cast(@SqlString as varchar(max)); --debug query
Exec (@SqlString );
--DROP TABLE IF EXISTS #tmpItem;
--DROP TABLE IF EXISTS #tmpTodos6TDList;
--DROP TABLE IF EXISTS #tmpTodos6_3All;
--DROP TABLE IF EXISTS #tmpTodos6_3;
--DROP TABLE IF EXISTS #tmpTodos6_Levelsum;
--DROP TABLE IF EXISTS #tmpTodos6_3;
--DROP TABLE IF EXISTS #tmpTodos6_3;
--DROP TABLE IF EXISTS tb_Split2;
--IF OBJECT_ID('tempdb..#p_YMT', 'U') IS NOT NULL DROP TABLE #p_YMT
--IF OBJECT_ID('tempdb..#tmpEmp', 'U') IS NOT NULL DROP TABLE #tmpEmp
--IF OBJECT_ID('tempdb..#tmpItem', 'U') IS NOT NULL DROP TABLE #tmpItem
--IF OBJECT_ID('tempdb..#tmpTodosAll', 'U') IS NOT NULL DROP TABLE #tmpTodosAll
--IF OBJECT_ID('tempdb..#tmpTodos6TDList', 'U') IS NOT NULL DROP TABLE #tmpTodos6TDList
--IF OBJECT_ID('tempdb..#tmpTodos6_3All', 'U') IS NOT NULL DROP TABLE #tmpTodos6_3All
--IF OBJECT_ID('tempdb..#tmpTodos6_3', 'U') IS NOT NULL DROP TABLE #tmpTodos6_3
--IF OBJECT_ID('tempdb..#tmpTodos6_Levelsum', 'U') IS NOT NULL DROP TABLE #tmpTodos6_Levelsum
--IF OBJECT_ID('tempdb..#tb_Split2', 'U') IS NOT NULL DROP TABLE #tb_Split2
\ No newline at end of file

declare
@p_YM_F varchar(20)='2020-03'
,@p_YM_T varchar(20)='2020-03'
,@p_RptType varchar(20)='byds' -- byItem ,bydept,byds
,@p_CustName varchar(20)=''
IF OBJECT_ID('tempdb..#tmpTodosAll_1', 'U') IS NOT NULL DROP TABLE #tmpTodosAll_1
IF OBJECT_ID('tempdb..#tmpPatC_5All_1', 'U') IS NOT NULL DROP TABLE #tmpPatC_5All_1
IF OBJECT_ID('tempdb..#tmpTodosAll', 'U') IS NOT NULL DROP TABLE #tmpTodosAll
IF OBJECT_ID('tempdb..#p_YMT', 'U') IS NOT NULL DROP TABLE #p_YMT
IF OBJECT_ID('tempdb..#tb_Split2', 'U') IS NOT NULL DROP TABLE #tb_Split2
IF OBJECT_ID('tempdb..#tmpItem', 'U') IS NOT NULL DROP TABLE #tmpItem
IF OBJECT_ID('tempdb..#tmpEmp', 'U') IS NOT NULL DROP TABLE #tmpEmp
IF OBJECT_ID('tempdb..#tmpPatC_5All', 'U') IS NOT NULL DROP TABLE #tmpPatC_5All
IF OBJECT_ID('tempdb..#tmpTodosAll_3', 'U') IS NOT NULL DROP TABLE #tmpTodosAll_3
IF OBJECT_ID('tempdb..#tmpPatC_5', 'U') IS NOT NULL DROP TABLE #tmpPatC_5
IF OBJECT_ID('tempdb..#tmpTodos5TDList', 'U') IS NOT NULL DROP TABLE #tmpTodos5TDList
IF OBJECT_ID('tempdb..#tmpTodos5_1All', 'U') IS NOT NULL DROP TABLE #tmpTodos5_1All
IF OBJECT_ID('tempdb..#tmpTodos5_1', 'U') IS NOT NULL DROP TABLE #tmpTodos5_1
IF OBJECT_ID('tempdb..#tmpTodos5_2All', 'U') IS NOT NULL DROP TABLE #tmpTodos5_2All
IF OBJECT_ID('tempdb..#tmpTodos5_2', 'U') IS NOT NULL DROP TABLE #tmpTodos5_2
IF OBJECT_ID('tempdb..#tmpTodos5_3All', 'U') IS NOT NULL DROP TABLE #tmpTodos5_3All
IF OBJECT_ID('tempdb..#tmpTodos5_3', 'U') IS NOT NULL DROP TABLE #tmpTodos5_3
IF OBJECT_ID('tempdb..#p_YMT', 'U') IS NOT NULL DROP TABLE #p_YMT
-- 案件統計表by項目, 案件統計表by所別, 案件統計表by部別
Declare @p_EmpItem varchar(1),@Emp_ItemNo varchar(50),@p_StartDate datetime,@p_EndDate datetime,@p_StartDatet datetime;
Declare @p_EndDateYM varchar(7),@i tinyint=1,@p_YMT_sql varchar(max)='';
set @p_StartDate =Convert(datetime,@p_YM_F+'-01',126) ;
set @p_EndDate =DATEADD(day,-1,DATEADD(month, 1,cast(@p_YM_T+'-01' as datetime))) ;
set @p_EndDateYM=Convert(varchar(7),@p_EndDate,126);
print('1:'+convert(varchar(20),getdate(),126))
select 99 as id ,Convert(varchar(7),@p_EndDate,126) as value into #p_YMT
Set @p_StartDatet=@p_StartDate
WHILE datediff(month,@p_StartDatet,@p_EndDate) >=0
BEGIN
Set @p_YMT_sql=@p_YMT_sql+'('+cast(@i as varchar(2))+',Convert(varchar(7),DATEADD(month,'+cast((@i-1) as varchar(2))+','''+(@p_YM_F+'-01')+''') ,126)),'
--insert into #p_YMT (id,Value)
--values(@i,Convert(varchar(7),DATEADD(month,@i-1,@p_StartDate) ,126))
Set @i=@i+1
Set @p_StartDatet=DATEADD(month,1,@p_StartDatet)
END
set @p_YMT_sql=left(@p_YMT_sql,len(@p_YMT_sql)-1);
--print 'insert into #p_YMT (id,Value) values ' + @p_YMT_sql
exec ('insert into #p_YMT (id,Value) values' + @p_YMT_sql)
--/*
-- 取得「客戶名稱」的 recordset
SELECT ID as ItemNo,replace(replace(value, char(13),''), char(10),'') as ItemDesc into #tb_Split2 FROM [ufn_split](@p_CustName, ';') ;
-- 取得RPT項目List
SELECT * into #tmpItem FROM (
SELECT 1 as ItemNo, 'CN 查新' as ItemName union
SELECT 2, 'CN 新申請' union SELECT 3, 'PCT 新申請' union
SELECT 4, 'US 新申請' union SELECT 5, 'KR 新申請' union SELECT 6, 'JP 新申請' union SELECT 7, 'EA 新申請' union SELECT 8, 'EU 新申請' union
SELECT 9, 'IN 新申請' union SELECT 10, 'TW 新申請' union SELECT 11, 'DE 新申請' union SELECT 12, 'GB 新申請' union SELECT 13, 'RU 新申請' union
SELECT 41, 'CN OA' union SELECT 42, 'TW OA' union SELECT 43, 'US OA' union SELECT 45, 'KR OA' union SELECT 46, 'JP OA' union
SELECT 47, 'EA OA' union SELECT 48, 'DE OA' union SELECT 49, 'EU OA' union SELECT 50, 'GB OA' union SELECT 51, 'RU OA' union
SELECT 52, 'RCE' union SELECT 53, 'IDS' union SELECT 54, '繳費領證'
union SELECT 61 as ItemNo, 'CN OA-核駁' as ItemName union SELECT 62, 'TW OA-核駁' union SELECT 63, 'US OA-核駁' union SELECT 65, 'KR OA-核駁'
union SELECT 66, 'JP OA-核駁' union SELECT 67, 'EA OA-核駁' union SELECT 68, 'DE OA-核駁' union SELECT 69, 'EU OA-核駁' union SELECT 70, 'GB OA-核駁' union SELECT 71, 'RU OA-核駁'
union SELECT 72 as ItemNo, 'CN-核駁' as ItemName union SELECT 73, 'TW-核駁' union SELECT 74, 'US-核駁' union SELECT 75, 'KR-核駁'
union SELECT 76, 'JP-核駁' union SELECT 77, 'EA-核駁' union SELECT 78, 'DE-核駁' union SELECT 79, 'EU-核駁' union SELECT 80, 'GB-核駁' union SELECT 81, 'RU-核駁'
) a ;
-- 第二部, 客戶名稱不會只有「华星」, 第一部, 客戶名稱只會有「华星」
if (SELECT COUNT(*) FROM #tb_Split2 where ItemDesc like '%华星%' or ItemDesc like '%華星%' )>0
delete from #tmpItem where ItemNo > 60
print('1:'+convert(varchar(20),getdate(),126))
-- 員工部別 (因該員工會多部別, 放在Emp_DS2裡, 所以要distinct )
SELECT distinct a.user_name as Emp_ID, cn_name as Emp_Name, isnull(a.Emp_DS,'') as Emp_DS, isnull(a.Emp_DSNum,'') as Emp_DSNum, isnull(a.Emp_Item,'') as Emp_Item, isnull(a.Emp_ItemNum,'') as Emp_ItemNum, 0 as Emp_Sort ,a.user_id
--, emp_N1, Emp_N2, Emp_N3
into #tmpEmp
FROM [dbo].[evw_Employee] a
SELECT a.country_id,a.customer_name,a.PatentType,a.charge_date,a.case_volume,a.PatentType_Name,a.Case_id,a.case_status_id,a.business_type_id
--,(select value from [ufn_split](a.case_volume,'-') a where a.ID=1) as CaseNo_l
,(select value from [ufn_split](a.case_volume,'-') a where a.ID=2) as CaseNo_r
into #tmpPatC_5All_1 FROM [dbo].[evw_p_case_info] a
inner join #tb_Split2 s on a.customer_name like s.ItemDesc +'%'
WHERE a.charge_date between @p_StartDate AND @p_EndDate -- 立案日
AND a.PatentType IN ('PN01', 'PN02', 'PN03','PN07') -- 案件
-- 1.取得: 該案件之 查新, 新申請的「新進」資料
SELECT CASE WHEN LEFT(a.CaseNo_r,1) in('M','CN') THEN 'CN 查新' END as ItemIN1, -- CN 查新(未完成) -->1.客戶名稱為華星, 2.案件編號有-M, 3.管制事項:完成初稿, 4.完成日為空白, 5.事務所到期日落在該月份
CASE WHEN a.country_id='CN' AND a.PatentType IN ('PN01', 'PN02', 'PN03') AND ics.case_status_zh_tw='撰稿中' THEN 'CN 新申請' END as ItemIN2, -- 2.CN 新申請(新進) -->1.國家為CN, 2.案件類別: PN01, PN02, PN03, 3.立案日落在該月份, 4.案件狀態:撰稿(RS01)
CASE WHEN a.country_id='WO' AND a.PatentType IN ('PN01','PN07') AND ics.case_status_zh_tw='撰稿中' THEN 'PCT 新申請' END as ItemIN3, -- 3.PCT 新申請(新進) -->1.國家為PCT, 2.案件類別: PN01, PN07, 3.立案日落在該月份, 4.案件狀態:撰稿(RS01)
CASE WHEN a.country_id NOT IN ('CN','WO' ) AND a.PatentType IN ('PN01') AND b2.business_type_code='PI' AND ics.case_status_zh_tw='撰稿中' THEN a.country_id+' 新申請' END as ItemIN4, -- 4.XX 新申請(新進) --> 1.國家為XX, 2.案件類別: PN01 , 3.是 PCT國家階段, 4.立案日落在該月份, 5.案件狀態:撰稿(RS01)
Convert(varchar(7),a.charge_date,126) as YM_cr,a.case_volume as FlowKey,
a.customer_name as Client_CompanyName, a.country_id, a.PatentType, a.PatentType_Name, ics.case_status_code as Status,
ics.case_status_zh_tw as Status_Names --, InCharge, InCharge_Name
, e.Emp_ID, e.Emp_Name, e.Emp_DS, e.Emp_DSNum, e.Emp_Item, e.Emp_ItemNum,e.Emp_Sort
into #tmpPatC_5All
FROM #tmpPatC_5All_1 a
--inner join #tb_Split2 s on a.customer_name like '%'+s.ItemDesc +'%'
Inner JOIN [evw_p_proc_pic_list] ppl on ppl.Case_id=a.Case_id --案件流程人员
Inner JOIN #tmpEmp e on e.Emp_ID=ppl.pic_userID
LEFT JOIN i_case_status ics on ics.case_status_id=a.case_status_id
LEFT JOIN i_business_type b2 on b2.business_type_id=a.business_type_id
print('2:'+convert(varchar(20),getdate(),126))
select * into #tmpPatC_5 from (
select CAST(ItemIN1 as varCHAR(20)) as ItemIN, a.* from #tmpPatC_5All a where ItemIN1<>''
union
select ItemIN2 as ItemIN, a.* from #tmpPatC_5All a where ItemIN2<>''
union
select ItemIN3 as ItemIN, a.* from #tmpPatC_5All a where ItemIN3<>''
union
select ItemIN4 as ItemIN, a.* from #tmpPatC_5All a where ItemIN4<>''
) a
;
print('3:'+convert(varchar(20),getdate(),126))
-- 2.取得: ToDos
--;with tmpTodosAll_1 as(
--select sn,proc_id,CaseType,CaseType_Name,CaseNo,TaskDescription,StartDate2,AttorneyDueDate,FinishedDate,AssignedTo_userid,
--b.Emp_ID as AssignedTo,b.Emp_Name as AssignedTo_Name,Points,ExchangeRate,Matter,Matter_Name,PatentType,PatentType_Name,ToDosStatus,ToDosStatus_Name,
--case_id
--from evw_esn_todos a
--inner join #tmpEmp b on a.AssignedTo_userid=b.user_id
--where (a.StartDate2 between @p_StartDate AND @p_EndDate) OR -- 起始日
-- (a.FinishedDate between @p_StartDate AND @p_EndDate) OR -- 完成日
-- (a.AttorneyDueDate between @p_StartDate AND @p_EndDate)
-- AND a.PatentType IN ('PN01', 'PN02', 'PN03','PN07')
--)
print('3-1:'+convert(varchar(20),getdate(),126))
select sn,a.proc_id,CaseType,CaseType_Name,CaseNo,TaskDescription,StartDate2,AttorneyDueDate,FinishedDate,AssignedTo_userid,
b.Emp_ID as AssignedTo,b.Emp_Name as AssignedTo_Name,Points,ExchangeRate,Matter,Matter_Name,PatentType,PatentType_Name,ToDosStatus,ToDosStatus_Name,a.case_id
,isnull(c.review_stage,'') as review_stage
into #tmpTodosAll_1
from evw_esn_todos a
inner join #tmpEmp b on a.AssignedTo_userid=b.user_id
inner join p_proc_info c on a.proc_id=c.proc_id
where
((a.StartDate2 between @p_StartDate AND @p_EndDate) OR -- 起始日
(a.FinishedDate between @p_StartDate AND @p_EndDate) OR -- 完成日
(a.AttorneyDueDate between @p_StartDate AND @p_EndDate))
AND a.PatentType IN ('PN01', 'PN02', 'PN03','PN07')
print('3-2:'+convert(varchar(20),getdate(),126))
SELECT a.* , case when ibt.business_type_code='PN' THEN 'Y' END as PctNationalPhase,p.country_id as office,Cast(a.sn as varchar(20)) as Flowkey
,p.customer_name as Client_CompanyName
,(select value from [ufn_split](a.CaseNo,'-') a where a.ID=2) as CaseNo_r
,e.Emp_ID, e.Emp_Name,e.Emp_DSNum, e.Emp_Item, e.Emp_ItemNum, 0 as Emp_Sort ,e.Emp_DS
into #tmpTodosAll
FROM #tmpTodosAll_1 a
inner join [evw_p_case_info] p on p.case_id=a.case_id
--left join p_case_info p on p.case_id=a.case_id
--left join c_customer c on p.customer_id=c.customer_id
inner join #tb_Split2 s on p.customer_name like s.ItemDesc +'%'
--left join i_case_status ics on ics.case_status_id=p.case_status_
left join i_business_type ibt on ibt.business_type_id=p.business_type_id
left join #tmpEmp e on a.AssignedTo_userid=e.user_id
;
--select * from #tmpTodosAll
print('4:'+convert(varchar(20),getdate(),126))
--return
-- 3.取得: OA 的「新進」資料
SELECT CASE WHEN a.Office='CN' AND (CHARINDEX('審查意見',a.TaskDescription)>0 OR CHARINDEX('审查意见',a.TaskDescription)>0) THEN 'CN OA' END as ItemIN1, -- CN OA(新進) -->1.國家為CN , 2.抓管制事項:审查意见/驳回, 3.起始日落在該月份, 4.案件狀態:答辯中-撰稿(RS05.1)
CASE WHEN a.Office='TW' AND review_stage<>'' AND (CHARINDEX('申復',a.TaskDescription)>0 OR CHARINDEX('申复',a.TaskDescription)>0 OR CHARINDEX('提出再審',a.TaskDescription)>0) THEN 'TW OA' END as ItemIN2, -- TW OA(新進) -->1.國家為TW, 2.抓管制事項:申復/提出再審 3.起始日落在該月份, 4.案件狀態:答辯中(RS05)
CASE WHEN a.Office='US' AND review_stage<>'' AND (CHARINDEX('response',LOWER(a.TaskDescription))>0 OR CHARINDEX('election',LOWER(a.TaskDescription))>0 OR CHARINDEX('advisory action',LOWER(a.TaskDescription))>0 OR CHARINDEX('parte quayle',LOWER(a.TaskDescription))>0) THEN 'US OA' END as ItemIN3, -- US OA(新進) -->1.國家為US, 2.抓管制事項:Respnose/Election/Advisory Action/parte quayle 3.起始日落在該月份, 4.案件狀態:答辯中(RS05)
CASE WHEN a.Office='KR' AND review_stage<>'' AND (CHARINDEX('response',LOWER(a.TaskDescription))>0 OR CHARINDEX('Re-examination',LOWER(a.TaskDescription))>0 OR CHARINDEX('appeal',LOWER(a.TaskDescription))>0 OR CHARINDEX('final rejection',LOWER(a.TaskDescription))>0) THEN 'KR OA' END as ItemIN4, -- KR OA(新進) -->1.國家為KR, 2.抓管制事項:Response/Request for Re-examination/Appeal/final rejection 3.起始日落在該月份, 4.案件狀態:答辯中(RS05)
CASE WHEN a.Office='JP' AND review_stage<>'' AND review_stage<>'' AND (CHARINDEX('response',LOWER(a.TaskDescription))>0 OR CHARINDEX('appeal',LOWER(a.TaskDescription))>0 OR CHARINDEX('行政訴訟',a.TaskDescription)>0 ) THEN 'JP OA' END as ItemIN5, -- JP OA(新進) -->1.國家為JP, 2.抓管制事項:Response/Appeal/行政訴訟 3.起始日落在該月份, 4.案件狀態:答辯中(RS05)
CASE WHEN a.Office NOT IN ('CN', 'TW', 'US','KR', 'JP') AND review_stage<>'' AND CHARINDEX('response',LOWER(a.TaskDescription))>0 THEN a.Office+' OA' END as ItemIN6, -- XX OA(新進) -->1.國家為XX, 2.抓管制事項:Response 3.起始日落在該月份, 4.案件狀態:答辯中(RS05)
CASE WHEN a.TaskDescription='RCE' THEN 'RCE' END as ItemIN7, -- RCE(新進) -->1.不分國家, 2.抓管制事項:RCE, 3.起始日落在該月份
CASE WHEN a.TaskDescription='IDS' THEN 'IDS' END as ItemIN8, -- IDS(新進) -->1.不分國家, 2.抓管制事項:IDS, 3.起始日落在該月份
CASE WHEN (CHARINDEX('繳費領證',a.TaskDescription)>0 OR CHARINDEX('缴纳领证',a.TaskDescription)>0) THEN '繳費領證' END as ItemIN9, -- 繳費領證(新進) -->1.不分國家, 2.抓管制事項:繳費領證, 3.起始日落在該月份
CASE WHEN ( CHARINDEX('駁回',a.TaskDescription)>0 OR CHARINDEX('驳回',a.TaskDescription)>0) THEN a.Office+'-核駁' END as ItemIN10,
Convert(varchar(7),a.StartDate2,126) as YM_ST, a.*, getdate() as sysDate
into #tmpTodos5_1All
FROM #tmpTodosAll a
WHERE a.StartDate2 between @p_StartDate AND @p_EndDate
;
select CAST(ItemIN1 as varCHAR(20)) as ItemIN, a.* into #tmpTodos5_1 from #tmpTodos5_1All a where ItemIN1<>'';
insert #tmpTodos5_1
select ItemIN2 as ItemIN, a.* from #tmpTodos5_1All a where ItemIN2<>''
union select ItemIN3 as ItemIN, a.* from #tmpTodos5_1All a where ItemIN3<>'' union select ItemIN4 as ItemIN, a.* from #tmpTodos5_1All a where ItemIN4<>''
union select ItemIN5 as ItemIN, a.* from #tmpTodos5_1All a where ItemIN5<>'' union select ItemIN6 as ItemIN, a.* from #tmpTodos5_1All a where ItemIN6<>''
union select ItemIN7 as ItemIN, a.* from #tmpTodos5_1All a where ItemIN7<>'' union select ItemIN8 as ItemIN, a.* from #tmpTodos5_1All a where ItemIN8<>''
union select ItemIN9 as ItemIN, a.* from #tmpTodos5_1All a where ItemIN9<>'' union select ItemIN10 as ItemIN, a.* from #tmpTodos5_1All a where ItemIN10<>'';
-- ALTER TABLE tmpTodos5_1 ADD INDEX(`CaseNo`);
print('5:'+convert(varchar(20),getdate(),126))
-- 4.取得: OA 的「「完成」資料
SELECT CASE WHEN LEFT(a.CaseNo_r,1) in('M','CN') AND (CHARINDEX('提出報告',a.TaskDescription)>0 OR CHARINDEX('提出报告',a.TaskDescription)>0) THEN 'CN 查新' END as ItemFH1, -- CN 查新(完成) -->1.案件編號有-M, 3.案件狀態:結案(RS11), 4.管制事項:提出報告, 5.完成日落在該月份
CASE WHEN a.Office='CN' AND review_stage='' AND a.PatentType IN ('PN01', 'PN02', 'PN03') AND a.TaskDescription='完成初稿' THEN 'CN 新申請' END as ItemFH2, -- CN 新申請(完成) -->1.國家為CN, 2.案件類別: PN01, PN02, PN03, 3.管制事項:完成初稿, 4.完成日落在該月份, 5. 案件程序:中國發明申請(CNP01)
CASE WHEN a.Office='WO' AND review_stage='' AND a.PatentType IN ('PN01','PN07') AND a.TaskDescription='完成初稿' THEN 'PCT 新申請' END as ItemFH3, -- PCT 新申請(完成)-->1.國家為PCT, 2.案件類別: PN01, PN07, 3.管制事項:完成初稿, 4.完成日落在該月份, 5. 案件程序:PCT國際申請(WOP01)
CASE WHEN a.Office='TW' AND review_stage='' AND a.PatentType='PN01' AND a.PctNationalPhase='Y' AND a.TaskDescription='完成初稿' THEN 'TW 新申請' END as ItemFH5, -- TW 新申請(完成)-->1.國家為TW, 2.案件類別: PN01, PN07, 3.管制事項:完成初稿, 4.完成日落在該月份, 5. 案件程序:台灣發明申請(TWP01)
CASE WHEN a.Office NOT IN ('CN', 'WO','TW') AND review_stage='' AND (LEFT(a.CaseNo_r,1)<>'M')
AND a.PatentType='PN01' AND a.PctNationalPhase='Y' AND a.TaskDescription='完成初稿' THEN a.Office+' 新申請' END as ItemFH6, -- XX 新申請(完成) -->1.國家為XX, 2.案件類別: PN01 , 3.是 PCT國家階段, 4.管制事項:完成初稿, 5.完成日落在該月份, 6. 案件程序:專利申請(P01)
CASE WHEN Office='CN' AND review_stage<>'' AND CHARINDEX('完成初稿',a.TaskDescription)>0 THEN 'CN OA' END as ItemFH7, -- CN OA(完成) -->1.國家為CN, 2.抓管制事項:完成初稿(都含), 3.完成日落在該月份, 4.案件程序: 中國發明審查(CNP02)
CASE WHEN Office='TW' AND review_stage<>'' AND a.TaskDescription='完成初稿' THEN 'TW OA' END as ItemFH8, -- TW OA(完成) -->1.國家為TW, 2.抓管制事項:完成初稿(只有這4個字), 4.完成日落在該月份, 4.案件程序: 台灣發明審查(TWP02)
CASE WHEN Office='US' AND review_stage<>'' AND a.TaskDescription='完成初稿' THEN 'US OA' END as ItemFH9, -- US OA(完成) -->1.國家為US, 2.抓管制事項:完成初稿(只有這4個字), 4.完成日落在該月份, 4.案件程序: 美國Utility審查(USP02)
CASE WHEN Office NOT IN ('CN', 'TW','US') AND review_stage<>'' AND a.TaskDescription='完成初稿' THEN a.Office+' OA' END as ItemFH10, -- XX OA(完成) -->1.國家為XX, 2.抓管制事項:完成初稿(只有這4個字), 4.完成日落在該月份, 4.案件程序: 專利審查(P02)
CASE WHEN Office='CN' AND CHARINDEX('核駁報導',a.TaskDescription)>0 THEN 'CN-核駁' END as ItemFH71, -- CN OA-核駁(完成) -->1.國家為CN, 2.抓管制事項:核駁報導(都含), 3.完成日落在該月份, 4.案件程序: 中國發明審查(CNP02)
CASE WHEN a.TaskDescription='核駁報導' AND a.Office NOT IN('CN') THEN a.Office+'-核駁' END as ItemFH81, -- XX OA-核駁(未完成) -->1.國家為XX, 2.管制事項:完成初稿(只有這4個字), 3.案件狀態:答辯中(RS05), 4.完成日為空白, 5.事務到期日落在該月份
CASE WHEN CHARINDEX('rce', LOWER(a.TaskDescription))>0 THEN 'RCE' END as ItemFH91, -- RCE(完成) -->1.不分國家, 2.抓管制事項:RCE -->完成日落在該月份
CASE WHEN CHARINDEX('ids', LOWER(a.TaskDescription))>0 THEN 'IDS' END as ItemFH101, -- IDS(完成) -->1.不分國家, 2.抓管制事項:IDS -->完成日落在該月份
CASE WHEN CHARINDEX('繳費領證', a.TaskDescription)>0 THEN '繳費領證' END as ItemFH111, -- 繳費領證(完成) -->1.不分國家, 2.管制事項有「繳費領證」該項, 3.抓管制事項:完成初稿 -->完成日落在該月份
Convert(varchar(7),a.FinishedDate,126) as YM_FH, a.*
into #tmpTodos5_2All
FROM #tmpTodosAll a
WHERE a.FinishedDate between @p_StartDate AND @p_EndDate
AND (CHARINDEX('完成初稿',a.TaskDescription)>0 OR CHARINDEX('提出報告',a.TaskDescription)>0 OR CHARINDEX('提出报告',a.TaskDescription)>0 OR
CHARINDEX('rce', LOWER(a.TaskDescription))>0 OR CHARINDEX('ids', LOWER(a.TaskDescription))>0 OR CHARINDEX('繳費領證', a.TaskDescription)>0 OR
CHARINDEX('核駁報導', a.TaskDescription)>0
)
;
print('6:'+convert(varchar(20),getdate(),126))
select CAST(ItemFH1 as varCHAR(20)) as ItemFH, a.* into #tmpTodos5_2 from #tmpTodos5_2All a where ItemFH1<>'';
insert #tmpTodos5_2
select ItemFH2 as ItemFH, a.* from #tmpTodos5_2All a where ItemFH2<>''
union select ItemFH3 as ItemFH, a.* from #tmpTodos5_2All a where ItemFH3<>''-- union select ItemFH4 as ItemFH, a.* from #tmpTodos5_2All a where ItemFH4<>''
union select ItemFH5 as ItemFH, a.* from #tmpTodos5_2All a where ItemFH5<>'' union select ItemFH6 as ItemFH, a.* from #tmpTodos5_2All a where ItemFH6<>''
union select ItemFH7 as ItemFH, a.* from #tmpTodos5_2All a where ItemFH7<>'' union select ItemFH8 as ItemFH, a.* from #tmpTodos5_2All a where ItemFH8<>''
union select ItemFH9 as ItemFH, a.* from #tmpTodos5_2All a where ItemFH9<>'' union select ItemFH10 as ItemFH, a.* from #tmpTodos5_2All a where ItemFH10<>''
union select ItemFH71 as ItemFH, a.* from #tmpTodos5_2All a where ItemFH71<>'' union select ItemFH81 as ItemFH, a.* from #tmpTodos5_2All a where ItemFH81<>''
union select ItemFH91 as ItemFH, a.* from #tmpTodos5_2All a where ItemFH91<>''
union select ItemFH101 as ItemFH, a.* from #tmpTodos5_2All a where ItemFH101<>'' union select ItemFH111 as ItemFH, a.* from #tmpTodos5_2All a where ItemFH111<>'';
--select * from #tmpTodos5_2
print('7:'+convert(varchar(20),getdate(),126))
-- 5.取得:「未完成」資料
SELECT CASE WHEN LEFT(a.CaseNo_r,1) in('M','CN') AND (CHARINDEX('提出報告',a.TaskDescription)>0 OR CHARINDEX('提出报告',a.TaskDescription)>0) THEN 'CN 查新' END as Item_NotFH1, -- CN 查新(未完成) -->1.客戶名稱為華星, 2.案件編號有-M, 3.管制事項:提出报告, 4.完成日為空白, 5.事務到期日落在該月份
CASE WHEN a.Office='CN' AND review_stage='' AND a.PatentType IN ('PN01', 'PN02', 'PN03') AND a.TaskDescription='完成初稿' THEN 'CN 新申請' END as Item_NotFH2, -- CN 新申請(未完成) -->1.國家為CN, 2.案件類別: PN01, PN02, PN03, 3.管制事項:完成初稿(只有這4個字), 4.案件狀態:撰稿(RS01), 5.完成日為空白, 6.事務到期日落在該月份
CASE WHEN a.Office='WO' AND review_stage='' AND a.PatentType IN ('PN01','PN07') AND a.TaskDescription='完成初稿' THEN 'PCT 新申請' END as Item_NotFH3, -- PCT 新申請(未完成)-->1.國家為PCT, 2.案件類別: PN01, PN07, 3.管制事項:完成初稿(只有這4個字), 4.案件狀態:撰稿(RS01), 5.完成日為空白, 6.事務到期日落在該月份
CASE WHEN review_stage='' AND a.PatentType='PN01' AND a.PctNationalPhase='Y' AND a.TaskDescription='完成初稿' THEN a.Office+' 新申請' END as Item_NotFH4, -- XX 新申請(未完成) -->1.國家為XX, 2.案件類別: PN01 , 3.是 PCT國家階段, 4.管制事項:完成初稿(只有這4個字), 5.案件狀態:撰稿(RS01), 5.完成日為空白, 6.事務到期日落在該月份
CASE WHEN CHARINDEX('完成初稿',a.TaskDescription)>0 AND review_stage<>'' THEN 'CN OA' END as Item_NotFH5, -- CN OA(未完成) -->1.國家為CN, 2.管制事項:完成初稿(都含), 3.案件狀態:答辯中-撰稿(RS05.1), 4.完成日為空白, 5.事務到期日落在該月份
CASE WHEN a.TaskDescription='完成初稿' AND review_stage<>'' AND a.Office NOT IN('CN') THEN a.Office+' OA' END as Item_NotFH6, -- XX OA(未完成) -->1.國家為XX, 2.管制事項:完成初稿(只有這4個字), 3.案件狀態:答辯中(RS05), 4.完成日為空白, 5.事務到期日落在該月份
CASE WHEN CHARINDEX('核駁報導',a.TaskDescription)>0 THEN 'CN-核駁' END as Item_NotFH51, -- CN OA-核駁(未完成) -->1.國家為CN, 2.管制事項:完成初稿(都含), 3.案件狀態:答辯中-撰稿(RS05.1), 4.完成日為空白, 5.事務到期日落在該月份
CASE WHEN a.TaskDescription='核駁報導' AND a.Office NOT IN('CN') THEN a.Office+'-核駁' END as Item_NotFH61, -- XX OA-核駁(未完成) -->1.國家為XX, 2.管制事項:完成初稿(只有這4個字), 3.案件狀態:答辯中(RS05), 4.完成日為空白, 5.事務到期日落在該月份
CASE WHEN CHARINDEX('rce', LOWER(a.TaskDescription))>0 THEN 'RCE' END as Item_NotFH7, -- RCE(未完成) -->1.不分國家, 2.管制事項:「RCE」該項, 3.完成日為空白, 4.事務到期日落在該月份
CASE WHEN CHARINDEX('ids', LOWER(a.TaskDescription))>0 THEN 'IDS' END as Item_NotFH8, -- IDS(未完成) -->1.不分國家, 2.管制事項:「IDS」該項, 3.完成日為空白, 4.事務到期日落在該月份
CASE WHEN CHARINDEX('繳費領證', a.TaskDescription)>0 THEN '繳費領證' END as Item_NotFH9, -- 繳費領證(未完成) -->1.不分國家, 2.管制事項:「繳費領證」該項, 3.完成日為空白, 4.事務到期日落在該月份
CASE WHEN (a.AttorneyDueDate='' or a.AttorneyDueDate is null) THEN '' ELSE Convert(varchar(7),a.AttorneyDueDate,126) END as YM_AD, a.*
into #tmpTodos5_3All
FROM #tmpTodosAll a
WHERE ((a.AttorneyDueDate between @p_StartDate AND @p_EndDate ) AND (a.finishedDate='' or a.finishedDate is null))
AND (CHARINDEX('完成初稿',a.TaskDescription)>0 OR CHARINDEX('提出報告',a.TaskDescription)>0 OR CHARINDEX('提出报告',a.TaskDescription)>0 OR
CHARINDEX('rce', LOWER(a.TaskDescription))>0 OR CHARINDEX('ids', LOWER(a.TaskDescription))>0 OR CHARINDEX('繳費領證', a.TaskDescription)>0 OR
CHARINDEX('核駁報導', a.TaskDescription)>0 )
;
--select count() from #tmpTodosAll
--where Flowkey='702625'
select CAST(Item_NotFH1 as varCHAR(20)) as Item_NotFH, a.* into #tmpTodos5_3 from #tmpTodos5_3All a where Item_NotFH1<>'';
Insert into #tmpTodos5_3
select Item_NotFH2 as Item_NotFH, a.* from #tmpTodos5_3All a where Item_NotFH2<>''
Union select Item_NotFH3 as Item_NotFH, a.* from #tmpTodos5_3All a where Item_NotFH3<>''
Union select Item_NotFH4 as Item_NotFH, a.* from #tmpTodos5_3All a where Item_NotFH4<>''
Union select Item_NotFH5 as Item_NotFH, a.* from #tmpTodos5_3All a where Item_NotFH5<>''
Union select Item_NotFH6 as Item_NotFH, a.* from #tmpTodos5_3All a where Item_NotFH6<>''
Union select Item_NotFH7 as Item_NotFH, a.* from #tmpTodos5_3All a where Item_NotFH7<>''
Union select Item_NotFH8 as Item_NotFH, a.* from #tmpTodos5_3All a where Item_NotFH8<>''
Union select Item_NotFH9 as Item_NotFH, a.* from #tmpTodos5_3All a where Item_NotFH9<>''
Union select Item_NotFH51 as Item_NotFH, a.* from #tmpTodos5_3All a where Item_NotFH51<>''
Union select Item_NotFH61 as Item_NotFH, a.* from #tmpTodos5_3All a where Item_NotFH61<>'';
print('8:'+convert(varchar(20),getdate(),126))
--print(convert(varchar(20),getdate(),126))
-- ALTER TABLE tmpTodos5_3 ADD INDEX(`CaseNo`);
--*/
-- --print(convert(varchar(20),getdate(),126))
---- ALTER TABLE tmpTodos5_3 ADD INDEX(`CaseNo`);
--select * from #tmpTodos5_3
--select * from #tmpTodos5_1
----select * from #tmpTodosAll
--select * from #tmpTodos5_2
--select * from #tmpPatC_5
;
-- 6.結果
DECLARE @SqlString varchar(max)= '', @SqlJoinString varchar(max)= '', @CommonString varchar(max)= '', @CommonStringJoin1 varchar(max)= '', @CommonStringJoin2 varchar(max)= '',
@CommonStringJoin3 varchar(max)= '', @CommonStringJoin4 varchar(max)= '', @SortString varchar(500)= '', @cnt tinyint= 1, @cntT varchar(3)= '', @cntO varchar(3)= '',
@groupcase1 varchar(200)= '', @groupcase2 varchar(200)= '', @groupcase3 varchar(200)= '', @groupcase4 varchar(200)= '', @groupcase varchar(200)= '', @p_YMT_value varchar(7);
WHILE @cnt < 13
BEGIN
SET @cntT = RIGHT(REPLICATE('0', 2) + CAST(@cnt AS varchar), 2); -- 補零
SET @cntO = CAST(@cnt AS varchar);
SET @p_YMT_value =
(
SELECT Value
FROM #p_YMT
WHERE id = @cntO
);
if @p_YMT_value is not null
BEGIN
SET @CommonString = @CommonString + 'CASE WHEN ''' + @p_EndDateYM + ''' >= ''' + @p_YMT_value + ''' THEN 1 ELSE 0 END v' + @cntT + ',STUFF ((SELECT distinct '','' + (CASE WHEN attr_IN' + @cntT
+ '<>'''' THEN attr_IN' + @cntT + ' END) @groupcase FOR XML PATH('''')), 1, 1, N'''') as attr_IN' + @cntT + '_todos2, SUM(Isnull(IN' + @cntT + ',0)) as ''新進_' + @cntT
+ ''', STUFF ((SELECT distinct '','' + (CASE WHEN attr_FH' + @cntT + '<>'''' THEN attr_FH' + @cntT + ' END) @groupcase FOR XML PATH('''')), 1, 1, N'''') as attr_FH'
+ @cntT + '_todos2, SUM(Isnull(FH' + @cntT + ',0)) as ''完成_' + @cntT + ''',';
SET @CommonStringJoin1 = @CommonStringJoin1 + 'SUM(CASE WHEN YM_cr= ''' + @p_YMT_value + ''' THEN 1 ELSE 0 END) as IN' + @cntT + ',STUFF ((SELECT distinct '','' + (CASE WHEN p.YM_cr= ''' + @p_YMT_value + ''' THEN FlowKey END) @groupcase FOR XML PATH('''')), 1, 1, N'''') as attr_IN' + @cntT + ',' + ' 0 as FH' + @cntT + ', '''' as attr_FH' + @cntT + ',';
SET @CommonStringJoin2 = @CommonStringJoin2 + 'SUM(CASE WHEN YM_ST=''' + @p_YMT_value + ''' THEN 1 ELSE 0 END) as IN' + @cntT + ',STUFF ((SELECT distinct '','' + (CASE WHEN YM_ST= ''' + @p_YMT_value + ''' THEN FlowKey END) @groupcase FOR XML PATH('''')), 1, 1, N'''') as attr_IN' + @cntT + ',' + ' 0 as FH' + @cntT + ', '''' as attr_FH' + @cntT + ',';
SET @CommonStringJoin3 = @CommonStringJoin3 + '0 as IN' + @cntT + ', '''' as attr_IN' + @cntT + ',' + 'SUM(CASE WHEN YM_FH= ''' + @p_YMT_value + ''' THEN 1 ELSE 0 END) as FH' + @cntT + ', STUFF ((SELECT distinct '','' + (CASE WHEN YM_FH= ''' + @p_YMT_value + ''' THEN FlowKey END) @groupcase FOR XML PATH('''')), 1, 1, N'''') as attr_FH' + @cntT + ',';
SET @CommonStringJoin4 = @CommonStringJoin4 + '0 as IN' + @cntT + ', '''' as attr_IN' + @cntT + ',' + '0 as FH' + @cntT + ', '''' as attr_FH' + @cntT + ', ';
END
SET @cnt = @cnt + 1;
END;
SET @CommonString = @CommonString + +'1 as v13, STUFF ((SELECT distinct '','' + (CASE WHEN att_cntNotFH<>'''' THEN att_cntNotFH END) @groupcase FOR XML PATH('''')), 1, 1, N'''') as attr_NotFH_todos2, SUM(isnull(cntNotFH,0)) as 未完成 ';
SET @CommonStringJoin1 = @CommonStringJoin1 + ' 0 as cntNotFH, '''' as att_cntNotFH ';
SET @CommonStringJoin2 = @CommonStringJoin2 + ' 0 as cntNotFH, '''' as att_cntNotFH ';
SET @CommonStringJoin3 = @CommonStringJoin3 + ' 0 as cntNotFH, '''' as att_cntNotFH ';
SET @CommonStringJoin4 = @CommonStringJoin4 + ' COUNT(Item_NotFH) as cntNotFH, STUFF ((SELECT distinct '','' + FlowKey @groupcase FOR XML PATH('''')), 1, 1, N'''') as attr_cntNotFH ';
IF @p_RptType = 'byItem' -- by 項目
BEGIN
SET @groupcase = ' from #tmpItem p LEFT JOIN #tmp_SqlJoin q ON p.ItemName=q.ItemIN where p.ItemNo=a.ItemNo and p.ItemName=a.ItemName ';
SET @groupcase1 = ' from #tmpPatC_5 p WHERE p.ItemIN<>'''' and p.ItemIN=a.ItemIN ';
SET @groupcase2 = ' from #tmpTodos5_1 p WHERE p.ItemIN<>'''' and p.ItemIN=a.ItemIN ';
SET @groupcase3 = ' from #tmpTodos5_2 p WHERE p.ItemFH<>'''' and p.ItemFH=a.ItemFH ';
SET @groupcase4 = ' from #tmpTodos5_3 p where p.Item_NotFH<>'''' and p.Item_NotFH=a.Item_NotFH ';
SET @SqlJoinString = @SqlJoinString + ' select a.* into #tmp_SqlJoin from (
SELECT ItemIN, ' + replace(@CommonStringJoin1, '@groupcase', @groupcase1) +',count(Emp_ID) as Emp_ID ' + 'FROM #tmpPatC_5 a WHERE ItemIN<>'''' GROUP BY ItemIN,Emp_ID '
+ 'Union all ' + 'SELECT ItemIN, ' + replace(@CommonStringJoin2, '@groupcase', @groupcase2) +',count(Emp_ID) as Emp_ID ' +'FROM #tmpTodos5_1 a WHERE ItemIN<>'''' GROUP BY ItemIN,Emp_ID '
+ 'Union all ' + 'SELECT ItemFH as ItemIN, ' + replace(@CommonStringJoin3, '@groupcase', @groupcase3) +',count(Emp_ID) as Emp_ID ' + 'FROM #tmpTodos5_2 a WHERE ItemFH<>'''' GROUP BY ItemFH,Emp_ID '
+ 'Union all ' + 'SELECT Item_NotFH as ItemIN, ' + replace(@CommonStringJoin4, '@groupcase', @groupcase4) +',count(Emp_ID) as Emp_ID ' +'FROM #tmpTodos5_3 a where Item_NotFH<>'''' GROUP BY Item_NotFH,Emp_ID ) a order by ItemIN';
--select cast(@SqlJoinString as varchar(max)); --debug query
--Exec (@SqlJoinString+' ; select * from #tmp_SqlJoin ');
SET @SqlString = @SqlString + @SqlJoinString + ' ;';
SET @SqlString = @SqlString + 'SELECT a.ItemName as attr_ItemName, a.ItemName as 項目, '''' as attr_Emp_ID,'
--+'sum(isnull(Emp_ID,0)) as 人數, '
+ replace(@CommonString, '@groupcase', @groupcase) + ' ' + 'FROM #tmpItem a '
+ 'INNER JOIN #tmp_SqlJoin b ON a.ItemName=b.ItemIN ' + ' GROUP BY a.ItemNo, a.ItemName Order by a.ItemNo ;' ;
END;
ELSE
BEGIN
IF @p_RptType = 'byDept'
BEGIN
-- by 所別
SET @groupcase = ' from #tmpItem p LEFT JOIN #tmp_SqlJoin q ON p.ItemName=q.ItemIN where p.ItemNo=a.ItemNo and p.ItemName=a.ItemName and q.Emp_DS=b.Emp_DS and q.Emp_Sort=b.Emp_Sort ';
SET @groupcase1 = ' from #tmpPatC_5 p WHERE p.ItemIN<>'''' and p.ItemIN=a.ItemIN and p.Emp_DS=a.Emp_DS and p.Emp_Sort=a.Emp_Sort ';
SET @groupcase2 = ' from #tmpTodos5_1 p WHERE p.ItemIN<>'''' and p.ItemIN=a.ItemIN and p.Emp_DS=a.Emp_DS and p.Emp_Sort=a.Emp_Sort ';
SET @groupcase3 = ' from #tmpTodos5_2 p WHERE p.ItemFH<>'''' and p.ItemFH=a.ItemFH and p.Emp_DS=a.Emp_DS and p.Emp_Sort=a.Emp_Sort ';
SET @groupcase4 = ' from #tmpTodos5_3 p where p.Item_NotFH<>'''' and p.Item_NotFH=a.Item_NotFH and p.Emp_DS=a.Emp_DS and p.Emp_Sort=a.Emp_Sort ';
SET @SqlJoinString = @SqlJoinString + 'select a.* into #tmp_SqlJoin from (
SELECT ItemIN, Emp_DS, Emp_Sort,' + replace(@CommonStringJoin1, '@groupcase', @groupcase1) +',count(Emp_ID) as Emp_ID ' +'FROM #tmpPatC_5 a WHERE ItemIN<>'''' GROUP BY ItemIN, Emp_DS, Emp_Sort,Emp_ID '
+ 'Union all ' + 'SELECT ItemIN, Emp_DS, Emp_Sort,' + replace(@CommonStringJoin2, '@groupcase', @groupcase2) + ',count(Emp_ID) as Emp_ID ' +'FROM #tmpTodos5_1 a WHERE ItemIN<>'''' GROUP BY ItemIN, Emp_DS, Emp_Sort ,Emp_ID '
+ 'Union all ' + 'SELECT ItemFH as ItemIN, Emp_DS, Emp_Sort, ' + replace(@CommonStringJoin3, '@groupcase', @groupcase3) +',count(Emp_ID) as Emp_ID ' + 'FROM #tmpTodos5_2 a WHERE ItemFH<>'''' GROUP BY ItemFH, Emp_DS, Emp_Sort,Emp_ID '
+ 'Union all ' + 'SELECT Item_NotFH as ItemIN, Emp_DS, Emp_Sort, ' + replace(@CommonStringJoin4, '@groupcase', @groupcase4) +',count(Emp_ID) as Emp_ID ' + 'FROM #tmpTodos5_3 a where Item_NotFH<>'''' GROUP BY Item_NotFH, Emp_DS, Emp_Sort,Emp_ID ) a order by ItemIN';
select cast(@SqlJoinString as varchar(max)); --debug query
Exec (@SqlJoinString+' ; select * from #tmp_SqlJoin ');
SET @SqlString = @SqlString + @SqlJoinString + ' ;';
--SET @SqlString = @SqlString + 'SELECT a.ItemName as attr_ItemName, a.ItemName as 項目, Emp_DS as attr_Emp_DS, ISNULL(Emp_DS,''未指定所別'') as 所別, ' + replace(@CommonString, '@groupcase', @groupcase)
SET @SqlString = @SqlString + 'SELECT a.ItemName as attr_ItemName, a.ItemName as 項目, Emp_DS as attr_Emp_DS,case when ISNULL(Emp_DS,'''')='''' Then ''未指定所別'' Else Emp_DS END as 所別,'''' as attr_Emp_ID,'
--+'sum(isnull(Emp_ID,0)) as 人數, '
+ replace(@CommonString, '@groupcase', @groupcase)
+ ' ' + 'FROM #tmpItem a ' + 'INNER JOIN #tmp_SqlJoin b ON a.ItemName=b.ItemIN ' + ' GROUP BY a.ItemNo, a.ItemName, Emp_DS ,Emp_Sort
Order by a.ItemNo, CASE Emp_DS WHEN ''台北所'' then 10 WHEN ''台中所'' THEN 20 WHEN ''高雄所''
THEN 30 WHEN ''上海所'' THEN 40 WHEN ''深圳所'' THEN 50 WHEN
''武漢所'' THEN 60 WHEN ''蘇州所'' THEN 70 WHEN ''外包人員'' THEN 80 WHEN ''小計'' THEN 999 ELSE 990 END, Emp_Sort ; ' ;
END;
ELSE
BEGIN
IF @p_RptType = 'byDS'
BEGIN
-- by 部別
SET @groupcase = ' from #tmpItem p LEFT JOIN #tmp_SqlJoin q ON p.ItemName=q.ItemIN where p.ItemNo=a.ItemNo and p.ItemName=a.ItemName and q.Emp_Item=b.Emp_Item and q.Emp_DS=b.Emp_DS ';
SET @groupcase1 = ' from #tmpPatC_5 p WHERE p.ItemIN<>'''' and p.ItemIN=a.ItemIN and p.Emp_DS=a.Emp_DS and p.Emp_Item=a.Emp_Item and p.Emp_Itemnum=a.Emp_Itemnum ';
SET @groupcase2 = ' from #tmpTodos5_1 p WHERE p.ItemIN<>'''' and p.ItemIN=a.ItemIN and p.Emp_DS=a.Emp_DS and p.Emp_Item=a.Emp_Item and p.Emp_Itemnum=a.Emp_Itemnum ';
SET @groupcase3 = ' from #tmpTodos5_2 p WHERE p.ItemFH<>'''' and p.ItemFH=a.ItemFH and p.Emp_DS=a.Emp_DS and p.Emp_Item=a.Emp_Item and p.Emp_Itemnum=a.Emp_Itemnum ';
SET @groupcase4 = ' from #tmpTodos5_3 p where p.Item_NotFH<>'''' and p.Item_NotFH=a.Item_NotFH and p.Emp_DS=a.Emp_DS and p.Emp_Item=a.Emp_Item and p.Emp_Itemnum=a.Emp_Itemnum ';
SET @SqlJoinString = @SqlJoinString + 'select a.* into #tmp_SqlJoin from (
SELECT ItemIN, Emp_DS, Emp_Item,Emp_Itemnum , ' + replace(@CommonStringJoin1, '@groupcase', @groupcase1) +',count(a.Emp_ID) as Emp_ID ' + 'FROM #tmpPatC_5 a WHERE ItemIN<>'''' GROUP BY ItemIN, Emp_DS, Emp_Item ,Emp_Itemnum,Emp_ID '
+ 'Union all ' + 'SELECT ItemIN, Emp_DS, Emp_Item,Emp_Itemnum , ' + replace(@CommonStringJoin2, '@groupcase', @groupcase2) +',count(a.Emp_ID) as Emp_ID ' + 'FROM #tmpTodos5_1 a WHERE ItemIN<>'''' GROUP BY ItemIN, Emp_DS, Emp_Item ,Emp_Itemnum,Emp_ID '
+ 'Union all ' + 'SELECT ItemFH as ItemIN,Emp_DS, Emp_Item,Emp_Itemnum , ' + replace(@CommonStringJoin3, '@groupcase', @groupcase3) +',count(a.Emp_ID) as Emp_ID ' + 'FROM #tmpTodos5_2 a WHERE ItemFH<>'''' GROUP BY ItemFH, Emp_DS, Emp_Item,Emp_Itemnum,Emp_ID '
+ 'Union all ' + 'SELECT Item_NotFH as ItemIN, Emp_DS,Emp_Item,Emp_Itemnum , ' + replace(@CommonStringJoin4, '@groupcase', @groupcase4) +',count(a.Emp_ID) as Emp_ID ' + 'FROM #tmpTodos5_3 a where Item_NotFH<>'''' GROUP BY Item_NotFH, Emp_DS, Emp_Item,Emp_Itemnum,Emp_ID ) a order by ItemIN';
select cast(@SqlJoinString as varchar(max)); --debug query
--Exec (@SqlJoinString+' ; select * from #tmp_SqlJoin ');
--Exec (@SqlJoinString+' ; ');
SET @SqlString = @SqlString + @SqlJoinString + ' ;';
SET @SqlString = @SqlString + 'SELECT a.ItemName as attr_ItemName, a.ItemName as 項目, Emp_DS as attr_Emp_DS, case when ISNULL(Emp_DS,'''')='''' Then ''未指定所別'' Else Emp_DS END as 所別, Emp_Item as attr_Emp_Item, ISNULL(Emp_Item,'''') as 部別,'''' as attr_Emp_ID,'
--+'sum(isnull(Emp_ID,0)) as 人數, '
+ replace(@CommonString, '@groupcase', @groupcase) + ' ' + 'FROM #tmpItem a ' + 'INNER JOIN #tmp_SqlJoin b ON a.ItemName=b.ItemIN ' + ' GROUP BY a.ItemNo, a.ItemName, Emp_Item,Emp_DS
Order by a.ItemNo, CASE Emp_DS WHEN ''台北所'' then 10 WHEN ''台中所'' THEN 20 WHEN ''高雄所''
THEN 30 WHEN ''上海所'' THEN 40 WHEN ''深圳所'' THEN 50 WHEN
''武漢所'' THEN 60 WHEN ''蘇州所'' THEN 70 WHEN ''外包人員'' THEN 80 WHEN ''小計'' THEN 999 ELSE 990 END ; ';
END;
END;
END;
print('9:'+convert(varchar(20),getdate(),126))
EXEC (@SqlString+' ;IF OBJECT_ID(''tempdb..#tmp_SqlJoin'', ''U'') IS NOT NULL DROP TABLE #tmp_SqlJoin; ');
--SELECT CAST(@SqlString AS VARCHAR(MAX)); --debug query
print('10:'+convert(varchar(20),getdate(),126))
\ No newline at end of file
BUSE [IPEasy_test] BUSE [IPEasy_test]

Alter PROCEDURE rpt_FinishCase_DS1(
@p_DateF varchar(10),
@p_DateT varchar(10)
)
AS
BEGIN
-- 專利一部完成案件統計
Declare @p_CustName varchar(20);
SET @p_CustName='华星';
-- 取得「客戶名稱」的 recordset
SELECT ID as ItemNo,replace(replace(value, char(13),''), char(10),'') as ItemDesc into #tb_Split2 FROM [ufn_split](@p_CustName, ';') ;
-- 員工部別 (因該員工會多部別, 放在Emp_DS2裡, 所以要distinct )
--SELECT distinct a.Emp_ID, Emp_Name, emp_N1, Emp_N2, Emp_N3, Emp_DS, Emp_DSNum, Emp_Item, Emp_ItemNum, Emp_Sort
--into #tmpEmp
--FROM vw_employee a
SELECT distinct a.user_name as Emp_ID, cn_name as Emp_Name, b.Emp_DS, b.Emp_DSNum, b.Emp_Item, b.Emp_ItemNum, 0 as Emp_Sort ,a.user_id
--, emp_N1, Emp_N2, Emp_N3
into #tmpEmp
FROM [evw_s_user_info] a
left join [dbo].[evw_qResult_Emp] b on a.user_name=b.LoginID
;
--ALTER TABLE tmpEmp ADD INDEX(`Emp_ID`);
-- 取得RPT項目List
select * into #tmpItem from (
SELECT 11 as ItemNo, 'CN 新案' as ItemName union
SELECT 12, 'PCT 新案' union SELECT 13, 'US 新案' union
SELECT 21, 'CN OA' union SELECT 22, 'US OA' union SELECT 23, 'KR OA' union SELECT 25, 'JP OA' union SELECT 26, 'EU OA' union
SELECT 27, 'DE OA' union SELECT 28, 'GB OA' union SELECT 29, 'EA OA' union SELECT 50, 'BR OA') a ;
-- 1.取得: ToDos
SELECT a.*,case when ics.case_status_code='NF_P' THEN 'Y' END as PctNationalPhase --,ISNULL(e.Dept_ID,'') as AssignedTo_DeptID, ISNULL(e.Dept_name,'') as AssignedTo_DeptName
, e.Emp_ID, e.Emp_DS, c.customer_name as Client_CompanyName,cast(a.sn as varchar(10)) as FlowKey ,
e.Emp_DSNum, e.Emp_Item, e.Emp_ItemNum, e.Emp_Sort,(select value from [ufn_split](case_volume,'-') a where a.ID=2) as CaseNo_r,b.country_id as office
into #tmpTodosAll
FROM esn_todos a
left JOIN p_case_info b ON a.case_id=b.case_id
left join c_customer c on b.customer_id=c.customer_id
inner join #tb_Split2 s on c.customer_name like '%'+s.ItemDesc +'%'
left join #tmpEmp e on a.AssignedTo_userid=e.user_id
left join i_case_status ics on ics.case_status_id=b.case_status_id
WHERE a.AttorneyDueDate between @p_DateF AND @p_DateT
AND (a.FinishedDate='' or a.FinishedDate is null)
AND a.PatentType IN ('PN01', 'PN02', 'PN03','PN07')
AND CHARINDEX('完成初稿',a.TaskDescription)>0 ;
--select * into #tmpTodosAll from (
--SELECT a.*, b.PctNationalPhase, e.Emp_ID, e.Emp_DS, e.Emp_DSNum, e.Emp_Item, e.Emp_ItemNum, e.Emp_Sort
-- FROM vw_Todos a
-- inner join tb_split2 s on a.Client_CompanyName REGEXP BINARY replace(replace(s.ItemDesc, char(13),''), char(10),'')
--LEFT JOIN patentcase b ON a.CaseNo=b.CaseNo
-- left join tmpEmp e ON a.AssignedTo=e.Emp_ID
--WHERE a.FinishedDate between @p_DateF AND @p_DateT
-- AND a.PatentType IN ('PN01', 'PN02', 'PN03','PN07') AND (LOCATE('完成初稿',a.TaskDescription)>0 )
--) a ;
-- 2.取得:「已完成」資料
SELECT CASE WHEN a.Office='CN' AND a.TaskDescription='完成初稿' AND a.Matter='CNP01' THEN 'CN 新案' END as ItemFH1, -- CN 新申請(完成) -->1.國家為CN, 2.案件類別: PN01, PN02, PN03, 3.管制事項:完成初稿, 4.完成日落在該月份, 5. 案件程序:中國發明申請(CNP01)
CASE WHEN a.Office='PCT' AND a.TaskDescription='完成初稿' AND a.Matter='WOP01' THEN 'PCT 新案' END as ItemFH2, -- PCT 新申請(完成)-->1.國家為PCT, 2.案件類別: PN01, PN07, 3.管制事項:完成初稿, 4.完成日落在該月份, 5. 案件程序:PCT國際申請(WOP01)
CASE WHEN a.Office='US' AND a.PatentType='PN01' AND a.PctNationalPhase='Y' AND a.TaskDescription='完成初稿' AND a.Matter='USP01' THEN 'US 新案' END as ItemFH3, -- US 新申請(完成)-->1.國家為US, 2.案件類別: PN01, PN07, 3.管制事項:完成初稿, 4.完成日落在該月份, 5. 案件程序:美國Utility申請(USP01)
CASE WHEN Office='CN' AND CHARINDEX('完成初稿',a.TaskDescription)>0 AND a.Matter='CNP02' THEN 'CN OA' END as ItemFH4, -- CN OA(完成) -->1.國家為CN, 2.抓管制事項:完成初稿(都含), 3.完成日落在該月份, 4.案件程序: 中國發明審查(CNP02)
CASE WHEN Office='US' AND a.TaskDescription='完成初稿' AND a.Matter='USP02' THEN 'US OA' END as ItemFH5, -- US OA(完成) -->1.國家為US, 2.抓管制事項:完成初稿(只有這4個字), 4.完成日落在該月份, 4.案件程序: 美國Utility審查(USP02)
CASE WHEN Office='TW' AND a.TaskDescription='完成初稿' AND a.Matter='TWP02' THEN 'TW OA' END as ItemFH6, -- TW OA(完成) -->1.國家為TW, 2.抓管制事項:完成初稿(只有這4個字), 4.完成日落在該月份, 4.案件程序: 台灣發明審查(TWP02)
CASE WHEN Office NOT IN ('CN', 'TW','US') AND a.TaskDescription='完成初稿' AND a.Matter='P02' THEN a.Office+' OA' END as ItemFH7, -- XX OA(完成) -->1.國家為XX, 2.抓管制事項:完成初稿(只有這4個字), 4.完成日落在該月份, 4.案件程序: 專利審查(P02)
LEFT(a.FinishedDate,7) as YM_FH, a.*
into #tmpTodos2
FROM #tmpTodosAll a
;
select * into #tmpTodos3 from (
select CAST(ItemFH1 as CHAR(20)) as ItemFH, a.* from #tmpTodos2 a where ItemFH1<>''
union select ItemFH2 as ItemFH, a.* from #tmpTodos2 a where ItemFH2<>''
union select ItemFH3 as ItemFH, a.* from #tmpTodos2 a where ItemFH3<>''
union select ItemFH4 as ItemFH, a.* from #tmpTodos2 a where ItemFH4<>''
union select ItemFH5 as ItemFH, a.* from #tmpTodos2 a where ItemFH5<>''
union select ItemFH6 as ItemFH, a.* from #tmpTodos2 a where ItemFH6<>''
union select ItemFH7 as ItemFH, a.* from #tmpTodos2 a where ItemFH7<>''
) a;
-- select * from tmpTodos3;
-- 顯示結果
SELECT AssignedTo as attr_AssignedTo, AssignedTo_Name as attr_AssignedToName, Emp_DS as attr_EmpDS, Emp_Item as attr_EmpItem,
AssignedTo+' '+AssignedTo_Name as 承辦人, Emp_DS as 部別,
'tdr CurPT' as 'class_1',
STUFF ((select ','+ p.FlowKey from #tmpTodos3 p
where p.ItemFH<>'' AND p.Emp_Item='專利一部' AND p.ItemFH IN ('CN 新案','PCT 新案','US 新案','CN OA','US OA','KR OA','JP OA','EU OA','DE OA','GB OA','EA OA','BR OA')
and p.AssignedTo=a.AssignedTo and p.AssignedTo_Name=a.AssignedTo_Name and p.Emp_DSNum=a.Emp_DSNum and p.Emp_ItemNum=a.Emp_ItemNum FOR XML PATH('')
), 1, 1, N'') attr_point_todos, sum(points) as 承辦人完成點數,
'corGre tdr CurPT' as 'class_1','' attr_CNNC_todos, SUM(CASE WHEN ItemFH='CN 新案' THEN 1 ELSE 0 END) as CN新案,
STUFF ((select ','+CASE WHEN p.ItemFH='PCT 新案' THEN p.FlowKey END from #tmpTodos3 p
where p.ItemFH<>'' AND p.Emp_Item='專利一部' AND p.ItemFH IN ('CN 新案','PCT 新案','US 新案','CN OA','US OA','KR OA','JP OA','EU OA','DE OA','GB OA','EA OA','BR OA')
and p.AssignedTo=a.AssignedTo and p.AssignedTo_Name=a.AssignedTo_Name and p.Emp_DSNum=a.Emp_DSNum and p.Emp_ItemNum=a.Emp_ItemNum FOR XML PATH('')
), 1, 1, N'') attr_PCTNC_todos, SUM(CASE WHEN ItemFH='PCT 新案' THEN 1 ELSE 0 END) as PCT新案,
STUFF ((select ','+CASE WHEN p.ItemFH='US新案' THEN p.FlowKey END from #tmpTodos3 p
where p.ItemFH<>'' AND p.Emp_Item='專利一部' AND p.ItemFH IN ('CN 新案','PCT 新案','US 新案','CN OA','US OA','KR OA','JP OA','EU OA','DE OA','GB OA','EA OA','BR OA')
and p.AssignedTo=a.AssignedTo and p.AssignedTo_Name=a.AssignedTo_Name and p.Emp_DSNum=a.Emp_DSNum and p.Emp_ItemNum=a.Emp_ItemNum FOR XML PATH('')
), 1, 1, N'') attr_USNC_todos, SUM(CASE WHEN a.ItemFH='US 新案' THEN 1 ELSE 0 END) as US新案,
STUFF ((select ','+CASE WHEN p.ItemFH='US新案' THEN p.FlowKey END from #tmpTodos3 p
where p.ItemFH<>'' AND p.Emp_Item='專利一部' AND p.ItemFH IN ('CN 新案','PCT 新案','US 新案','CN OA','US OA','KR OA','JP OA','EU OA','DE OA','GB OA','EA OA','BR OA')
and p.AssignedTo=a.AssignedTo and p.AssignedTo_Name=a.AssignedTo_Name and p.Emp_DSNum=a.Emp_DSNum and p.Emp_ItemNum=a.Emp_ItemNum FOR XML PATH('')
), 1, 1, N'') attr_TotNC_todos, SUM(CASE WHEN ItemFH IN ('CN 新案','PCT 新案','US 新案') THEN 1 ELSE 0 END) as 總計,
STUFF ((select ','+CASE WHEN p.ItemFH='CN OA' THEN p.FlowKey END from #tmpTodos3 p
where p.ItemFH<>'' AND p.Emp_Item='專利一部' AND p.ItemFH IN ('CN 新案','PCT 新案','US 新案','CN OA','US OA','KR OA','JP OA','EU OA','DE OA','GB OA','EA OA','BR OA')
and p.AssignedTo=a.AssignedTo and p.AssignedTo_Name=a.AssignedTo_Name and p.Emp_DSNum=a.Emp_DSNum and p.Emp_ItemNum=a.Emp_ItemNum FOR XML PATH('')
), 1, 1, N'') attr_CNOA_todos, SUM(CASE WHEN ItemFH='CN OA' THEN 1 ELSE 0 END) as 'CN OA',
STUFF ((select ','+CASE WHEN p.ItemFH='US OA' THEN p.FlowKey END from #tmpTodos3 p
where p.ItemFH<>'' AND p.Emp_Item='專利一部' AND p.ItemFH IN ('CN 新案','PCT 新案','US 新案','CN OA','US OA','KR OA','JP OA','EU OA','DE OA','GB OA','EA OA','BR OA')
and p.AssignedTo=a.AssignedTo and p.AssignedTo_Name=a.AssignedTo_Name and p.Emp_DSNum=a.Emp_DSNum and p.Emp_ItemNum=a.Emp_ItemNum FOR XML PATH('')
), 1, 1, N'') attr_USOA_todos, SUM(CASE WHEN ItemFH='US OA' THEN 1 ELSE 0 END) as 'US OA',
STUFF ((select ','+CASE WHEN p.ItemFH='KR OA' THEN p.FlowKey END from #tmpTodos3 p
where p.ItemFH<>'' AND p.Emp_Item='專利一部' AND p.ItemFH IN ('CN 新案','PCT 新案','US 新案','CN OA','US OA','KR OA','JP OA','EU OA','DE OA','GB OA','EA OA','BR OA')
and p.AssignedTo=a.AssignedTo and p.AssignedTo_Name=a.AssignedTo_Name and p.Emp_DSNum=a.Emp_DSNum and p.Emp_ItemNum=a.Emp_ItemNum FOR XML PATH('')
), 1, 1, N'') attr_KROA_todos, SUM(CASE WHEN ItemFH='KR OA' THEN 1 ELSE 0 END) as 'KR OA',
STUFF ((select ','+CASE WHEN p.ItemFH='JP OA' THEN p.FlowKey END from #tmpTodos3 p
where p.ItemFH<>'' AND p.Emp_Item='專利一部' AND p.ItemFH IN ('CN 新案','PCT 新案','US 新案','CN OA','US OA','KR OA','JP OA','EU OA','DE OA','GB OA','EA OA','BR OA')
and p.AssignedTo=a.AssignedTo and p.AssignedTo_Name=a.AssignedTo_Name and p.Emp_DSNum=a.Emp_DSNum and p.Emp_ItemNum=a.Emp_ItemNum FOR XML PATH('')
), 1, 1, N'') attr_JPOA_todos, SUM(CASE WHEN ItemFH='JP OA' THEN 1 ELSE 0 END) as 'JP OA',
STUFF ((select ','+CASE WHEN p.ItemFH='EU OA' THEN p.FlowKey END from #tmpTodos3 p
where p.ItemFH<>'' AND p.Emp_Item='專利一部' AND p.ItemFH IN ('CN 新案','PCT 新案','US 新案','CN OA','US OA','KR OA','JP OA','EU OA','DE OA','GB OA','EA OA','BR OA')
and p.AssignedTo=a.AssignedTo and p.AssignedTo_Name=a.AssignedTo_Name and p.Emp_DSNum=a.Emp_DSNum and p.Emp_ItemNum=a.Emp_ItemNum FOR XML PATH('')
), 1, 1, N'') attr_EUOA_todos, SUM(CASE WHEN ItemFH='EU OA' THEN 1 ELSE 0 END) as 'EU OA',
STUFF ((select ','+CASE WHEN p.ItemFH='DE OA' THEN p.FlowKey END from #tmpTodos3 p
where p.ItemFH<>'' AND p.Emp_Item='專利一部' AND p.ItemFH IN ('CN 新案','PCT 新案','US 新案','CN OA','US OA','KR OA','JP OA','EU OA','DE OA','GB OA','EA OA','BR OA')
and p.AssignedTo=a.AssignedTo and p.AssignedTo_Name=a.AssignedTo_Name and p.Emp_DSNum=a.Emp_DSNum and p.Emp_ItemNum=a.Emp_ItemNum FOR XML PATH('')
), 1, 1, N'') attr_DEOA_todos, SUM(CASE WHEN ItemFH='DE OA' THEN 1 ELSE 0 END) as 'DE OA',
STUFF ((select ','+CASE WHEN p.ItemFH='GB OA' THEN p.FlowKey END from #tmpTodos3 p
where p.ItemFH<>'' AND p.Emp_Item='專利一部' AND p.ItemFH IN ('CN 新案','PCT 新案','US 新案','CN OA','US OA','KR OA','JP OA','EU OA','DE OA','GB OA','EA OA','BR OA')
and p.AssignedTo=a.AssignedTo and p.AssignedTo_Name=a.AssignedTo_Name and p.Emp_DSNum=a.Emp_DSNum and p.Emp_ItemNum=a.Emp_ItemNum FOR XML PATH('')
), 1, 1, N'') attr_GBOA_todos, SUM(CASE WHEN ItemFH='GB OA' THEN 1 ELSE 0 END) as 'GB OA',
STUFF ((select ','+CASE WHEN p.ItemFH='EA OA' THEN p.FlowKey END from #tmpTodos3 p
where p.ItemFH<>'' AND p.Emp_Item='專利一部' AND p.ItemFH IN ('CN 新案','PCT 新案','US 新案','CN OA','US OA','KR OA','JP OA','EU OA','DE OA','GB OA','EA OA','BR OA')
and p.AssignedTo=a.AssignedTo and p.AssignedTo_Name=a.AssignedTo_Name and p.Emp_DSNum=a.Emp_DSNum and p.Emp_ItemNum=a.Emp_ItemNum FOR XML PATH('')
), 1, 1, N'') attr_EAOA_todos, SUM(CASE WHEN ItemFH='EA OA' THEN 1 ELSE 0 END) as 'EA OA',
STUFF ((select ','+CASE WHEN p.ItemFH='BR OA' THEN p.FlowKey END from #tmpTodos3 p
where p.ItemFH<>'' AND p.Emp_Item='專利一部' AND p.ItemFH IN ('CN 新案','PCT 新案','US 新案','CN OA','US OA','KR OA','JP OA','EU OA','DE OA','GB OA','EA OA','BR OA')
and p.AssignedTo=a.AssignedTo and p.AssignedTo_Name=a.AssignedTo_Name and p.Emp_DSNum=a.Emp_DSNum and p.Emp_ItemNum=a.Emp_ItemNum FOR XML PATH('')
), 1, 1, N'') attr_BROA_todos, SUM(CASE WHEN ItemFH='BR OA' THEN 1 ELSE 0 END) as 'BR OA',
'corOre tdr CurPT' as 'class_1',
STUFF ((select ','+CASE WHEN p.ItemFH IN ('CN OA','US OA','KR OA','JP OA','EU OA','DE OA','GB OA','EA OA','BR OA') THEN p.FlowKey END from #tmpTodos3 p
where p.ItemFH<>'' AND p.Emp_Item='專利一部' AND p.ItemFH IN ('CN 新案','PCT 新案','US 新案','CN OA','US OA','KR OA','JP OA','EU OA','DE OA','GB OA','EA OA','BR OA')
and p.AssignedTo=a.AssignedTo and p.AssignedTo_Name=a.AssignedTo_Name and p.Emp_DSNum=a.Emp_DSNum and p.Emp_ItemNum=a.Emp_ItemNum FOR XML PATH('')
), 1, 1, N'') attr_TotOA_todos,
SUM(CASE WHEN ItemFH IN ('CN OA','US OA','KR OA','JP OA','EU OA','DE OA','GB OA','EA OA','BR OA') THEN 1 ELSE 0 END) as '總計 OA'
--into #tmpResult1
FROM #tmpTodos3 a
WHERE ItemFH<>'' AND Emp_Item='專利一部' AND ItemFH IN ('CN 新案','PCT 新案','US 新案','CN OA','US OA','KR OA','JP OA','EU OA','DE OA','GB OA','EA OA','BR OA')
GROUP BY AssignedTo, AssignedTo_Name, Emp_DS, Emp_Item, Emp_DSNum, Emp_ItemNum, Emp_Sort
Order by Emp_DSNum, Emp_ItemNum, Emp_Sort;
IF OBJECT_ID('tempdb..#tmpEmp', 'U') IS NOT NULL DROP TABLE #tmpEmp
IF OBJECT_ID('tempdb..#tmpTodos6_3All', 'U') IS NOT NULL DROP TABLE #tmpTodos6_3All
IF OBJECT_ID('tempdb..#tmpTodosAll', 'U') IS NOT NULL DROP TABLE #tmpTodosAll
IF OBJECT_ID('tempdb..#tmpTodos2', 'U') IS NOT NULL DROP TABLE #tmpTodos2
IF OBJECT_ID('tempdb..#tmpTodos3', 'U') IS NOT NULL DROP TABLE #tmpTodos3
IF OBJECT_ID('tempdb..#tb_Split2', 'U') IS NOT NULL DROP TABLE #tb_Split2
END
GO
DECLARE @RC int
-- TODO: 在此處設定參數值。
EXECUTE @RC = [dbo].rpt_FinishCase_DS1
@p_DateF='2019-12-01',
@p_DateT='2019-12-31'
GO
\ No newline at end of file
BALTER PROCEDURE [dbo].[rpt_NotFinishPoint] BALTER PROCEDURE [dbo].[rpt_NotFinishPoint]
--Drop PROCEDURE[dbo].rpt_PatentCase_DS123 ;
--GO
alter PROCEDURE [dbo].rpt_PatentCase_DS123 (
@p_DateB varchar(10),
@p_DateE varchar(10),
@p_ItemType varchar(10) -- 組別 (1=第一組, 2=第二組, 3=第三組)
)
AS
BEGIN
-- 專利一部專利案件處理統計, 專利二部專利案件處理統計, 專利三部專利案件處理統計
Declare @p_Dept2Run tinyint,@p_StartDate varchar(20),@p_EndDate varchar(20),@p_Emp_ItemNum varchar(10);
set @p_StartDate=@p_DateB;
set @p_EndDate=@p_DateE;
Set @p_Emp_ItemNum=Cast((cast(@p_ItemType as tinyint)*10+100) as varchar(10))
SELECT distinct a.user_name as Emp_ID, cn_name as Emp_Name, isnull(a.Emp_DS,'') as Emp_DS, isnull(a.Emp_DSNum,'') as Emp_DSNum, isnull(a.Emp_Item,'') as Emp_Item,
isnull(a.Emp_ItemNum,'') as Emp_ItemNum,isnull(a.Emp_DeptName,'') as Emp_DeptName , 0 as Emp_Sort ,a.user_id
into #tmpEmp
FROM [dbo].[evw_Employee] a
where a.Emp_ItemNum =@p_Emp_ItemNum
-- 抓該區期內之該組員工之TODOS資料
SELECT --a.*
a.TaskDescription,a.CaseNo,b.Emp_Name as AssignedTo_Name,b.Emp_ID as AssignedTo,a.points,--a.CaseNo,a.CaseNo,a.CaseNo,
b.Emp_DS,b.Emp_Item, b.Emp_Sort,
@p_StartDate as QryDateF, @p_EndDate as QryDateT, CASE WheN a.startDate2 between @p_StartDate AND @p_EndDate THEN 1 ELSE 0 END as IsStartDate,
CASE WHEN a.finishedDate between @p_StartDate AND @p_EndDate THEN 1 ELSE 0 END IsFinishDate,--,(select value from [ufn_split](a.caseNO,'-') a where a.ID=2) as CaseNo_r,
CASE WHEN a.ToDosStatus='TDS01' THEN 1 ELSE 0 END as flgTDS01,cast(a.sn as varchar(10)) as flowkey,a.[Matter_Name] as MatterName
into #tmpTodos
FROM esn_todos a
--INNER JOIN #tmpEmp b ON a.AssignedTo=b.Emp_ID
INNER JOIN #tmpEmp b ON a.AssignedTo_userid=b.user_id
WHERE ((a.startDate2 between @p_StartDate AND @p_EndDate) or (a.finishedDate between @p_StartDate AND @p_EndDate) or a.ToDosStatus='TDS01') and a.CaseType='P';
CREATE INDEX concatTable_index ON #tmpTodos (CaseNo);
-- group concat 暫存
--SELECT * into #concatTable from #tmpTodos p where p.IsStartDate=1
--CREATE INDEX concatTable_index ON #concatTable (CaseNo);
----CREATE INDEX concatTable_index2 ON #concatTable (AssignedTo_Name);
--CREATE INDEX concatTable_index3 ON #concatTable (Emp_DS);
print('1:'+convert(varchar(20),getdate(),126))
-- 依「開始日」落在區間內資料, 篩選
SELECT a.CaseNo,a.AssignedTo,a.Emp_DS,a.Emp_Item, Emp_Sort, sum(points) as points,
STUFF ((SELECT distinct ';' + p.MatterName from #tmpTodos p
where IsStartDate=1 and a.CaseNo=p.CaseNo and a.Emp_DS=p.Emp_DS and a.Emp_Item=p.Emp_Item and a.Emp_Sort=p.Emp_Sort
FOR XML PATH('')), 1, 1, N'') as MatterNameList,
STUFF ((SELECT distinct ';' + p.TaskDescription from #tmpTodos p
where IsStartDate=1 and a.CaseNo=p.CaseNo and a.Emp_DS=p.Emp_DS and a.Emp_Item=p.Emp_Item and a.Emp_Sort=p.Emp_Sort
FOR XML PATH('') ), 1, 1, N'') as TaskDescriptionList,
ISNULL( STUFF((SELECT distinct ';' + p.AssignedTo from #tmpTodos p
where IsStartDate=1 and p.TaskDescription like '%客戶看稿%' and a.CaseNo=p.CaseNo and a.Emp_DS=p.Emp_DS and a.Emp_Item=p.Emp_Item and a.Emp_Sort=p.Emp_Sort
FOR XML PATH('')), 1, 1, N''),'')
as Cust_SeeRpt,
ISNULL(STUFF ((SELECT distinct ';' + p.AssignedTo from #tmpTodos p
where IsStartDate=1 and p.TaskDescription like '%supervisor看稿%' and a.CaseNo=p.CaseNo and a.Emp_DS=p.Emp_DS and a.Emp_Item=p.Emp_Item and a.Emp_Sort=p.Emp_Sort
FOR XML PATH('')), 1, 1, N''),'')
as super_SeeRpt,
ISNULL(STUFF ((SELECT distinct ';' + p.AssignedTo from #tmpTodos p
where IsStartDate=1 and p.TaskDescription like '%核駁報導%' and a.CaseNo=p.CaseNo and a.Emp_DS=p.Emp_DS and a.Emp_Item=p.Emp_Item and a.Emp_Sort=p.Emp_Sort
FOR XML PATH('')), 1, 1, N''),'')
as ChkNo_Rpt,
ISNULL(STUFF ((SELECT distinct ';' + p.AssignedTo from #tmpTodos p
where IsStartDate=1 and p.TaskDescription like '%claim客戶看稿%' and a.CaseNo=p.CaseNo and a.Emp_DS=p.Emp_DS and a.Emp_Item=p.Emp_Item and a.Emp_Sort=p.Emp_Sort
FOR XML PATH('')), 1, 1, N''),'')
as claim_SeeRpt,
ISNULL(STUFF ((SELECT distinct ';' + p.AssignedTo from #tmpTodos p
where IsStartDate=1 and p.TaskDescription like '%完成初稿%' and a.CaseNo=p.CaseNo and a.Emp_DS=p.Emp_DS and a.Emp_Item=p.Emp_Item and a.Emp_Sort=p.Emp_Sort
FOR XML PATH('')), 1, 1, N''),'')
as Finish_FirstRpt,
ISNULL(STUFF ((SELECT distinct ';' + p.AssignedTo from #tmpTodos p
where IsStartDate=1 and p.TaskDescription like '%確認委託%' and a.CaseNo=p.CaseNo and a.Emp_DS=p.Emp_DS and a.Emp_Item=p.Emp_Item and a.Emp_Sort=p.Emp_Sort
FOR XML PATH('')), 1, 1, N''),'')
as confirm_OK,
0 as Is_Pure,
STUFF ((SELECT distinct ',' + p.FlowKey from #tmpTodos p
where IsStartDate=1 and a.CaseNo=p.CaseNo and a.Emp_DS=p.Emp_DS and a.Emp_Item=p.Emp_Item and a.Emp_Sort=p.Emp_Sort
FOR XML PATH('')), 1, 1, N'')
--group_concat(distinct a.FlowKey SEPARATOR ',')
as FKList,
STUFF ((SELECT distinct ',' + (CASE WHEN p.points>0 THEN p.FlowKey END) from #tmpTodos p
where IsStartDate=1 and a.CaseNo=p.CaseNo and a.Emp_DS=p.Emp_DS and a.Emp_Item=p.Emp_Item and a.Emp_Sort=p.Emp_Sort
FOR XML PATH('')), 1, 1, N'')
as points_FKList
into #tmpTD_StartDate
FROM #tmpTodos a
WHERE IsStartDate=1
Group by a.CaseNo,a.AssignedTo,a.Emp_DS,a.Emp_Item, Emp_Sort;
--select * from #tmpTD_StartDate order by CaseNo
print('2:'+convert(varchar(20),getdate(),126))
-- 取得是否為純核稿
update #tmpTD_StartDate SET Is_Pure=1
WHERE CHARINDEX('supervisor看稿', TaskDescriptionList)>0 AND CHARINDEX('客戶看稿', TaskDescriptionList)>0 AND CHARINDEX('核駁報導', TaskDescriptionList)=0
AND (Cust_SeeRpt = super_SeeRpt AND Cust_SeeRpt <> ChkNo_Rpt)
AND (claim_SeeRpt = super_SeeRpt AND claim_SeeRpt <> ChkNo_Rpt)
AND (super_SeeRpt <> ChkNo_Rpt)
AND (Finish_FirstRpt <> Cust_SeeRpt)
AND (Finish_FirstRpt <> claim_SeeRpt) ;
-- TC_Tot = 總接案數: 1.承辦人員需為該組人員 2.開始日落在區間內
-- TC_Pure = 接純核稿數: 1.承辦人員需為該組人員 2.開始日落在區間內 3.管制項目為supervisor看稿及客戶看稿(無「核駁報導」的管制項目)
-- 4. 管制項目為「客戶看稿」、「supervisor看稿」為同一人時, 且「核駁報導」非同一人
-- 5. 管制項目為「claim客戶看稿」、「supervisor看稿」為同一人時, 且「核駁報導」非同一人
-- 6. 管制項目為「supervisor看稿」、「核駁報導」非同一人 7. 管制項目為「完成初稿」、「客戶看稿」非同一人 8. 管制項目為「完成初稿」、「claim客戶看稿」非同一人
-- TC_Sale = 接純業務數: 1.承辦人員需為該組人員 2.開始日落在區間內 3.管制項目為「確認委託」及管制項目「客戶看稿」、「完成初稿」非同一人
-- TC_OA = 接OA案數: 1.承辦人員需為該組人員 2.開始日落在區間內 3.案件程序名稱需有「審查」二個字 4.排除純核稿
-- 5. 排除案件程序名稱需有「審查」二個字,該案管制項目僅有確認委託,該案無其他的管制項目(例如:Jason接OA案數這件TP140753-CN)
-- 6. 管制項目為核駁報導、完成初稿為同一人 7. 管制項目為客戶看稿、完成初稿為同一人
-- TC_New = 接新案數: 1.承辦人員需為該組人員 2.開始日落在區間內 3.案件程序名稱需有「申請」二個字 或 案件編號最後二碼為「-P」
-- 4.管制項目需為「完成初稿」 5. 管制項目為客戶看稿、完成初稿為同一人 6. 排除純核稿
-- TC_L = 接法律訴訟案數(L卷) : 1.承辦人員需為該組人員 2.開始日落在區間內 3.案件編號—符號之後,第一碼為L
-- TC_SM = 接其他類型的案數(S、M卷): 1.承辦人員需為該組人員 2.開始日落在區間內 3.案件編號—符號之後,第一碼為S、M
-- 開始日 結果
SELECT a.CaseNo, a.AssignedTo,a.Emp_DS,a.Emp_Item, Emp_Sort, points, 1 as TC_Tot, -- 總接案數
CASE WHEN (Is_Pure=1) THEN 1 ELSE 0 END as TC_Pure, -- 接純核稿數
CASE WHEN (confirm_OK <> Cust_SeeRpt AND confirm_OK <> Finish_FirstRpt AND Cust_SeeRpt<>Finish_FirstRpt) THEN 1 ELSE 0 END as TC_Sale, -- 接純業務數
CASE WHEN (CHARINDEX('審查', MatterNameList) > 0 AND Is_Pure=0
AND ( NOT (CHARINDEX('審查', MatterNameList)>0 AND TaskDescriptionList='確認委託'))
AND ChkNo_Rpt = Finish_FirstRpt AND Cust_SeeRpt = Finish_FirstRpt ) THEN 1 ELSE 0 END as TC_OA, -- 接OA案數
CASE WHEN ( (CHARINDEX('申請', MatterNameList) > 0 OR a.CaseNo like '%-P%') AND CHARINDEX('完成初稿', TaskDescriptionList)>0
AND Cust_SeeRpt = Finish_FirstRpt AND Is_Pure=0 ) THEN 1 ELSE 0 END as TC_New, -- 接新案數
CASE WHEN (a.CaseNo like '%-L%') THEN 1 ELSE 0 END as TC_L, -- 接法律訴訟案數(L卷)
CASE WHEN (a.CaseNo like '%-S%' OR a.CaseNo like '%-M%') THEN 1 ELSE 0 END as TC_SM, -- 接其他類型的案數(S、M卷)
FKList, TaskDescriptionList, MatterNameList, Cust_SeeRpt, super_SeeRpt, ChkNo_Rpt, claim_SeeRpt, Finish_FirstRpt, confirm_OK, Is_Pure, points_FKList
into #tmpDA1
FROM #tmpTD_StartDate a;
print('3:'+convert(varchar(20),getdate(),126))
-- 依「完成日」落在區間內資料, 篩選
SELECT a.CaseNo, AssignedTo, a.Emp_DS,a.Emp_Item, Emp_Sort, sum(points) as points,
STUFF ((SELECT distinct ';' + p.MatterName from #tmpTodos p
where IsFinishDate=1 and a.CaseNo=p.CaseNo and a.Emp_DS=p.Emp_DS and a.Emp_Item=p.Emp_Item and a.Emp_Sort=p.Emp_Sort
FOR XML PATH('')), 1, 1, N'')
as MatterNameList,
STUFF ((SELECT distinct ';' + p.TaskDescription from #tmpTodos p
where IsFinishDate=1 and a.CaseNo=p.CaseNo and a.Emp_DS=p.Emp_DS and a.Emp_Item=p.Emp_Item and a.Emp_Sort=p.Emp_Sort
FOR XML PATH('')), 1, 1, N'')
as TaskDescriptionList,
ISNULL(
STUFF ((SELECT distinct ';' + AssignedTo from #tmpTodos p
where IsFinishDate=1 and p.TaskDescription like '%客戶看稿%' and a.CaseNo=p.CaseNo and a.Emp_DS=p.Emp_DS and a.Emp_Item=p.Emp_Item and a.Emp_Sort=p.Emp_Sort
FOR XML PATH('')), 1, 1, N'')
,'')
as Cust_SeeRpt,
ISNULL(STUFF ((SELECT distinct ';' + AssignedTo from #tmpTodos p
where IsFinishDate=1 and p.TaskDescription like '%supervisor看稿%' and a.CaseNo=p.CaseNo and a.Emp_DS=p.Emp_DS and a.Emp_Item=p.Emp_Item and a.Emp_Sort=p.Emp_Sort
FOR XML PATH('')), 1, 1, N'')
,'')
as super_SeeRpt,
ISNULL(STUFF ((SELECT distinct ';' + AssignedTo from #tmpTodos p
where IsFinishDate=1 and p.TaskDescription like '%核駁報導%' and a.CaseNo=p.CaseNo and a.Emp_DS=p.Emp_DS and a.Emp_Item=p.Emp_Item and a.Emp_Sort=p.Emp_Sort
FOR XML PATH('')), 1, 1, N'')
,'')
as ChkNo_Rpt,
ISNULL(STUFF ((SELECT distinct ';' + AssignedTo from #tmpTodos p
where IsFinishDate=1 and p.TaskDescription like '%claim客戶看稿%' and a.CaseNo=p.CaseNo and a.Emp_DS=p.Emp_DS and a.Emp_Item=p.Emp_Item and a.Emp_Sort=p.Emp_Sort
FOR XML PATH('')), 1, 1, N'')
,'')
as claim_SeeRpt,
ISNULL(STUFF ((SELECT distinct ';' + AssignedTo from #tmpTodos p
where IsFinishDate=1 and p.TaskDescription like '%完成初稿%' and a.CaseNo=p.CaseNo and a.Emp_DS=p.Emp_DS and a.Emp_Item=p.Emp_Item and a.Emp_Sort=p.Emp_Sort
FOR XML PATH('')), 1, 1, N'')
,'')
as Finish_FirstRpt,
ISNULL(STUFF ((SELECT distinct ';' + AssignedTo from #tmpTodos p
where IsFinishDate=1 and p.TaskDescription like '%確認委託%' and a.CaseNo=p.CaseNo and a.Emp_DS=p.Emp_DS and a.Emp_Item=p.Emp_Item and a.Emp_Sort=p.Emp_Sort
FOR XML PATH('')), 1, 1, N'')
,'')
as confirm_OK,
0 as Is_Pure,
STUFF ((SELECT distinct ',' + p.FlowKey from #tmpTodos p
where IsFinishDate=1 and a.CaseNo=p.CaseNo and a.Emp_DS=p.Emp_DS and a.Emp_Item=p.Emp_Item and a.Emp_Sort=p.Emp_Sort
FOR XML PATH('')), 1, 1, N'')
as FKList,
STUFF ((SELECT distinct ',' + (CASE WHEN points>0 THEN p.FlowKey END) from #tmpTodos p
where IsFinishDate=1 and a.CaseNo=p.CaseNo and a.Emp_DS=p.Emp_DS and a.Emp_Item=p.Emp_Item and a.Emp_Sort=p.Emp_Sort
FOR XML PATH('')), 1, 1, N'')
as points_FKList
into #tmpTD_FinishDate
FROM #tmpTodos a
WHERE IsFinishDate=1 Group by a.CaseNo, AssignedTo, a.Emp_DS,a.Emp_Item, Emp_Sort;
print('4:'+convert(varchar(20),getdate(),126))
-- 取得是否為純核稿
update #tmpTD_FinishDate SET Is_Pure=1
WHERE CHARINDEX('supervisor看稿', TaskDescriptionList)>0 AND CHARINDEX('客戶看稿', TaskDescriptionList)>0 AND CHARINDEX('核駁報導', TaskDescriptionList)=0
AND (Cust_SeeRpt = super_SeeRpt AND Cust_SeeRpt <> ChkNo_Rpt)
AND (claim_SeeRpt = super_SeeRpt AND claim_SeeRpt <> ChkNo_Rpt)
AND (super_SeeRpt <> ChkNo_Rpt)
AND (Finish_FirstRpt <> Cust_SeeRpt)
AND (Finish_FirstRpt <> claim_SeeRpt) ;
-- FH_Tot = 完成接案數: 1.承辦人員需為該組人員 2.完成日落在區間內
-- FH_Pure = 完成純核稿數: 1.承辦人員需為該組人員 2.完成日落在區間內 3.管制項目為supervisor看稿及客戶看稿(無「核駁報導」的管制項目)
-- 4. 管制項目為「客戶看稿」、「supervisor看稿」為同一人時, 且「核駁報導」非同一人
-- 5. 管制項目為「claim客戶看稿」、「supervisor看稿」為同一人時, 且「核駁報導」非同一人
-- 6. 管制項目為「supervisor看稿」、「核駁報導」非同一人 7. 管制項目為「完成初稿」、「客戶看稿」非同一人 8. 管制項目為「完成初稿」、「claim客戶看稿」非同一人
-- FH_Sale = 完成純業務數: 1.承辦人員需為該組人員 2.完成日落在區間內 3.管制項目為「確認委託」及管制項目「客戶看稿」、「完成初稿」非同一人
-- FH_OA = 完成OA案數: 1.承辦人員需為該組人員 2.完成日落在區間內 3.案件程序名稱需有「審查」二個字 4.排除純核稿
-- 5. 管制項目為核駁報導、完成初稿為同一人
-- FH_New = 完成新案數: 1.承辦人員需為該組人員 2.完成日落在區間內 3.案件程序名稱需有「申請」二個字 或 案件編號最後二碼為「-P」
-- 4.管制項目需為「完成初稿」 5. 管制項目為客戶看稿、完成初稿為同一人 6. 排除純核稿
-- FH_L = 完成法律訴訟案數(L卷) : 1.承辦人員需為該組人員 2.完成日落在區間內 3.案件編號—符號之後,第一碼為L
-- FH_SM = 完成其他類型的案數(S、M卷): 1.承辦人員需為該組人員 2.完成日落在區間內 3.案件編號—符號之後,第一碼為S、M
-- 完成日 結果
SELECT a.CaseNo, a.AssignedTo, a.Emp_DS,a.Emp_Item, Emp_Sort, points, 1 as FH_Tot, -- 總完成案數
CASE WHEN (Is_Pure=1) THEN 1 ELSE 0 END as FH_Pure, -- 完成純核稿數
CASE WHEN (confirm_OK <> Cust_SeeRpt AND confirm_OK <> Finish_FirstRpt AND Cust_SeeRpt<>Finish_FirstRpt) THEN 1 ELSE 0 END as FH_Sale, -- 完成純業務數
CASE WHEN (CHARINDEX('審查', MatterNameList) > 0 AND Is_Pure=0 AND ChkNo_Rpt = Finish_FirstRpt ) THEN 1 ELSE 0 END as FH_OA, -- 完成OA案數
CASE WHEN ( (CHARINDEX('申請', MatterNameList) > 0 OR a.CaseNo like '%-P%') AND CHARINDEX('完成初稿', TaskDescriptionList)>0
AND Cust_SeeRpt = Finish_FirstRpt AND Is_Pure=0 ) THEN 1 ELSE 0 END as FH_New, -- 完成新案數
CASE WHEN (a.CaseNo like '%-L%') THEN 1 ELSE 0 END as FH_L, -- 完成法律訴訟案數(L卷)
CASE WHEN (a.CaseNo like '%-S%' OR a.CaseNo like '%-M%') THEN 1 ELSE 0 END as FH_SM, -- 完成其他類型的案數(S、M卷)
FKList, TaskDescriptionList, MatterNameList, Cust_SeeRpt, super_SeeRpt, ChkNo_Rpt, claim_SeeRpt, Finish_FirstRpt, confirm_OK, Is_Pure, points_FKList
into #tmpDA2
FROM #tmpTD_FinishDate a ;
print('5:'+convert(varchar(20),getdate(),126))
-- 依「辦事項狀態需為「TDS01 未完成」」內資料, 篩選
SELECT a.CaseNo,AssignedTo,a.Emp_DS, a.Emp_Item, Emp_Sort, sum(points) as points,
STUFF ((SELECT distinct ';' + p.MatterName from #tmpTodos p
where p.flgTDS01=1 and a.CaseNo=p.CaseNo and a.Emp_DS=p.Emp_DS and a.Emp_Item=p.Emp_Item and a.Emp_Sort=p.Emp_Sort
FOR XML PATH('')), 1, 1, N'') as MatterNameList,
STUFF ((SELECT distinct ';' + p.TaskDescription from #tmpTodos p
where p.flgTDS01=1 and a.CaseNo=p.CaseNo and a.Emp_DS=p.Emp_DS and a.Emp_Item=p.Emp_Item and a.Emp_Sort=p.Emp_Sort
FOR XML PATH('') ), 1, 1, N'') as TaskDescriptionList,
ISNULL( STUFF((SELECT distinct ';' + AssignedTo from #tmpTodos p
where p.flgTDS01=1 and p.TaskDescription like '%客戶看稿%' and a.CaseNo=p.CaseNo and a.Emp_DS=p.Emp_DS and a.Emp_Item=p.Emp_Item and a.Emp_Sort=p.Emp_Sort
FOR XML PATH('')), 1, 1, N''),'')
as Cust_SeeRpt,
ISNULL(STUFF ((SELECT distinct ';' + AssignedTo from #tmpTodos p
where p.flgTDS01=1 and p.TaskDescription like '%supervisor看稿%' and a.CaseNo=p.CaseNo and a.Emp_DS=p.Emp_DS and a.Emp_Item=p.Emp_Item and a.Emp_Sort=p.Emp_Sort
FOR XML PATH('')), 1, 1, N''),'')
as super_SeeRpt,
ISNULL(STUFF ((SELECT distinct ';' + AssignedTo from #tmpTodos p
where p.flgTDS01=1 and p.TaskDescription like '%核駁報導%' and a.CaseNo=p.CaseNo and a.Emp_DS=p.Emp_DS and a.Emp_Item=p.Emp_Item and a.Emp_Sort=p.Emp_Sort
FOR XML PATH('')), 1, 1, N''),'')
as ChkNo_Rpt,
ISNULL(STUFF ((SELECT distinct ';' + AssignedTo from #tmpTodos p
where p.flgTDS01=1 and p.TaskDescription like '%claim客戶看稿%' and a.CaseNo=p.CaseNo and a.Emp_DS=p.Emp_DS and a.Emp_Item=p.Emp_Item and a.Emp_Sort=p.Emp_Sort
FOR XML PATH('')), 1, 1, N''),'')
as claim_SeeRpt,
ISNULL(STUFF ((SELECT distinct ';' + AssignedTo from #tmpTodos p
where p.flgTDS01=1 and p.TaskDescription like '%完成初稿%' and a.CaseNo=p.CaseNo and a.Emp_DS=p.Emp_DS and a.Emp_Item=p.Emp_Item and a.Emp_Sort=p.Emp_Sort
FOR XML PATH('')), 1, 1, N''),'')
as Finish_FirstRpt,
ISNULL(STUFF ((SELECT distinct ';' + CASE WHEN CHARINDEX('確認委託',p.TaskDescription)>0 THEN AssignedTo END from #tmpTodos p
where p.flgTDS01=1 and p.TaskDescription like '%確認委託%' and a.CaseNo=p.CaseNo and a.Emp_DS=p.Emp_DS and a.Emp_Item=p.Emp_Item and a.Emp_Sort=p.Emp_Sort
FOR XML PATH('')), 1, 1, N''),'')
as confirm_OK,
0 as Is_Pure,
STUFF ((SELECT distinct ',' + p.FlowKey from #tmpTodos p
where p.flgTDS01=1 and a.CaseNo=p.CaseNo and a.Emp_DS=p.Emp_DS and a.Emp_Item=p.Emp_Item and a.Emp_Sort=p.Emp_Sort
FOR XML PATH('')), 1, 1, N'')
--group_concat(distinct a.FlowKey SEPARATOR ',')
as FKList,
STUFF ((SELECT distinct ',' + (CASE WHEN p.points>0 THEN p.FlowKey END) from #tmpTodos p
where p.flgTDS01=1 and a.CaseNo=p.CaseNo and a.Emp_DS=p.Emp_DS and a.Emp_Item=p.Emp_Item and a.Emp_Sort=p.Emp_Sort
FOR XML PATH('')), 1, 1, N'')
as points_FKList
into #tmpTD_TDS01
FROM #tmpTodos a
WHERE flgTDS01=1 Group by a.CaseNo, AssignedTo, a.Emp_DS,a.Emp_Item, Emp_Sort;
-- 取得是否為純核稿
update #tmpTD_TDS01 SET Is_Pure=1
WHERE CHARINDEX('supervisor看稿', TaskDescriptionList)>0 AND CHARINDEX('客戶看稿', TaskDescriptionList)>0 AND CHARINDEX('核駁報導', TaskDescriptionList)=0
AND (Cust_SeeRpt = super_SeeRpt AND Cust_SeeRpt <> ChkNo_Rpt) AND (claim_SeeRpt = super_SeeRpt AND claim_SeeRpt <> ChkNo_Rpt)
AND (super_SeeRpt <> ChkNo_Rpt) AND (Finish_FirstRpt <> Cust_SeeRpt) AND (Finish_FirstRpt <> claim_SeeRpt) ;
-- TDS_Tot = 處理中接案數: 1.承辦人員需為該組人員 2.待辦事項狀態需為「TDS01 未完成
-- TDS_Pure = 處理中純核稿數: 1.承辦人員需為該組人員 2.待辦事項狀態需為「TDS01 未完成 3.管制項目為supervisor看稿及客戶看稿(無「核駁報導」的管制項目)
-- 4. 管制項目為「客戶看稿」、「supervisor看稿」為同一人時, 且「核駁報導」非同一人
-- 5. 管制項目為「claim客戶看稿」、「supervisor看稿」為同一人時, 且「核駁報導」非同一人
-- 6. 管制項目為「supervisor看稿」、「核駁報導」非同一人 7. 管制項目為「完成初稿」、「客戶看稿」非同一人 8. 管制項目為「完成初稿」、「claim客戶看稿」非同一人
-- TDS_Sale = 處理中純業務數: 1.承辦人員需為該組人員 2.待辦事項狀態需為「TDS01 未完成 3.管制項目為「確認委託」及管制項目「客戶看稿」、「完成初稿」非同一人
-- TDS_OA = 處理中OA案數: 1.承辦人員需為該組人員 2.待辦事項狀態需為「TDS01 未完成 3.案件程序名稱需有「審查」二個字 4.排除純核稿
-- 5.案件程序名稱需有「審查」二個字,該案管制項目僅有完成初稿,該案無其他的管制項目(例如:Xuan處理中純核稿這件TP50642-CN,不該被歸到純核稿)
-- TDS_New = 處理中新案數: 1.承辦人員需為該組人員 2.待辦事項狀態需為「TDS01 未完成 3.案件程序名稱需有「申請」二個字 或 案件編號最後二碼為「-P」
-- 4.管制項目需為「完成初稿」 5. 管制項目為客戶看稿、完成初稿為同一人 6. 排除純核稿
-- TDS_L = 處理中法律訴訟案數(L卷) : 1.承辦人員需為該組人員 2.待辦事項狀態需為「TDS01 未完成 3.案件編號—符號之後,第一碼為L
-- TDS_SM = 處理中其他類型的案數(S、M卷): 1.承辦人員需為該組人員 2.待辦事項狀態需為「TDS01 未完成 3.案件編號—符號之後,第一碼為S、M
print('6:'+convert(varchar(20),getdate(),126))
-- 處理中 結果
SELECT a.CaseNo, a.AssignedTo, a.Emp_DS,a.Emp_Item, Emp_Sort, points, 1 as TDS_Tot, -- 總處理中案數
CASE WHEN (Is_Pure=1) THEN 1 ELSE 0 END as TDS_Pure, -- 處理中純核稿數
CASE WHEN (confirm_OK <> Cust_SeeRpt AND confirm_OK <> Finish_FirstRpt AND Cust_SeeRpt<>Finish_FirstRpt) THEN 1 ELSE 0 END as TDS_Sale, -- 處理中純業務數
CASE WHEN (CHARINDEX('審查', MatterNameList) > 0 AND Is_Pure=0
AND ( NOT (CHARINDEX('審查', MatterNameList)>0 AND TaskDescriptionList='完成初稿')) ) THEN 1 ELSE 0 END as TDS_OA, -- 處理中OA案數
CASE WHEN ( (CHARINDEX('申請', MatterNameList) > 0 OR a.CaseNo like '%-P%') AND CHARINDEX('完成初稿', TaskDescriptionList)>0
AND Cust_SeeRpt = Finish_FirstRpt AND Is_Pure=0 ) THEN 1 ELSE 0 END as TDS_New, -- 處理中新案數
CASE WHEN (a.CaseNo like '%-L%') THEN 1 ELSE 0 END as TDS_L, -- 處理中法律訴訟案數(L卷)
CASE WHEN (a.CaseNo like '%-S%' OR a.CaseNo like '%-M%') THEN 1 ELSE 0 END as TDS_SM, -- 處理中其他類型的案數(S、M卷)
FKList, TaskDescriptionList, MatterNameList, Cust_SeeRpt, super_SeeRpt, ChkNo_Rpt, claim_SeeRpt, Finish_FirstRpt, confirm_OK, Is_Pure, points_FKList
into #tmpDA3
FROM #tmpTD_TDS01 a ;
-- 輸出結果
select * into #SqlJoinString from (
SELECT AssignedTo, SUM(points) TC_points, SUM(TC_Tot) as TC_Tot, SUM(TC_Pure) as TC_Pure, SUM(TC_Sale) as TC_Sale, SUM(TC_OA) as TC_OA, SUM(TC_New) as TC_New, SUM(TC_L) as TC_L, SUM(TC_SM) as TC_SM,
ISNULL(
STUFF ((SELECT distinct ',' + points_FKList from #tmpDA1 p
where p.AssignedTo = a.AssignedTo
FOR XML PATH('')), 1, 1, N'')
,'') as TC_points_todos,
ISNULL(
STUFF ((SELECT distinct ',' + (CASE WHEN TC_Tot > 0 THEN FKList END) from #tmpDA1 p
where p.AssignedTo = a.AssignedTo
FOR XML PATH('')), 1, 1, N'')
,'') as TC_Tot_todos,
ISNULL(
STUFF ((SELECT distinct ',' + (CASE WHEN TC_Pure > 0 THEN FKList END) from #tmpDA1 p
where p.AssignedTo = a.AssignedTo
FOR XML PATH('')), 1, 1, N'')
,'') as TC_Pure_todos,
ISNULL(
STUFF ((SELECT distinct ',' + (CASE WHEN TC_Sale > 0 THEN FKList END) from #tmpDA1 p
where p.AssignedTo = a.AssignedTo
FOR XML PATH('')), 1, 1, N'')
,'') as TC_Sale_todos,
ISNULL(
STUFF ((SELECT distinct ',' + (CASE WHEN TC_OA > 0 THEN FKList END) from #tmpDA1 p
where p.AssignedTo = a.AssignedTo
FOR XML PATH('')), 1, 1, N'')
,'') as TC_OA_todos,
ISNULL(
STUFF ((SELECT distinct ',' + (CASE WHEN TC_New > 0 THEN FKList END) from #tmpDA1 p
where p.AssignedTo = a.AssignedTo
FOR XML PATH('')), 1, 1, N'')
,'') as TC_New_todos,
ISNULL(
STUFF ((SELECT distinct ',' + (CASE WHEN TC_L > 0 THEN FKList END) from #tmpDA1 p
where p.AssignedTo = a.AssignedTo
FOR XML PATH('')), 1, 1, N'')
,'') as TC_L_todos,
ISNULL(
STUFF ((SELECT distinct ',' + (CASE WHEN TC_SM > 0 THEN FKList END) from #tmpDA1 p
where p.AssignedTo = a.AssignedTo
FOR XML PATH('')), 1, 1, N'')
,'') as TC_SM_todos,
0 as FH_points, 0 as FH_Tot, 0 as FH_Pure, 0 as FH_Sale, 0 as FH_OA, 0 as FH_New, 0 as FH_L, 0 as FH_SM, '' as FH_points_todos, '' as FH_Tot_todos, '' as FH_Pure_todos, '' as FH_Sale_todos, '' as FH_OA_todos, '' as FH_New_todos, '' as FH_L_todos, '' as FH_SM_todos,
0 as TDS_Tot, 0 as TDS_Pure, 0 as TDS_Sale, 0 as TDS_OA, 0 as TDS_New, 0 as TDS_L, 0 as TDS_SM, '' as TDS_points_todos, '' as TDS_Tot_todos, '' as TDS_Pure_todos, '' as TDS_Sale_todos, '' as TDS_OA_todos, '' as TDS_New_todos, '' as TDS_L_todos, '' as TDS_SM_todos
FROM #tmpDA1 a GROUP BY AssignedTo
UNION ALL
SELECT AssignedTo, 0 as TC_points, 0 as TC_Tot, 0 as TC_Pure, 0 as TC_Sale, 0 as TC_OA, 0 as TC_New, 0 as TC_L, 0 as TC_SM, '' as TC_points_todos, '' as TC_Tot_todos, '' as TC_Pure_todos, '' as TC_Sale_todos, '' as TC_OA_todos, '' as TC_New_todos, '' as TC_L_todos, '' as TC_SM_todos,
SUM(points) FH_points, SUM(FH_Tot) as FH_Tot, SUM(FH_Pure) as FH_Pure, SUM(FH_Sale) as FH_Sale, SUM(FH_OA) as FH_OA, SUM(FH_New) as FH_New, SUM(FH_L) as FH_L, SUM(FH_SM) as FH_SM,
ISNULL(
STUFF ((SELECT distinct ',' + points_FKList from #tmpDA2 p
where p.AssignedTo = a.AssignedTo
FOR XML PATH('')), 1, 1, N'')
,'') as FH_points_todos,
ISNULL(
STUFF ((SELECT distinct ',' + CASE WHEN FH_Tot > 0 THEN FKList END from #tmpDA2 p
where p.AssignedTo = a.AssignedTo
FOR XML PATH('')), 1, 1, N'')
,'') as FH_Tot_todos,
ISNULL(
STUFF ((SELECT distinct ',' + CASE WHEN FH_Pure > 0 THEN FKList END from #tmpDA2 p
where p.AssignedTo = a.AssignedTo
FOR XML PATH('')), 1, 1, N'')
,'') as FH_Pure_todos,
ISNULL(
STUFF ((SELECT distinct ',' + CASE WHEN FH_Sale > 0 THEN FKList END from #tmpDA2 p
where p.AssignedTo = a.AssignedTo
FOR XML PATH('')), 1, 1, N'')
,'') as FH_Sale_todos,
ISNULL(
STUFF ((SELECT distinct ',' + CASE WHEN FH_OA > 0 THEN FKList END from #tmpDA2 p
where p.AssignedTo = a.AssignedTo
FOR XML PATH('')), 1, 1, N'')
,'') as FH_OA_todos,
ISNULL(
STUFF ((SELECT distinct ',' + CASE WHEN FH_New > 0 THEN FKList END from #tmpDA2 p
where p.AssignedTo = a.AssignedTo
FOR XML PATH('')), 1, 1, N'')
,'') as FH_New_todos,
ISNULL(
STUFF ((SELECT distinct ',' + CASE WHEN FH_L > 0 THEN FKList END from #tmpDA2 p
where p.AssignedTo = a.AssignedTo
FOR XML PATH('')), 1, 1, N'')
,'') as FH_L_todos,
ISNULL(
STUFF ((SELECT distinct ',' + CASE WHEN FH_SM > 0 THEN FKList END from #tmpDA2 p
where p.AssignedTo = a.AssignedTo
FOR XML PATH('')), 1, 1, N'')
,'') as FH_SM_todos,
0 as TDS_Tot, 0 as TDS_Pure, 0 as TDS_Sale, 0 as TDS_OA, 0 as TDS_New, 0 as TDS_L, 0 as TDS_SM, '' as TDS_points_todos, '' as TDS_Tot_todos, '' as TDS_Pure_todos, '' as TDS_Sale_todos, '' as TTDS_OA_todos, '' as TDS_New_todos, '' as TDS_L_todos, '' as TDS_SM_todos
FROM #tmpDA2 a GROUP BY AssignedTo
UNION ALL
SELECT AssignedTo, 0 as TC_points, 0 as TC_Tot, 0 as TC_Pure, 0 as TC_Sale, 0 as TC_OA, 0 as TC_New, 0 as TC_L, 0 as TC_SM, '' as TC_points_todos, '' as TC_Tot_todos, '' as TC_Pure_todos,
'' as TC_Sale_todos, '' as TC_OA_todos, '' as TC_New_todos, '' as TC_L_todos, '' as TC_SM_todos,
0 as FH_points, 0 as FH_Tot, 0 as FH_Pure, 0 as FH_Sale, 0 as FH_OA, 0 as FH_New, 0 as FH_L, 0 as FH_SM, '' as FH_points_todos, '' as FH_Tot_todos, '' as FH_Pure_todos, '' as FH_Sale_todos, '' as FH_OA_todos, '' as FH_New_todos, '' as FH_L_todos, '' as FH_SM_todos,
SUM(TDS_Tot) as TDS_Tot, SUM(TDS_Pure) as TDS_Pure, SUM(TDS_Sale) as TDS_Sale, SUM(TDS_OA) as TDS_OA, SUM(TDS_New) as TDS_New, SUM(TDS_L) as TDS_L, SUM(TDS_SM) as TDS_SM,
ISNULL(
STUFF ((SELECT distinct ',' + points_FKList from #tmpDA3 p
where p.AssignedTo = a.AssignedTo
FOR XML PATH('')), 1, 1, N'')
,'') as TDS_points_todos,
ISNULL(
STUFF ((SELECT distinct ',' + CASE WHEN TDS_Tot > 0 THEN FKList END from #tmpDA3 p
where p.AssignedTo = a.AssignedTo
FOR XML PATH('')), 1, 1, N'')
,'') as TDS_Tot_todos,
ISNULL(
STUFF ((SELECT distinct ',' + CASE WHEN TDS_Pure > 0 THEN FKList END from #tmpDA3 p
where p.AssignedTo = a.AssignedTo
FOR XML PATH('')), 1, 1, N'')
,'') as TDS_Pure_todos,
ISNULL(
STUFF ((SELECT distinct ',' + CASE WHEN TDS_Sale > 0 THEN FKList END from #tmpDA3 p
where p.AssignedTo = a.AssignedTo
FOR XML PATH('')), 1, 1, N'')
,'') as TDS_Sale_todos,
ISNULL(
STUFF ((SELECT distinct ',' + CASE WHEN TDS_OA > 0 THEN FKList END from #tmpDA3 p
where p.AssignedTo = a.AssignedTo
FOR XML PATH('')), 1, 1, N'')
,'') as TTDS_OA_todos,
ISNULL(
STUFF ((SELECT distinct ',' + CASE WHEN TDS_New > 0 THEN FKList END from #tmpDA3 p
where p.AssignedTo = a.AssignedTo
FOR XML PATH('')), 1, 1, N'')
,'') as TDS_New_todos,
ISNULL(
STUFF ((SELECT distinct ',' + CASE WHEN TDS_L > 0 THEN FKList END from #tmpDA3 p
where p.AssignedTo = a.AssignedTo
FOR XML PATH('')), 1, 1, N'')
,'') as TDS_L_todos,
ISNULL(
STUFF ((SELECT distinct ',' + CASE WHEN TDS_SM > 0 THEN FKList END from #tmpDA3 p
where p.AssignedTo = a.AssignedTo
FOR XML PATH('')), 1, 1, N'')
,'') as TDS_SM_todos
FROM #tmpDA3 a GROUP BY AssignedTo
) a;
select a.Emp_Item as attr_EmpItem, a.Emp_DS as attr_EmpDS,a.Emp_ID as attr_doer, a.Emp_Name as attr_doerName,
'ctd_EmpName1' as class_tdEmpName1, a.Emp_Name as 承辦人, a.Emp_DS as attr_Emp_DS,'ctd_DS' as class_tdDS, a.Emp_DS as 所別,
STUFF ((SELECT distinct ',' + CASE WHEN TC_points_todos<>'' THEN TC_points_todos END from #tmpEmp p left join #SqlJoinString q on p.Emp_ID=q.AssignedTo
where p.Emp_ID = a.Emp_ID and p.Emp_Name = a.Emp_Name and p.Emp_DS = a.Emp_DS and p.Emp_Sort = a.Emp_Sort and p.Emp_Item = a.Emp_Item and q.AssignedTo = b.AssignedTo
FOR XML PATH('')), 1, 1, N'')
as attr_in_points_todos,
SUM(ISNULL(TC_points,0)) as 總接案點數,
STUFF ((SELECT distinct ',' + CASE WHEN TC_Tot_todos<>'' THEN TC_Tot_todos END from #tmpEmp p left join #SqlJoinString q on p.Emp_ID=q.AssignedTo
where p.Emp_ID = a.Emp_ID and p.Emp_Name = a.Emp_Name and p.Emp_DS = a.Emp_DS and p.Emp_Sort = a.Emp_Sort and p.Emp_Item = a.Emp_Item and q.AssignedTo = b.AssignedTo
FOR XML PATH('')), 1, 1, N'')
as attr_in_todos,
SUM(ISNULL(TC_Tot,0)) as 總接案數,
STUFF ((SELECT distinct ',' + CASE WHEN TC_Pure_todos<>'' THEN TC_Pure_todos END from #tmpEmp p left join #SqlJoinString q on p.Emp_ID=q.AssignedTo
where p.Emp_ID = a.Emp_ID and p.Emp_Name = a.Emp_Name and p.Emp_DS = a.Emp_DS and p.Emp_Sort = a.Emp_Sort and p.Emp_Item = a.Emp_Item and q.AssignedTo = b.AssignedTo
FOR XML PATH('')), 1, 1, N'')
as attr_in_Pure_todos, SUM(ISNULL(TC_Pure,0)) as 接純核稿數,
STUFF ((SELECT distinct ',' + CASE WHEN TC_OA_todos<>'' THEN TC_OA_todos END from #tmpEmp p left join #SqlJoinString q on p.Emp_ID=q.AssignedTo
where p.Emp_ID = a.Emp_ID and p.Emp_Name = a.Emp_Name and p.Emp_DS = a.Emp_DS and p.Emp_Sort = a.Emp_Sort and p.Emp_Item = a.Emp_Item and q.AssignedTo = b.AssignedTo
FOR XML PATH('')), 1, 1, N'')
as attr_in_OA_todos,
SUM(ISNULL(TC_OA,0)) as OA案數,
STUFF ((SELECT distinct ',' + CASE WHEN TC_New_todos<>'' THEN TC_New_todos END from #tmpEmp p left join #SqlJoinString q on p.Emp_ID=q.AssignedTo
where p.Emp_ID = a.Emp_ID and p.Emp_Name = a.Emp_Name and p.Emp_DS = a.Emp_DS and p.Emp_Sort = a.Emp_Sort and p.Emp_Item = a.Emp_Item and q.AssignedTo = b.AssignedTo
FOR XML PATH('')), 1, 1, N'')
as attr_in_new_todos,
SUM(ISNULL(TC_New,0)) as 接新案數,
STUFF ((SELECT distinct ',' + CASE WHEN TC_L_todos<>'' THEN TC_L_todos END from #tmpEmp p left join #SqlJoinString q on p.Emp_ID=q.AssignedTo
where p.Emp_ID = a.Emp_ID and p.Emp_Name = a.Emp_Name and p.Emp_DS = a.Emp_DS and p.Emp_Sort = a.Emp_Sort and p.Emp_Item = a.Emp_Item and q.AssignedTo = b.AssignedTo
FOR XML PATH('')), 1, 1, N'')
as attr_in_L_todos,
SUM(ISNULL(TC_L,0)) as '接法律訴訟案數(L卷)',
STUFF ((SELECT distinct ',' + CASE WHEN TC_SM_todos<>'' THEN TC_SM_todos END from #tmpEmp p left join #SqlJoinString q on p.Emp_ID=q.AssignedTo
where p.Emp_ID = a.Emp_ID and p.Emp_Name = a.Emp_Name and p.Emp_DS = a.Emp_DS and p.Emp_Sort = a.Emp_Sort and p.Emp_Item = a.Emp_Item and q.AssignedTo = b.AssignedTo
FOR XML PATH('')), 1, 1, N'')
as attr_in_SM_todos,
SUM(ISNULL(TC_SM,0)) as '接其他類型的案數(S、M卷)',
STUFF ((SELECT distinct ',' + CASE WHEN FH_points_todos<>'' THEN FH_points_todos END from #tmpEmp p left join #SqlJoinString q on p.Emp_ID=q.AssignedTo
where p.Emp_ID = a.Emp_ID and p.Emp_Name = a.Emp_Name and p.Emp_DS = a.Emp_DS and p.Emp_Sort = a.Emp_Sort and p.Emp_Item = a.Emp_Item and q.AssignedTo = b.AssignedTo
FOR XML PATH('')), 1, 1, N'')
as attr_finished_points_todos,
SUM(ISNULL(FH_points,0)) as 總完成案點數,
STUFF ((SELECT distinct ',' + CASE WHEN FH_Tot_todos<>'' THEN FH_Tot_todos END from #tmpEmp p left join #SqlJoinString q on p.Emp_ID=q.AssignedTo
where p.Emp_ID = a.Emp_ID and p.Emp_Name = a.Emp_Name and p.Emp_DS = a.Emp_DS and p.Emp_Sort = a.Emp_Sort and p.Emp_Item = a.Emp_Item and q.AssignedTo = b.AssignedTo
FOR XML PATH('')), 1, 1, N'')
as attr_finished_todos,
SUM(ISNULL(FH_Tot,0)) as 總完成案數,
STUFF ((SELECT distinct ',' + CASE WHEN FH_Pure_todos<>'' THEN FH_Pure_todos END from #tmpEmp p left join #SqlJoinString q on p.Emp_ID=q.AssignedTo
where p.Emp_ID = a.Emp_ID and p.Emp_Name = a.Emp_Name and p.Emp_DS = a.Emp_DS and p.Emp_Sort = a.Emp_Sort and p.Emp_Item = a.Emp_Item and q.AssignedTo = b.AssignedTo
FOR XML PATH('')), 1, 1, N'')
as attr_finished_Pure_todos,
SUM(ISNULL(FH_Pure,0)) as 完成純核稿數,
STUFF ((SELECT distinct ',' + CASE WHEN FH_OA_todos<>'' THEN FH_OA_todos END from #tmpEmp p left join #SqlJoinString q on p.Emp_ID=q.AssignedTo
where p.Emp_ID = a.Emp_ID and p.Emp_Name = a.Emp_Name and p.Emp_DS = a.Emp_DS and p.Emp_Sort = a.Emp_Sort and p.Emp_Item = a.Emp_Item and q.AssignedTo = b.AssignedTo
FOR XML PATH('')), 1, 1, N'')
as attr_finished_OA_todos,
SUM(ISNULL(FH_OA,0)) as 完成OA案數,
STUFF ((SELECT distinct ',' + CASE WHEN FH_New_todos<>'' THEN FH_New_todos END from #tmpEmp p left join #SqlJoinString q on p.Emp_ID=q.AssignedTo
where p.Emp_ID = a.Emp_ID and p.Emp_Name = a.Emp_Name and p.Emp_DS = a.Emp_DS and p.Emp_Sort = a.Emp_Sort and p.Emp_Item = a.Emp_Item and q.AssignedTo = b.AssignedTo
FOR XML PATH('')), 1, 1, N'')
as attr_finished_new_todos,
SUM(ISNULL(FH_New,0)) as 完成新案數,
STUFF ((SELECT distinct ',' + CASE WHEN FH_L_todos<>'' THEN FH_L_todos END from #tmpEmp p left join #SqlJoinString q on p.Emp_ID=q.AssignedTo
where p.Emp_ID = a.Emp_ID and p.Emp_Name = a.Emp_Name and p.Emp_DS = a.Emp_DS and p.Emp_Sort = a.Emp_Sort and p.Emp_Item = a.Emp_Item and q.AssignedTo = b.AssignedTo
FOR XML PATH('')), 1, 1, N'')
as attr_finished_L_todos,
SUM(ISNULL(FH_L,0))as '完成法律訴訟案數(L卷)',
STUFF ((SELECT distinct ',' +CASE WHEN FH_SM_todos<>'' THEN FH_SM_todos END from #tmpEmp p left join #SqlJoinString q on p.Emp_ID=q.AssignedTo
where p.Emp_ID = a.Emp_ID and p.Emp_Name = a.Emp_Name and p.Emp_DS = a.Emp_DS and p.Emp_Sort = a.Emp_Sort and p.Emp_Item = a.Emp_Item and q.AssignedTo = b.AssignedTo
FOR XML PATH('')), 1, 1, N'')
as attr_finished_SM_todos,
SUM(ISNULL(FH_SM,0)) as '完成其他類型的案數(S、M卷)',
STUFF ((SELECT distinct ',' + CASE WHEN TDS_Tot_todos<>'' THEN TDS_Tot_todos END from #tmpEmp p left join #SqlJoinString q on p.Emp_ID=q.AssignedTo
where p.Emp_ID = a.Emp_ID and p.Emp_Name = a.Emp_Name and p.Emp_DS = a.Emp_DS and p.Emp_Sort = a.Emp_Sort and p.Emp_Item = a.Emp_Item and q.AssignedTo = b.AssignedTo
FOR XML PATH('')), 1, 1, N'')
as attr_pending_todos,
SUM(ISNULL(TDS_Tot,0)) as 總處理中案數,
STUFF ((SELECT distinct ',' + CASE WHEN TDS_Pure_todos<>'' THEN TDS_Pure_todos END from #tmpEmp p left join #SqlJoinString q on p.Emp_ID=q.AssignedTo
where p.Emp_ID = a.Emp_ID and p.Emp_Name = a.Emp_Name and p.Emp_DS = a.Emp_DS and p.Emp_Sort = a.Emp_Sort and p.Emp_Item = a.Emp_Item and q.AssignedTo = b.AssignedTo
FOR XML PATH('')), 1, 1, N'')
as attr_pending_Pure_todos,
SUM(ISNULL(TDS_Pure,0)) as 處理中純核稿數,
STUFF ((SELECT distinct ',' + CASE WHEN TDS_OA_todos<>'' THEN TDS_OA_todos END from #tmpEmp p left join #SqlJoinString q on p.Emp_ID=q.AssignedTo
where p.Emp_ID = a.Emp_ID and p.Emp_Name = a.Emp_Name and p.Emp_DS = a.Emp_DS and p.Emp_Sort = a.Emp_Sort and p.Emp_Item = a.Emp_Item and q.AssignedTo = b.AssignedTo
FOR XML PATH('')), 1, 1, N'')
as attr_pending_OA_todos,
SUM(ISNULL(TDS_OA,0)) as 處理中OA案數,
STUFF ((SELECT distinct ',' + CASE WHEN TDS_New_todos<>'' THEN TDS_New_todos END from #tmpEmp p left join #SqlJoinString q on p.Emp_ID=q.AssignedTo
where p.Emp_ID = a.Emp_ID and p.Emp_Name = a.Emp_Name and p.Emp_DS = a.Emp_DS and p.Emp_Sort = a.Emp_Sort and p.Emp_Item = a.Emp_Item and q.AssignedTo = b.AssignedTo
FOR XML PATH('')), 1, 1, N'')
as attr_pending_new_todos,
SUM(ISNULL(TDS_New,0)) as 處理中新案數,
STUFF ((SELECT distinct ',' + CASE WHEN TDS_L_todos<>'' THEN TDS_L_todos END from #tmpEmp p left join #SqlJoinString q on p.Emp_ID=q.AssignedTo
where p.Emp_ID = a.Emp_ID and p.Emp_Name = a.Emp_Name and p.Emp_DS = a.Emp_DS and p.Emp_Sort = a.Emp_Sort and p.Emp_Item = a.Emp_Item and q.AssignedTo = b.AssignedTo
FOR XML PATH('')), 1, 1, N'')
as attr_pending_L_todos,
SUM(ISNULL(TDS_L,0)) as '處理中法律訴訟案數(L卷)',
STUFF ((SELECT distinct ',' +CASE WHEN TDS_SM_todos<>'' THEN TDS_SM_todos END from #tmpEmp p left join #SqlJoinString q on p.Emp_ID=q.AssignedTo
where p.Emp_ID = a.Emp_ID and p.Emp_Name = a.Emp_Name and p.Emp_DS = a.Emp_DS and p.Emp_Sort = a.Emp_Sort and p.Emp_Item = a.Emp_Item and q.AssignedTo = b.AssignedTo
FOR XML PATH('')), 1, 1, N'')
as attr_pending_SM_todos,
SUM(ISNULL(TDS_SM,0)) as '處理中其他類型的案數(S、M卷)'
FROM #tmpEmp a
Right join #SqlJoinString b on a.Emp_ID=b.AssignedTo
GROUP BY a.Emp_ID, a.Emp_Name, a.Emp_DS, a.Emp_Sort, a.Emp_Item,b.AssignedTo
order by a.emp_Sort, a.Emp_Item, a.Emp_Name;
--IF OBJECT_ID('tempdb..#concatTable', 'U') IS NOT NULL DROP TABLE #concatTable
IF OBJECT_ID('tempdb..#SqlJoinString', 'U') IS NOT NULL DROP TABLE #SqlJoinString
IF OBJECT_ID('tempdb..#tmpEmp', 'U') IS NOT NULL DROP TABLE #tmpEmp
IF OBJECT_ID('tempdb..#tmpTodos', 'U') IS NOT NULL DROP TABLE #tmpTodos
IF OBJECT_ID('tempdb..#tmpTD_StartDate', 'U') IS NOT NULL DROP TABLE #tmpTD_StartDate
IF OBJECT_ID('tempdb..#tmpDA1', 'U') IS NOT NULL DROP TABLE #tmpDA1
IF OBJECT_ID('tempdb..#tmpDA2', 'U') IS NOT NULL DROP TABLE #tmpDA2
IF OBJECT_ID('tempdb..#tmpDA3', 'U') IS NOT NULL DROP TABLE #tmpDA3
IF OBJECT_ID('tempdb..#tmpTD_FinishDate', 'U') IS NOT NULL DROP TABLE #tmpTD_FinishDate
IF OBJECT_ID('tempdb..#tmpTD_TDS01', 'U') IS NOT NULL DROP TABLE #tmpTD_TDS01
END
GO
DECLARE @RC int
-- TODO: 在此處設定參數值。
EXECUTE @RC = [dbo].rpt_PatentCase_DS123
@p_DateB='2020-02-01',
@p_DateE='2020-04-30' ,
@p_ItemType='3'
GO
\ No newline at end of file
declare @p_DateB varchar(20) ='2020-01-01',
@p_DateE varchar(20) ='2020-04-30' ,
@p_ItemType varchar(20) ='3'
IF OBJECT_ID('tempdb..#SqlJoinString', 'U') IS NOT NULL DROP TABLE #SqlJoinString
IF OBJECT_ID('tempdb..#tmpEmp', 'U') IS NOT NULL DROP TABLE #tmpEmp
IF OBJECT_ID('tempdb..#tmpTodos', 'U') IS NOT NULL DROP TABLE #tmpTodos
IF OBJECT_ID('tempdb..#tmpTD_StartDate', 'U') IS NOT NULL DROP TABLE #tmpTD_StartDate
IF OBJECT_ID('tempdb..#tmpDA1', 'U') IS NOT NULL DROP TABLE #tmpDA1
IF OBJECT_ID('tempdb..#tmpDA2', 'U') IS NOT NULL DROP TABLE #tmpDA2
IF OBJECT_ID('tempdb..#tmpDA3', 'U') IS NOT NULL DROP TABLE #tmpDA3
IF OBJECT_ID('tempdb..#tmpTD_FinishDate', 'U') IS NOT NULL DROP TABLE #tmpTD_FinishDate
IF OBJECT_ID('tempdb..#tmpTD_TDS01', 'U') IS NOT NULL DROP TABLE #tmpTD_TDS01
Declare @p_Dept2Run tinyint,@p_StartDate varchar(20),@p_EndDate varchar(20),@p_Emp_ItemNum varchar(10);
set @p_StartDate=@p_DateB;
set @p_EndDate=@p_DateE;
Set @p_Emp_ItemNum=Cast((cast(@p_ItemType as tinyint)*10+100) as varchar(10))
SELECT distinct a.user_name as Emp_ID, cn_name as Emp_Name, isnull(a.Emp_DS,'') as Emp_DS, isnull(a.Emp_DSNum,'') as Emp_DSNum, isnull(a.Emp_Item,'') as Emp_Item,
isnull(a.Emp_ItemNum,'') as Emp_ItemNum,isnull(a.Emp_DeptName,'') as Emp_DeptName , 0 as Emp_Sort ,a.user_id
into #tmpEmp
FROM [dbo].[evw_Employee] a
where a.Emp_ItemNum =@p_Emp_ItemNum
-- 抓該區期內之該組員工之TODOS資料
SELECT --a.*
a.TaskDescription,a.CaseNo,b.Emp_Name as AssignedTo_Name,b.Emp_ID as AssignedTo,a.points,--a.CaseNo,a.CaseNo,a.CaseNo,
b.Emp_DS,b.Emp_Item, b.Emp_Sort,
@p_StartDate as QryDateF, @p_EndDate as QryDateT, CASE WheN a.startDate2 between @p_StartDate AND @p_EndDate THEN 1 ELSE 0 END as IsStartDate,
CASE WHEN a.finishedDate between @p_StartDate AND @p_EndDate THEN 1 ELSE 0 END IsFinishDate,--,(select value from [ufn_split](a.caseNO,'-') a where a.ID=2) as CaseNo_r,
CASE WHEN a.ToDosStatus='TDS01' THEN 1 ELSE 0 END as flgTDS01,cast(a.sn as varchar(10)) as flowkey,a.[Matter_Name] as MatterName
into #tmpTodos
FROM esn_todos a
--INNER JOIN #tmpEmp b ON a.AssignedTo=b.Emp_ID
INNER JOIN #tmpEmp b ON a.AssignedTo_userid=b.user_id
WHERE ((a.startDate2 between @p_StartDate AND @p_EndDate) or (a.finishedDate between @p_StartDate AND @p_EndDate) or a.ToDosStatus='TDS01') ;
CREATE INDEX concatTable_index ON #tmpTodos (CaseNo);
-- group concat 暫存
--SELECT * into #concatTable from #tmpTodos p where p.IsStartDate=1
--CREATE INDEX concatTable_index ON #concatTable (CaseNo);
----CREATE INDEX concatTable_index2 ON #concatTable (AssignedTo_Name);
--CREATE INDEX concatTable_index3 ON #concatTable (Emp_DS);
print('1:'+convert(varchar(20),getdate(),126))
-- 依「開始日」落在區間內資料, 篩選
SELECT a.CaseNo,a.AssignedTo,a.Emp_DS,a.Emp_Item, Emp_Sort, sum(points) as points,
STUFF ((SELECT distinct ';' + p.MatterName from #tmpTodos p
where IsStartDate=1 and a.CaseNo=p.CaseNo and a.Emp_DS=p.Emp_DS and a.Emp_Item=p.Emp_Item and a.Emp_Sort=p.Emp_Sort
FOR XML PATH('')), 1, 1, N'') as MatterNameList,
STUFF ((SELECT distinct ';' + p.TaskDescription from #tmpTodos p
where IsStartDate=1 and a.CaseNo=p.CaseNo and a.Emp_DS=p.Emp_DS and a.Emp_Item=p.Emp_Item and a.Emp_Sort=p.Emp_Sort
FOR XML PATH('') ), 1, 1, N'') as TaskDescriptionList,
ISNULL( STUFF((SELECT distinct ';' + p.AssignedTo from #tmpTodos p
where IsStartDate=1 and p.TaskDescription like '%客戶看稿%' and a.CaseNo=p.CaseNo and a.Emp_DS=p.Emp_DS and a.Emp_Item=p.Emp_Item and a.Emp_Sort=p.Emp_Sort
FOR XML PATH('')), 1, 1, N''),'')
as Cust_SeeRpt,
ISNULL(STUFF ((SELECT distinct ';' + p.AssignedTo from #tmpTodos p
where IsStartDate=1 and p.TaskDescription like '%supervisor看稿%' and a.CaseNo=p.CaseNo and a.Emp_DS=p.Emp_DS and a.Emp_Item=p.Emp_Item and a.Emp_Sort=p.Emp_Sort
FOR XML PATH('')), 1, 1, N''),'')
as super_SeeRpt,
ISNULL(STUFF ((SELECT distinct ';' + p.AssignedTo from #tmpTodos p
where IsStartDate=1 and p.TaskDescription like '%核駁報導%' and a.CaseNo=p.CaseNo and a.Emp_DS=p.Emp_DS and a.Emp_Item=p.Emp_Item and a.Emp_Sort=p.Emp_Sort
FOR XML PATH('')), 1, 1, N''),'')
as ChkNo_Rpt,
ISNULL(STUFF ((SELECT distinct ';' + p.AssignedTo from #tmpTodos p
where IsStartDate=1 and p.TaskDescription like '%claim客戶看稿%' and a.CaseNo=p.CaseNo and a.Emp_DS=p.Emp_DS and a.Emp_Item=p.Emp_Item and a.Emp_Sort=p.Emp_Sort
FOR XML PATH('')), 1, 1, N''),'')
as claim_SeeRpt,
ISNULL(STUFF ((SELECT distinct ';' + p.AssignedTo from #tmpTodos p
where IsStartDate=1 and p.TaskDescription like '%完成初稿%' and a.CaseNo=p.CaseNo and a.Emp_DS=p.Emp_DS and a.Emp_Item=p.Emp_Item and a.Emp_Sort=p.Emp_Sort
FOR XML PATH('')), 1, 1, N''),'')
as Finish_FirstRpt,
ISNULL(STUFF ((SELECT distinct ';' + p.AssignedTo from #tmpTodos p
where IsStartDate=1 and p.TaskDescription like '%確認委託%' and a.CaseNo=p.CaseNo and a.Emp_DS=p.Emp_DS and a.Emp_Item=p.Emp_Item and a.Emp_Sort=p.Emp_Sort
FOR XML PATH('')), 1, 1, N''),'')
as confirm_OK,
0 as Is_Pure,
STUFF ((SELECT distinct ',' + p.FlowKey from #tmpTodos p
where IsStartDate=1 and a.CaseNo=p.CaseNo and a.Emp_DS=p.Emp_DS and a.Emp_Item=p.Emp_Item and a.Emp_Sort=p.Emp_Sort
FOR XML PATH('')), 1, 1, N'')
--group_concat(distinct a.FlowKey SEPARATOR ',')
as FKList,
STUFF ((SELECT distinct ',' + (CASE WHEN p.points>0 THEN p.FlowKey END) from #tmpTodos p
where IsStartDate=1 and a.CaseNo=p.CaseNo and a.Emp_DS=p.Emp_DS and a.Emp_Item=p.Emp_Item and a.Emp_Sort=p.Emp_Sort
FOR XML PATH('')), 1, 1, N'')
as points_FKList
into #tmpTD_StartDate
FROM #tmpTodos a
WHERE IsStartDate=1
Group by a.CaseNo,a.AssignedTo,a.Emp_DS,a.Emp_Item, Emp_Sort;
--select * from #tmpTD_StartDate order by CaseNo
print('2:'+convert(varchar(20),getdate(),126))
-- 取得是否為純核稿
update #tmpTD_StartDate SET Is_Pure=1
WHERE CHARINDEX('supervisor看稿', TaskDescriptionList)>0 AND CHARINDEX('客戶看稿', TaskDescriptionList)>0 AND CHARINDEX('核駁報導', TaskDescriptionList)=0
AND (Cust_SeeRpt = super_SeeRpt AND Cust_SeeRpt <> ChkNo_Rpt)
AND (claim_SeeRpt = super_SeeRpt AND claim_SeeRpt <> ChkNo_Rpt)
AND (super_SeeRpt <> ChkNo_Rpt)
AND (Finish_FirstRpt <> Cust_SeeRpt)
AND (Finish_FirstRpt <> claim_SeeRpt) ;
-- TC_Tot = 總接案數: 1.承辦人員需為該組人員 2.開始日落在區間內
-- TC_Pure = 接純核稿數: 1.承辦人員需為該組人員 2.開始日落在區間內 3.管制項目為supervisor看稿及客戶看稿(無「核駁報導」的管制項目)
-- 4. 管制項目為「客戶看稿」、「supervisor看稿」為同一人時, 且「核駁報導」非同一人
-- 5. 管制項目為「claim客戶看稿」、「supervisor看稿」為同一人時, 且「核駁報導」非同一人
-- 6. 管制項目為「supervisor看稿」、「核駁報導」非同一人 7. 管制項目為「完成初稿」、「客戶看稿」非同一人 8. 管制項目為「完成初稿」、「claim客戶看稿」非同一人
-- TC_Sale = 接純業務數: 1.承辦人員需為該組人員 2.開始日落在區間內 3.管制項目為「確認委託」及管制項目「客戶看稿」、「完成初稿」非同一人
-- TC_OA = 接OA案數: 1.承辦人員需為該組人員 2.開始日落在區間內 3.案件程序名稱需有「審查」二個字 4.排除純核稿
-- 5. 排除案件程序名稱需有「審查」二個字,該案管制項目僅有確認委託,該案無其他的管制項目(例如:Jason接OA案數這件TP140753-CN)
-- 6. 管制項目為核駁報導、完成初稿為同一人 7. 管制項目為客戶看稿、完成初稿為同一人
-- TC_New = 接新案數: 1.承辦人員需為該組人員 2.開始日落在區間內 3.案件程序名稱需有「申請」二個字 或 案件編號最後二碼為「-P」
-- 4.管制項目需為「完成初稿」 5. 管制項目為客戶看稿、完成初稿為同一人 6. 排除純核稿
-- TC_L = 接法律訴訟案數(L卷) : 1.承辦人員需為該組人員 2.開始日落在區間內 3.案件編號—符號之後,第一碼為L
-- TC_SM = 接其他類型的案數(S、M卷): 1.承辦人員需為該組人員 2.開始日落在區間內 3.案件編號—符號之後,第一碼為S、M
-- 開始日 結果
SELECT a.CaseNo, a.AssignedTo,a.Emp_DS,a.Emp_Item, Emp_Sort, points, 1 as TC_Tot, -- 總接案數
CASE WHEN (Is_Pure=1) THEN 1 ELSE 0 END as TC_Pure, -- 接純核稿數
CASE WHEN (confirm_OK <> Cust_SeeRpt AND confirm_OK <> Finish_FirstRpt AND Cust_SeeRpt<>Finish_FirstRpt) THEN 1 ELSE 0 END as TC_Sale, -- 接純業務數
CASE WHEN (CHARINDEX('審查', MatterNameList) > 0 AND Is_Pure=0
AND ( NOT (CHARINDEX('審查', MatterNameList)>0 AND TaskDescriptionList='確認委託'))
AND ChkNo_Rpt = Finish_FirstRpt AND Cust_SeeRpt = Finish_FirstRpt ) THEN 1 ELSE 0 END as TC_OA, -- 接OA案數
CASE WHEN ( (CHARINDEX('申請', MatterNameList) > 0 OR a.CaseNo like '%-P%') AND CHARINDEX('完成初稿', TaskDescriptionList)>0
AND Cust_SeeRpt = Finish_FirstRpt AND Is_Pure=0 ) THEN 1 ELSE 0 END as TC_New, -- 接新案數
CASE WHEN (a.CaseNo like '%-L%') THEN 1 ELSE 0 END as TC_L, -- 接法律訴訟案數(L卷)
CASE WHEN (a.CaseNo like '%-S%' OR a.CaseNo like '%-M%') THEN 1 ELSE 0 END as TC_SM, -- 接其他類型的案數(S、M卷)
FKList, TaskDescriptionList, MatterNameList, Cust_SeeRpt, super_SeeRpt, ChkNo_Rpt, claim_SeeRpt, Finish_FirstRpt, confirm_OK, Is_Pure, points_FKList
into #tmpDA1
FROM #tmpTD_StartDate a;
print('3:'+convert(varchar(20),getdate(),126))
-- 依「完成日」落在區間內資料, 篩選
SELECT a.CaseNo, AssignedTo, a.Emp_DS,a.Emp_Item, Emp_Sort, sum(points) as points,
STUFF ((SELECT distinct ';' + p.MatterName from #tmpTodos p
where IsFinishDate=1 and a.CaseNo=p.CaseNo and a.Emp_DS=p.Emp_DS and a.Emp_Item=p.Emp_Item and a.Emp_Sort=p.Emp_Sort
FOR XML PATH('')), 1, 1, N'')
as MatterNameList,
STUFF ((SELECT distinct ';' + p.TaskDescription from #tmpTodos p
where IsFinishDate=1 and a.CaseNo=p.CaseNo and a.Emp_DS=p.Emp_DS and a.Emp_Item=p.Emp_Item and a.Emp_Sort=p.Emp_Sort
FOR XML PATH('')), 1, 1, N'')
as TaskDescriptionList,
ISNULL(
STUFF ((SELECT distinct ';' + AssignedTo from #tmpTodos p
where IsFinishDate=1 and p.TaskDescription like '%客戶看稿%' and a.CaseNo=p.CaseNo and a.Emp_DS=p.Emp_DS and a.Emp_Item=p.Emp_Item and a.Emp_Sort=p.Emp_Sort
FOR XML PATH('')), 1, 1, N'')
,'')
as Cust_SeeRpt,
ISNULL(STUFF ((SELECT distinct ';' + AssignedTo from #tmpTodos p
where IsFinishDate=1 and p.TaskDescription like '%supervisor看稿%' and a.CaseNo=p.CaseNo and a.Emp_DS=p.Emp_DS and a.Emp_Item=p.Emp_Item and a.Emp_Sort=p.Emp_Sort
FOR XML PATH('')), 1, 1, N'')
,'')
as super_SeeRpt,
ISNULL(STUFF ((SELECT distinct ';' + AssignedTo from #tmpTodos p
where IsFinishDate=1 and p.TaskDescription like '%核駁報導%' and a.CaseNo=p.CaseNo and a.Emp_DS=p.Emp_DS and a.Emp_Item=p.Emp_Item and a.Emp_Sort=p.Emp_Sort
FOR XML PATH('')), 1, 1, N'')
,'')
as ChkNo_Rpt,
ISNULL(STUFF ((SELECT distinct ';' + AssignedTo from #tmpTodos p
where IsFinishDate=1 and p.TaskDescription like '%claim客戶看稿%' and a.CaseNo=p.CaseNo and a.Emp_DS=p.Emp_DS and a.Emp_Item=p.Emp_Item and a.Emp_Sort=p.Emp_Sort
FOR XML PATH('')), 1, 1, N'')
,'')
as claim_SeeRpt,
ISNULL(STUFF ((SELECT distinct ';' + AssignedTo from #tmpTodos p
where IsFinishDate=1 and p.TaskDescription like '%完成初稿%' and a.CaseNo=p.CaseNo and a.Emp_DS=p.Emp_DS and a.Emp_Item=p.Emp_Item and a.Emp_Sort=p.Emp_Sort
FOR XML PATH('')), 1, 1, N'')
,'')
as Finish_FirstRpt,
ISNULL(STUFF ((SELECT distinct ';' + AssignedTo from #tmpTodos p
where IsFinishDate=1 and p.TaskDescription like '%確認委託%' and a.CaseNo=p.CaseNo and a.Emp_DS=p.Emp_DS and a.Emp_Item=p.Emp_Item and a.Emp_Sort=p.Emp_Sort
FOR XML PATH('')), 1, 1, N'')
,'')
as confirm_OK,
0 as Is_Pure,
STUFF ((SELECT distinct ',' + p.FlowKey from #tmpTodos p
where IsFinishDate=1 and a.CaseNo=p.CaseNo and a.Emp_DS=p.Emp_DS and a.Emp_Item=p.Emp_Item and a.Emp_Sort=p.Emp_Sort
FOR XML PATH('')), 1, 1, N'')
as FKList,
STUFF ((SELECT distinct ',' + (CASE WHEN points>0 THEN p.FlowKey END) from #tmpTodos p
where IsFinishDate=1 and a.CaseNo=p.CaseNo and a.Emp_DS=p.Emp_DS and a.Emp_Item=p.Emp_Item and a.Emp_Sort=p.Emp_Sort
FOR XML PATH('')), 1, 1, N'')
as points_FKList
into #tmpTD_FinishDate
FROM #tmpTodos a
WHERE IsFinishDate=1 Group by a.CaseNo, AssignedTo, a.Emp_DS,a.Emp_Item, Emp_Sort;
print('4:'+convert(varchar(20),getdate(),126))
-- 取得是否為純核稿
update #tmpTD_FinishDate SET Is_Pure=1
WHERE CHARINDEX('supervisor看稿', TaskDescriptionList)>0 AND CHARINDEX('客戶看稿', TaskDescriptionList)>0 AND CHARINDEX('核駁報導', TaskDescriptionList)=0
AND (Cust_SeeRpt = super_SeeRpt AND Cust_SeeRpt <> ChkNo_Rpt)
AND (claim_SeeRpt = super_SeeRpt AND claim_SeeRpt <> ChkNo_Rpt)
AND (super_SeeRpt <> ChkNo_Rpt)
AND (Finish_FirstRpt <> Cust_SeeRpt)
AND (Finish_FirstRpt <> claim_SeeRpt) ;
-- FH_Tot = 完成接案數: 1.承辦人員需為該組人員 2.完成日落在區間內
-- FH_Pure = 完成純核稿數: 1.承辦人員需為該組人員 2.完成日落在區間內 3.管制項目為supervisor看稿及客戶看稿(無「核駁報導」的管制項目)
-- 4. 管制項目為「客戶看稿」、「supervisor看稿」為同一人時, 且「核駁報導」非同一人
-- 5. 管制項目為「claim客戶看稿」、「supervisor看稿」為同一人時, 且「核駁報導」非同一人
-- 6. 管制項目為「supervisor看稿」、「核駁報導」非同一人 7. 管制項目為「完成初稿」、「客戶看稿」非同一人 8. 管制項目為「完成初稿」、「claim客戶看稿」非同一人
-- FH_Sale = 完成純業務數: 1.承辦人員需為該組人員 2.完成日落在區間內 3.管制項目為「確認委託」及管制項目「客戶看稿」、「完成初稿」非同一人
-- FH_OA = 完成OA案數: 1.承辦人員需為該組人員 2.完成日落在區間內 3.案件程序名稱需有「審查」二個字 4.排除純核稿
-- 5. 管制項目為核駁報導、完成初稿為同一人
-- FH_New = 完成新案數: 1.承辦人員需為該組人員 2.完成日落在區間內 3.案件程序名稱需有「申請」二個字 或 案件編號最後二碼為「-P」
-- 4.管制項目需為「完成初稿」 5. 管制項目為客戶看稿、完成初稿為同一人 6. 排除純核稿
-- FH_L = 完成法律訴訟案數(L卷) : 1.承辦人員需為該組人員 2.完成日落在區間內 3.案件編號—符號之後,第一碼為L
-- FH_SM = 完成其他類型的案數(S、M卷): 1.承辦人員需為該組人員 2.完成日落在區間內 3.案件編號—符號之後,第一碼為S、M
-- 完成日 結果
SELECT a.CaseNo, a.AssignedTo, a.Emp_DS,a.Emp_Item, Emp_Sort, points, 1 as FH_Tot, -- 總完成案數
CASE WHEN (Is_Pure=1) THEN 1 ELSE 0 END as FH_Pure, -- 完成純核稿數
CASE WHEN (confirm_OK <> Cust_SeeRpt AND confirm_OK <> Finish_FirstRpt AND Cust_SeeRpt<>Finish_FirstRpt) THEN 1 ELSE 0 END as FH_Sale, -- 完成純業務數
CASE WHEN (CHARINDEX('審查', MatterNameList) > 0 AND Is_Pure=0 AND ChkNo_Rpt = Finish_FirstRpt ) THEN 1 ELSE 0 END as FH_OA, -- 完成OA案數
CASE WHEN ( (CHARINDEX('申請', MatterNameList) > 0 OR a.CaseNo like '%-P%') AND CHARINDEX('完成初稿', TaskDescriptionList)>0
AND Cust_SeeRpt = Finish_FirstRpt AND Is_Pure=0 ) THEN 1 ELSE 0 END as FH_New, -- 完成新案數
CASE WHEN (a.CaseNo like '%-L%') THEN 1 ELSE 0 END as FH_L, -- 完成法律訴訟案數(L卷)
CASE WHEN (a.CaseNo like '%-S%' OR a.CaseNo like '%-M%') THEN 1 ELSE 0 END as FH_SM, -- 完成其他類型的案數(S、M卷)
FKList, TaskDescriptionList, MatterNameList, Cust_SeeRpt, super_SeeRpt, ChkNo_Rpt, claim_SeeRpt, Finish_FirstRpt, confirm_OK, Is_Pure, points_FKList
into #tmpDA2
FROM #tmpTD_FinishDate a ;
print('5:'+convert(varchar(20),getdate(),126))
-- 依「辦事項狀態需為「TDS01 未完成」」內資料, 篩選
SELECT a.CaseNo,AssignedTo,a.Emp_DS, a.Emp_Item, Emp_Sort, sum(points) as points,
STUFF ((SELECT distinct ';' + p.MatterName from #tmpTodos p
where p.flgTDS01=1 and a.CaseNo=p.CaseNo and a.Emp_DS=p.Emp_DS and a.Emp_Item=p.Emp_Item and a.Emp_Sort=p.Emp_Sort
FOR XML PATH('')), 1, 1, N'') as MatterNameList,
STUFF ((SELECT distinct ';' + p.TaskDescription from #tmpTodos p
where p.flgTDS01=1 and a.CaseNo=p.CaseNo and a.Emp_DS=p.Emp_DS and a.Emp_Item=p.Emp_Item and a.Emp_Sort=p.Emp_Sort
FOR XML PATH('') ), 1, 1, N'') as TaskDescriptionList,
ISNULL( STUFF((SELECT distinct ';' + AssignedTo from #tmpTodos p
where p.flgTDS01=1 and p.TaskDescription like '%客戶看稿%' and a.CaseNo=p.CaseNo and a.Emp_DS=p.Emp_DS and a.Emp_Item=p.Emp_Item and a.Emp_Sort=p.Emp_Sort
FOR XML PATH('')), 1, 1, N''),'')
as Cust_SeeRpt,
ISNULL(STUFF ((SELECT distinct ';' + AssignedTo from #tmpTodos p
where p.flgTDS01=1 and p.TaskDescription like '%supervisor看稿%' and a.CaseNo=p.CaseNo and a.Emp_DS=p.Emp_DS and a.Emp_Item=p.Emp_Item and a.Emp_Sort=p.Emp_Sort
FOR XML PATH('')), 1, 1, N''),'')
as super_SeeRpt,
ISNULL(STUFF ((SELECT distinct ';' + AssignedTo from #tmpTodos p
where p.flgTDS01=1 and p.TaskDescription like '%核駁報導%' and a.CaseNo=p.CaseNo and a.Emp_DS=p.Emp_DS and a.Emp_Item=p.Emp_Item and a.Emp_Sort=p.Emp_Sort
FOR XML PATH('')), 1, 1, N''),'')
as ChkNo_Rpt,
ISNULL(STUFF ((SELECT distinct ';' + AssignedTo from #tmpTodos p
where p.flgTDS01=1 and p.TaskDescription like '%claim客戶看稿%' and a.CaseNo=p.CaseNo and a.Emp_DS=p.Emp_DS and a.Emp_Item=p.Emp_Item and a.Emp_Sort=p.Emp_Sort
FOR XML PATH('')), 1, 1, N''),'')
as claim_SeeRpt,
ISNULL(STUFF ((SELECT distinct ';' + AssignedTo from #tmpTodos p
where p.flgTDS01=1 and p.TaskDescription like '%完成初稿%' and a.CaseNo=p.CaseNo and a.Emp_DS=p.Emp_DS and a.Emp_Item=p.Emp_Item and a.Emp_Sort=p.Emp_Sort
FOR XML PATH('')), 1, 1, N''),'')
as Finish_FirstRpt,
ISNULL(STUFF ((SELECT distinct ';' + CASE WHEN CHARINDEX('確認委託',p.TaskDescription)>0 THEN AssignedTo END from #tmpTodos p
where p.flgTDS01=1 and p.TaskDescription like '%確認委託%' and a.CaseNo=p.CaseNo and a.Emp_DS=p.Emp_DS and a.Emp_Item=p.Emp_Item and a.Emp_Sort=p.Emp_Sort
FOR XML PATH('')), 1, 1, N''),'')
as confirm_OK,
0 as Is_Pure,
STUFF ((SELECT distinct ',' + p.FlowKey from #tmpTodos p
where p.flgTDS01=1 and a.CaseNo=p.CaseNo and a.Emp_DS=p.Emp_DS and a.Emp_Item=p.Emp_Item and a.Emp_Sort=p.Emp_Sort
FOR XML PATH('')), 1, 1, N'')
--group_concat(distinct a.FlowKey SEPARATOR ',')
as FKList,
STUFF ((SELECT distinct ',' + (CASE WHEN p.points>0 THEN p.FlowKey END) from #tmpTodos p
where p.flgTDS01=1 and a.CaseNo=p.CaseNo and a.Emp_DS=p.Emp_DS and a.Emp_Item=p.Emp_Item and a.Emp_Sort=p.Emp_Sort
FOR XML PATH('')), 1, 1, N'')
as points_FKList
into #tmpTD_TDS01
FROM #tmpTodos a
WHERE flgTDS01=1 Group by a.CaseNo, AssignedTo, a.Emp_DS,a.Emp_Item, Emp_Sort;
-- 取得是否為純核稿
update #tmpTD_TDS01 SET Is_Pure=1
WHERE CHARINDEX('supervisor看稿', TaskDescriptionList)>0 AND CHARINDEX('客戶看稿', TaskDescriptionList)>0 AND CHARINDEX('核駁報導', TaskDescriptionList)=0
AND (Cust_SeeRpt = super_SeeRpt AND Cust_SeeRpt <> ChkNo_Rpt) AND (claim_SeeRpt = super_SeeRpt AND claim_SeeRpt <> ChkNo_Rpt)
AND (super_SeeRpt <> ChkNo_Rpt) AND (Finish_FirstRpt <> Cust_SeeRpt) AND (Finish_FirstRpt <> claim_SeeRpt) ;
-- TDS_Tot = 處理中接案數: 1.承辦人員需為該組人員 2.待辦事項狀態需為「TDS01 未完成
-- TDS_Pure = 處理中純核稿數: 1.承辦人員需為該組人員 2.待辦事項狀態需為「TDS01 未完成 3.管制項目為supervisor看稿及客戶看稿(無「核駁報導」的管制項目)
-- 4. 管制項目為「客戶看稿」、「supervisor看稿」為同一人時, 且「核駁報導」非同一人
-- 5. 管制項目為「claim客戶看稿」、「supervisor看稿」為同一人時, 且「核駁報導」非同一人
-- 6. 管制項目為「supervisor看稿」、「核駁報導」非同一人 7. 管制項目為「完成初稿」、「客戶看稿」非同一人 8. 管制項目為「完成初稿」、「claim客戶看稿」非同一人
-- TDS_Sale = 處理中純業務數: 1.承辦人員需為該組人員 2.待辦事項狀態需為「TDS01 未完成 3.管制項目為「確認委託」及管制項目「客戶看稿」、「完成初稿」非同一人
-- TDS_OA = 處理中OA案數: 1.承辦人員需為該組人員 2.待辦事項狀態需為「TDS01 未完成 3.案件程序名稱需有「審查」二個字 4.排除純核稿
-- 5.案件程序名稱需有「審查」二個字,該案管制項目僅有完成初稿,該案無其他的管制項目(例如:Xuan處理中純核稿這件TP50642-CN,不該被歸到純核稿)
-- TDS_New = 處理中新案數: 1.承辦人員需為該組人員 2.待辦事項狀態需為「TDS01 未完成 3.案件程序名稱需有「申請」二個字 或 案件編號最後二碼為「-P」
-- 4.管制項目需為「完成初稿」 5. 管制項目為客戶看稿、完成初稿為同一人 6. 排除純核稿
-- TDS_L = 處理中法律訴訟案數(L卷) : 1.承辦人員需為該組人員 2.待辦事項狀態需為「TDS01 未完成 3.案件編號—符號之後,第一碼為L
-- TDS_SM = 處理中其他類型的案數(S、M卷): 1.承辦人員需為該組人員 2.待辦事項狀態需為「TDS01 未完成 3.案件編號—符號之後,第一碼為S、M
print('6:'+convert(varchar(20),getdate(),126))
-- 處理中 結果
SELECT a.CaseNo, a.AssignedTo, a.Emp_DS,a.Emp_Item, Emp_Sort, points, 1 as TDS_Tot, -- 總處理中案數
CASE WHEN (Is_Pure=1) THEN 1 ELSE 0 END as TDS_Pure, -- 處理中純核稿數
CASE WHEN (confirm_OK <> Cust_SeeRpt AND confirm_OK <> Finish_FirstRpt AND Cust_SeeRpt<>Finish_FirstRpt) THEN 1 ELSE 0 END as TDS_Sale, -- 處理中純業務數
CASE WHEN (CHARINDEX('審查', MatterNameList) > 0 AND Is_Pure=0
AND ( NOT (CHARINDEX('審查', MatterNameList)>0 AND TaskDescriptionList='完成初稿')) ) THEN 1 ELSE 0 END as TDS_OA, -- 處理中OA案數
CASE WHEN ( (CHARINDEX('申請', MatterNameList) > 0 OR a.CaseNo like '%-P%') AND CHARINDEX('完成初稿', TaskDescriptionList)>0
AND Cust_SeeRpt = Finish_FirstRpt AND Is_Pure=0 ) THEN 1 ELSE 0 END as TDS_New, -- 處理中新案數
CASE WHEN (a.CaseNo like '%-L%') THEN 1 ELSE 0 END as TDS_L, -- 處理中法律訴訟案數(L卷)
CASE WHEN (a.CaseNo like '%-S%' OR a.CaseNo like '%-M%') THEN 1 ELSE 0 END as TDS_SM, -- 處理中其他類型的案數(S、M卷)
FKList, TaskDescriptionList, MatterNameList, Cust_SeeRpt, super_SeeRpt, ChkNo_Rpt, claim_SeeRpt, Finish_FirstRpt, confirm_OK, Is_Pure, points_FKList
into #tmpDA3
FROM #tmpTD_TDS01 a ;
-- 輸出結果
select * from #tmpDA1 order by AssignedTo
select * into #SqlJoinString from (
SELECT AssignedTo, SUM(points) TC_points, SUM(TC_Tot) as TC_Tot, SUM(TC_Pure) as TC_Pure, SUM(TC_Sale) as TC_Sale, SUM(TC_OA) as TC_OA, SUM(TC_New) as TC_New, SUM(TC_L) as TC_L, SUM(TC_SM) as TC_SM,
ISNULL(
STUFF ((SELECT distinct ',' + points_FKList from #tmpDA1 p
where p.AssignedTo = a.AssignedTo
FOR XML PATH('')), 1, 1, N'')
,'') as TC_points_todos,
ISNULL(
STUFF ((SELECT distinct ',' + (CASE WHEN TC_Tot > 0 THEN FKList END) from #tmpDA1 p
where p.AssignedTo = a.AssignedTo
FOR XML PATH('')), 1, 1, N'')
,'') as TC_Tot_todos,
ISNULL(
STUFF ((SELECT distinct ',' + (CASE WHEN TC_Pure > 0 THEN FKList END) from #tmpDA1 p
where p.AssignedTo = a.AssignedTo
FOR XML PATH('')), 1, 1, N'')
,'') as TC_Pure_todos,
ISNULL(
STUFF ((SELECT distinct ',' + (CASE WHEN TC_Sale > 0 THEN FKList END) from #tmpDA1 p
where p.AssignedTo = a.AssignedTo
FOR XML PATH('')), 1, 1, N'')
,'') as TC_Sale_todos,
ISNULL(
STUFF ((SELECT distinct ',' + (CASE WHEN TC_OA > 0 THEN FKList END) from #tmpDA1 p
where p.AssignedTo = a.AssignedTo
FOR XML PATH('')), 1, 1, N'')
,'') as TC_OA_todos,
ISNULL(
STUFF ((SELECT distinct ',' + (CASE WHEN TC_New > 0 THEN FKList END) from #tmpDA1 p
where p.AssignedTo = a.AssignedTo
FOR XML PATH('')), 1, 1, N'')
,'') as TC_New_todos,
ISNULL(
STUFF ((SELECT distinct ',' + (CASE WHEN TC_L > 0 THEN FKList END) from #tmpDA1 p
where p.AssignedTo = a.AssignedTo
FOR XML PATH('')), 1, 1, N'')
,'') as TC_L_todos,
ISNULL(
STUFF ((SELECT distinct ',' + (CASE WHEN TC_SM > 0 THEN FKList END) from #tmpDA1 p
where p.AssignedTo = a.AssignedTo
FOR XML PATH('')), 1, 1, N'')
,'') as TC_SM_todos,
0 as FH_points, 0 as FH_Tot, 0 as FH_Pure, 0 as FH_Sale, 0 as FH_OA, 0 as FH_New, 0 as FH_L, 0 as FH_SM, '' as FH_points_todos, '' as FH_Tot_todos, '' as FH_Pure_todos, '' as FH_Sale_todos, '' as FH_OA_todos, '' as FH_New_todos, '' as FH_L_todos, '' as FH_SM_todos,
0 as TDS_Tot, 0 as TDS_Pure, 0 as TDS_Sale, 0 as TDS_OA, 0 as TDS_New, 0 as TDS_L, 0 as TDS_SM, '' as TDS_points_todos, '' as TDS_Tot_todos, '' as TDS_Pure_todos, '' as TDS_Sale_todos, '' as TDS_OA_todos, '' as TDS_New_todos, '' as TDS_L_todos, '' as TDS_SM_todos
FROM #tmpDA1 a GROUP BY AssignedTo
UNION ALL
SELECT AssignedTo, 0 as TC_points, 0 as TC_Tot, 0 as TC_Pure, 0 as TC_Sale, 0 as TC_OA, 0 as TC_New, 0 as TC_L, 0 as TC_SM, '' as TC_points_todos, '' as TC_Tot_todos, '' as TC_Pure_todos, '' as TC_Sale_todos, '' as TC_OA_todos, '' as TC_New_todos, '' as TC_L_todos, '' as TC_SM_todos,
SUM(points) FH_points, SUM(FH_Tot) as FH_Tot, SUM(FH_Pure) as FH_Pure, SUM(FH_Sale) as FH_Sale, SUM(FH_OA) as FH_OA, SUM(FH_New) as FH_New, SUM(FH_L) as FH_L, SUM(FH_SM) as FH_SM,
ISNULL(
STUFF ((SELECT distinct ',' + points_FKList from #tmpDA2 p
where p.AssignedTo = a.AssignedTo
FOR XML PATH('')), 1, 1, N'')
,'') as FH_points_todos,
ISNULL(
STUFF ((SELECT distinct ',' + CASE WHEN FH_Tot > 0 THEN FKList END from #tmpDA2 p
where p.AssignedTo = a.AssignedTo
FOR XML PATH('')), 1, 1, N'')
,'') as FH_Tot_todos,
ISNULL(
STUFF ((SELECT distinct ',' + CASE WHEN FH_Pure > 0 THEN FKList END from #tmpDA2 p
where p.AssignedTo = a.AssignedTo
FOR XML PATH('')), 1, 1, N'')
,'') as FH_Pure_todos,
ISNULL(
STUFF ((SELECT distinct ',' + CASE WHEN FH_Sale > 0 THEN FKList END from #tmpDA2 p
where p.AssignedTo = a.AssignedTo
FOR XML PATH('')), 1, 1, N'')
,'') as FH_Sale_todos,
ISNULL(
STUFF ((SELECT distinct ',' + CASE WHEN FH_OA > 0 THEN FKList END from #tmpDA2 p
where p.AssignedTo = a.AssignedTo
FOR XML PATH('')), 1, 1, N'')
,'') as FH_OA_todos,
ISNULL(
STUFF ((SELECT distinct ',' + CASE WHEN FH_New > 0 THEN FKList END from #tmpDA2 p
where p.AssignedTo = a.AssignedTo
FOR XML PATH('')), 1, 1, N'')
,'') as FH_New_todos,
ISNULL(
STUFF ((SELECT distinct ',' + CASE WHEN FH_L > 0 THEN FKList END from #tmpDA2 p
where p.AssignedTo = a.AssignedTo
FOR XML PATH('')), 1, 1, N'')
,'') as FH_L_todos,
ISNULL(
STUFF ((SELECT distinct ',' + CASE WHEN FH_SM > 0 THEN FKList END from #tmpDA2 p
where p.AssignedTo = a.AssignedTo
FOR XML PATH('')), 1, 1, N'')
,'') as FH_SM_todos,
0 as TDS_Tot, 0 as TDS_Pure, 0 as TDS_Sale, 0 as TDS_OA, 0 as TDS_New, 0 as TDS_L, 0 as TDS_SM, '' as TDS_points_todos, '' as TDS_Tot_todos, '' as TDS_Pure_todos, '' as TDS_Sale_todos, '' as TTDS_OA_todos, '' as TDS_New_todos, '' as TDS_L_todos, '' as TDS_SM_todos
FROM #tmpDA2 a GROUP BY AssignedTo
UNION ALL
SELECT AssignedTo, 0 as TC_points, 0 as TC_Tot, 0 as TC_Pure, 0 as TC_Sale, 0 as TC_OA, 0 as TC_New, 0 as TC_L, 0 as TC_SM, '' as TC_points_todos, '' as TC_Tot_todos, '' as TC_Pure_todos,
'' as TC_Sale_todos, '' as TC_OA_todos, '' as TC_New_todos, '' as TC_L_todos, '' as TC_SM_todos,
0 as FH_points, 0 as FH_Tot, 0 as FH_Pure, 0 as FH_Sale, 0 as FH_OA, 0 as FH_New, 0 as FH_L, 0 as FH_SM, '' as FH_points_todos, '' as FH_Tot_todos, '' as FH_Pure_todos, '' as FH_Sale_todos, '' as FH_OA_todos, '' as FH_New_todos, '' as FH_L_todos, '' as FH_SM_todos,
SUM(TDS_Tot) as TDS_Tot, SUM(TDS_Pure) as TDS_Pure, SUM(TDS_Sale) as TDS_Sale, SUM(TDS_OA) as TDS_OA, SUM(TDS_New) as TDS_New, SUM(TDS_L) as TDS_L, SUM(TDS_SM) as TDS_SM,
ISNULL(
STUFF ((SELECT distinct ',' + points_FKList from #tmpDA3 p
where p.AssignedTo = a.AssignedTo
FOR XML PATH('')), 1, 1, N'')
,'') as TDS_points_todos,
ISNULL(
STUFF ((SELECT distinct ',' + CASE WHEN TDS_Tot > 0 THEN FKList END from #tmpDA3 p
where p.AssignedTo = a.AssignedTo
FOR XML PATH('')), 1, 1, N'')
,'') as TDS_Tot_todos,
ISNULL(
STUFF ((SELECT distinct ',' + CASE WHEN TDS_Pure > 0 THEN FKList END from #tmpDA3 p
where p.AssignedTo = a.AssignedTo
FOR XML PATH('')), 1, 1, N'')
,'') as TDS_Pure_todos,
ISNULL(
STUFF ((SELECT distinct ',' + CASE WHEN TDS_Sale > 0 THEN FKList END from #tmpDA3 p
where p.AssignedTo = a.AssignedTo
FOR XML PATH('')), 1, 1, N'')
,'') as TDS_Sale_todos,
ISNULL(
STUFF ((SELECT distinct ',' + CASE WHEN TDS_OA > 0 THEN FKList END from #tmpDA3 p
where p.AssignedTo = a.AssignedTo
FOR XML PATH('')), 1, 1, N'')
,'') as TTDS_OA_todos,
ISNULL(
STUFF ((SELECT distinct ',' + CASE WHEN TDS_New > 0 THEN FKList END from #tmpDA3 p
where p.AssignedTo = a.AssignedTo
FOR XML PATH('')), 1, 1, N'')
,'') as TDS_New_todos,
ISNULL(
STUFF ((SELECT distinct ',' + CASE WHEN TDS_L > 0 THEN FKList END from #tmpDA3 p
where p.AssignedTo = a.AssignedTo
FOR XML PATH('')), 1, 1, N'')
,'') as TDS_L_todos,
ISNULL(
STUFF ((SELECT distinct ',' + CASE WHEN TDS_SM > 0 THEN FKList END from #tmpDA3 p
where p.AssignedTo = a.AssignedTo
FOR XML PATH('')), 1, 1, N'')
,'') as TDS_SM_todos
FROM #tmpDA3 a GROUP BY AssignedTo
) a;
select * from #SqlJoinString
select a.Emp_Item as attr_EmpItem, a.Emp_DS as attr_EmpDS,a.Emp_ID as attr_doer, a.Emp_Name as attr_doerName,
'ctd_EmpName1' as class_tdEmpName1, a.Emp_Name as 承辦人, a.Emp_DS as attr_Emp_DS,'ctd_DS' as class_tdDS, a.Emp_DS as 所別,
STUFF ((SELECT distinct ',' + CASE WHEN TC_points_todos<>'' THEN TC_points_todos END from #tmpEmp p left join #SqlJoinString q on p.Emp_ID=q.AssignedTo
where p.Emp_ID = a.Emp_ID and p.Emp_Name = a.Emp_Name and p.Emp_DS = a.Emp_DS and p.Emp_Sort = a.Emp_Sort and p.Emp_Item = a.Emp_Item and q.AssignedTo = b.AssignedTo
FOR XML PATH('')), 1, 1, N'')
as attr_in_points_todos,
SUM(ISNULL(TC_points,0)) as 總接案點數,
STUFF ((SELECT distinct ',' + CASE WHEN TC_Tot_todos<>'' THEN TC_Tot_todos END from #tmpEmp p left join #SqlJoinString q on p.Emp_ID=q.AssignedTo
where p.Emp_ID = a.Emp_ID and p.Emp_Name = a.Emp_Name and p.Emp_DS = a.Emp_DS and p.Emp_Sort = a.Emp_Sort and p.Emp_Item = a.Emp_Item and q.AssignedTo = b.AssignedTo
FOR XML PATH('')), 1, 1, N'')
as attr_in_todos,
SUM(ISNULL(TC_Tot,0)) as 總接案數,
STUFF ((SELECT distinct ',' + CASE WHEN TC_Pure_todos<>'' THEN TC_Pure_todos END from #tmpEmp p left join #SqlJoinString q on p.Emp_ID=q.AssignedTo
where p.Emp_ID = a.Emp_ID and p.Emp_Name = a.Emp_Name and p.Emp_DS = a.Emp_DS and p.Emp_Sort = a.Emp_Sort and p.Emp_Item = a.Emp_Item and q.AssignedTo = b.AssignedTo
FOR XML PATH('')), 1, 1, N'')
as attr_in_Pure_todos, SUM(ISNULL(TC_Pure,0)) as 接純核稿數,
STUFF ((SELECT distinct ',' + CASE WHEN TC_OA_todos<>'' THEN TC_OA_todos END from #tmpEmp p left join #SqlJoinString q on p.Emp_ID=q.AssignedTo
where p.Emp_ID = a.Emp_ID and p.Emp_Name = a.Emp_Name and p.Emp_DS = a.Emp_DS and p.Emp_Sort = a.Emp_Sort and p.Emp_Item = a.Emp_Item and q.AssignedTo = b.AssignedTo
FOR XML PATH('')), 1, 1, N'')
as attr_in_OA_todos,
SUM(ISNULL(TC_OA,0)) as OA案數,
STUFF ((SELECT distinct ',' + CASE WHEN TC_New_todos<>'' THEN TC_New_todos END from #tmpEmp p left join #SqlJoinString q on p.Emp_ID=q.AssignedTo
where p.Emp_ID = a.Emp_ID and p.Emp_Name = a.Emp_Name and p.Emp_DS = a.Emp_DS and p.Emp_Sort = a.Emp_Sort and p.Emp_Item = a.Emp_Item and q.AssignedTo = b.AssignedTo
FOR XML PATH('')), 1, 1, N'')
as attr_in_new_todos,
SUM(ISNULL(TC_New,0)) as 接新案數,
STUFF ((SELECT distinct ',' + CASE WHEN TC_L_todos<>'' THEN TC_L_todos END from #tmpEmp p left join #SqlJoinString q on p.Emp_ID=q.AssignedTo
where p.Emp_ID = a.Emp_ID and p.Emp_Name = a.Emp_Name and p.Emp_DS = a.Emp_DS and p.Emp_Sort = a.Emp_Sort and p.Emp_Item = a.Emp_Item and q.AssignedTo = b.AssignedTo
FOR XML PATH('')), 1, 1, N'')
as attr_in_L_todos,
SUM(ISNULL(TC_L,0)) as '接法律訴訟案數(L卷)',
STUFF ((SELECT distinct ',' + CASE WHEN TC_SM_todos<>'' THEN TC_SM_todos END from #tmpEmp p left join #SqlJoinString q on p.Emp_ID=q.AssignedTo
where p.Emp_ID = a.Emp_ID and p.Emp_Name = a.Emp_Name and p.Emp_DS = a.Emp_DS and p.Emp_Sort = a.Emp_Sort and p.Emp_Item = a.Emp_Item and q.AssignedTo = b.AssignedTo
FOR XML PATH('')), 1, 1, N'')
as attr_in_SM_todos,
SUM(ISNULL(TC_SM,0)) as '接其他類型的案數(S、M卷)',
STUFF ((SELECT distinct ',' + CASE WHEN FH_points_todos<>'' THEN FH_points_todos END from #tmpEmp p left join #SqlJoinString q on p.Emp_ID=q.AssignedTo
where p.Emp_ID = a.Emp_ID and p.Emp_Name = a.Emp_Name and p.Emp_DS = a.Emp_DS and p.Emp_Sort = a.Emp_Sort and p.Emp_Item = a.Emp_Item and q.AssignedTo = b.AssignedTo
FOR XML PATH('')), 1, 1, N'')
as attr_finished_points_todos,
SUM(ISNULL(FH_points,0)) as 總完成案點數,
STUFF ((SELECT distinct ',' + CASE WHEN FH_Tot_todos<>'' THEN FH_Tot_todos END from #tmpEmp p left join #SqlJoinString q on p.Emp_ID=q.AssignedTo
where p.Emp_ID = a.Emp_ID and p.Emp_Name = a.Emp_Name and p.Emp_DS = a.Emp_DS and p.Emp_Sort = a.Emp_Sort and p.Emp_Item = a.Emp_Item and q.AssignedTo = b.AssignedTo
FOR XML PATH('')), 1, 1, N'')
as attr_finished_todos,
SUM(ISNULL(FH_Tot,0)) as 總完成案數,
STUFF ((SELECT distinct ',' + CASE WHEN FH_Pure_todos<>'' THEN FH_Pure_todos END from #tmpEmp p left join #SqlJoinString q on p.Emp_ID=q.AssignedTo
where p.Emp_ID = a.Emp_ID and p.Emp_Name = a.Emp_Name and p.Emp_DS = a.Emp_DS and p.Emp_Sort = a.Emp_Sort and p.Emp_Item = a.Emp_Item and q.AssignedTo = b.AssignedTo
FOR XML PATH('')), 1, 1, N'')
as attr_finished_Pure_todos,
SUM(ISNULL(FH_Pure,0)) as 完成純核稿數,
STUFF ((SELECT distinct ',' + CASE WHEN FH_OA_todos<>'' THEN FH_OA_todos END from #tmpEmp p left join #SqlJoinString q on p.Emp_ID=q.AssignedTo
where p.Emp_ID = a.Emp_ID and p.Emp_Name = a.Emp_Name and p.Emp_DS = a.Emp_DS and p.Emp_Sort = a.Emp_Sort and p.Emp_Item = a.Emp_Item and q.AssignedTo = b.AssignedTo
FOR XML PATH('')), 1, 1, N'')
as attr_finished_OA_todos,
SUM(ISNULL(FH_OA,0)) as 完成OA案數,
STUFF ((SELECT distinct ',' + CASE WHEN FH_New_todos<>'' THEN FH_New_todos END from #tmpEmp p left join #SqlJoinString q on p.Emp_ID=q.AssignedTo
where p.Emp_ID = a.Emp_ID and p.Emp_Name = a.Emp_Name and p.Emp_DS = a.Emp_DS and p.Emp_Sort = a.Emp_Sort and p.Emp_Item = a.Emp_Item and q.AssignedTo = b.AssignedTo
FOR XML PATH('')), 1, 1, N'')
as attr_finished_new_todos,
SUM(ISNULL(FH_New,0)) as 完成新案數,
STUFF ((SELECT distinct ',' + CASE WHEN FH_L_todos<>'' THEN FH_L_todos END from #tmpEmp p left join #SqlJoinString q on p.Emp_ID=q.AssignedTo
where p.Emp_ID = a.Emp_ID and p.Emp_Name = a.Emp_Name and p.Emp_DS = a.Emp_DS and p.Emp_Sort = a.Emp_Sort and p.Emp_Item = a.Emp_Item and q.AssignedTo = b.AssignedTo
FOR XML PATH('')), 1, 1, N'')
as attr_finished_L_todos,
SUM(ISNULL(FH_L,0))as '完成法律訴訟案數(L卷)',
STUFF ((SELECT distinct ',' +CASE WHEN FH_SM_todos<>'' THEN FH_SM_todos END from #tmpEmp p left join #SqlJoinString q on p.Emp_ID=q.AssignedTo
where p.Emp_ID = a.Emp_ID and p.Emp_Name = a.Emp_Name and p.Emp_DS = a.Emp_DS and p.Emp_Sort = a.Emp_Sort and p.Emp_Item = a.Emp_Item and q.AssignedTo = b.AssignedTo
FOR XML PATH('')), 1, 1, N'')
as attr_finished_SM_todos,
SUM(ISNULL(FH_SM,0)) as '完成其他類型的案數(S、M卷)',
STUFF ((SELECT distinct ',' + CASE WHEN TDS_Tot_todos<>'' THEN TDS_Tot_todos END from #tmpEmp p left join #SqlJoinString q on p.Emp_ID=q.AssignedTo
where p.Emp_ID = a.Emp_ID and p.Emp_Name = a.Emp_Name and p.Emp_DS = a.Emp_DS and p.Emp_Sort = a.Emp_Sort and p.Emp_Item = a.Emp_Item and q.AssignedTo = b.AssignedTo
FOR XML PATH('')), 1, 1, N'')
as attr_pending_todos,
SUM(ISNULL(TDS_Tot,0)) as 總處理中案數,
STUFF ((SELECT distinct ',' + CASE WHEN TDS_Pure_todos<>'' THEN TDS_Pure_todos END from #tmpEmp p left join #SqlJoinString q on p.Emp_ID=q.AssignedTo
where p.Emp_ID = a.Emp_ID and p.Emp_Name = a.Emp_Name and p.Emp_DS = a.Emp_DS and p.Emp_Sort = a.Emp_Sort and p.Emp_Item = a.Emp_Item and q.AssignedTo = b.AssignedTo
FOR XML PATH('')), 1, 1, N'')
as attr_pending_Pure_todos,
SUM(ISNULL(TDS_Pure,0)) as 處理中純核稿數,
STUFF ((SELECT distinct ',' + CASE WHEN TDS_OA_todos<>'' THEN TDS_OA_todos END from #tmpEmp p left join #SqlJoinString q on p.Emp_ID=q.AssignedTo
where p.Emp_ID = a.Emp_ID and p.Emp_Name = a.Emp_Name and p.Emp_DS = a.Emp_DS and p.Emp_Sort = a.Emp_Sort and p.Emp_Item = a.Emp_Item and q.AssignedTo = b.AssignedTo
FOR XML PATH('')), 1, 1, N'')
as attr_pending_OA_todos,
SUM(ISNULL(TDS_OA,0)) as 處理中OA案數,
STUFF ((SELECT distinct ',' + CASE WHEN TDS_New_todos<>'' THEN TDS_New_todos END from #tmpEmp p left join #SqlJoinString q on p.Emp_ID=q.AssignedTo
where p.Emp_ID = a.Emp_ID and p.Emp_Name = a.Emp_Name and p.Emp_DS = a.Emp_DS and p.Emp_Sort = a.Emp_Sort and p.Emp_Item = a.Emp_Item and q.AssignedTo = b.AssignedTo
FOR XML PATH('')), 1, 1, N'')
as attr_pending_new_todos,
SUM(ISNULL(TDS_New,0)) as 處理中新案數,
STUFF ((SELECT distinct ',' + CASE WHEN TDS_L_todos<>'' THEN TDS_L_todos END from #tmpEmp p left join #SqlJoinString q on p.Emp_ID=q.AssignedTo
where p.Emp_ID = a.Emp_ID and p.Emp_Name = a.Emp_Name and p.Emp_DS = a.Emp_DS and p.Emp_Sort = a.Emp_Sort and p.Emp_Item = a.Emp_Item and q.AssignedTo = b.AssignedTo
FOR XML PATH('')), 1, 1, N'')
as attr_pending_L_todos,
SUM(ISNULL(TDS_L,0)) as '處理中法律訴訟案數(L卷)',
STUFF ((SELECT distinct ',' +CASE WHEN TDS_SM_todos<>'' THEN TDS_SM_todos END from #tmpEmp p left join #SqlJoinString q on p.Emp_ID=q.AssignedTo
where p.Emp_ID = a.Emp_ID and p.Emp_Name = a.Emp_Name and p.Emp_DS = a.Emp_DS and p.Emp_Sort = a.Emp_Sort and p.Emp_Item = a.Emp_Item and q.AssignedTo = b.AssignedTo
FOR XML PATH('')), 1, 1, N'')
as attr_pending_SM_todos,
SUM(ISNULL(TDS_SM,0)) as '處理中其他類型的案數(S、M卷)'
FROM #tmpEmp a
left join #SqlJoinString b on a.Emp_ID=b.AssignedTo
GROUP BY a.Emp_ID, a.Emp_Name, a.Emp_DS, a.Emp_Sort, a.Emp_Item,b.AssignedTo
order by a.emp_Sort, a.Emp_Item, a.Emp_Name;
BALTER procedure [dbo].[rpt_PerformanceMonth] BALTER procedure [dbo].[rpt_PerformanceMonth]
BUSE [IPEasy] BUSE [IPEasy]
BUSE [IPEasy] BUSE [IPEasy]
Balter procedure [dbo].[rpt_PerformanceMonth_Flow] Balter procedure [dbo].[rpt_PerformanceMonth_Flow]
BUSE [IPEasy] BUSE [IPEasy]
BUSE [IPEasy_test] BUSE [IPEasy_test]
Alter PROCEDURE [dbo].rpt_PointFinish_YM (
@p_YM_F varchar(7), -- 區期年月起值
@p_YM_T varchar(7), -- 區期年月迄值
@p_RptType varchar(10), -- 報表類別 byDS=依所別顯示, byItem=依部別顯示, byPeople=依承辦人顯示
@p_EmpID VARCHAR(80), -- 登入Wade ID
@p_QryEmpItem varchar(1), -- 查詢部別 (空白=全部, 1=一部, 2=二部, 3=三部, 4=四部, 5=五部, 6=日文部, 7=韓文部)
@p_EmpShow nvarchar(10) -- 顯示內容(主管看向下成員, 工程師看個人) ( showAll:顯示全部, showEmp:顯示各人)
)
AS
BEGIN
-- 點數完成統計表
Declare @p_EmpItem varchar(1),@Emp_ItemNo varchar(50),@p_StartDate datetime,@p_EndDate datetime,@p_Emp_ID_USERID VARCHAR(50)='';
Declare @p_YM_1 varchar(7),@p_YM_2 varchar(7),@p_YM_3 varchar(7),@p_YM_4 varchar(7),@p_YM_5 varchar(7),@p_YM_6 varchar(7)
,@p_YM_7 varchar(7),@p_YM_8 varchar(7),@p_YM_9 varchar(7),@p_YM_10 varchar(7),@p_YM_11 varchar(7),@p_YM_12 varchar(7)
,@QryEmpItem VARCHAR(20)= '' ,@QryEmpDS VARCHAR(20)= '' ;
SET @p_EmpItem = @p_QryEmpItem; -- 空白=全部, 1=一部, 2=二部, 3=三部, 4=四部, 5=五部, 6=日文部, 7=韓文部
set @p_StartDate =Convert(datetime,@p_YM_F+'-01',126) ;
set @p_EndDate = DATEADD(day,-1,DATEADD(month, 1,cast(@p_YM_T+'-01' as datetime))) ;
set @p_YM_1=LEFT(Convert(varchar(7),@p_StartDate ,126),7);
set @p_YM_2=LEFT(Convert(varchar(7),DATEADD(month,1,@p_StartDate) ,126),7);
set @p_YM_3=LEFT(Convert(varchar(7),DATEADD(month,2,@p_StartDate) ,126),7);
set @p_YM_4=LEFT(Convert(varchar(7),DATEADD(month,3,@p_StartDate) ,126),7);
set @p_YM_5=LEFT(Convert(varchar(7),DATEADD(month,4,@p_StartDate) ,126),7);
set @p_YM_6=LEFT(Convert(varchar(7),DATEADD(month,5,@p_StartDate) ,126),7);
set @p_YM_7=LEFT(Convert(varchar(7),DATEADD(month,6,@p_StartDate) ,126),7);
set @p_YM_8=LEFT(Convert(varchar(7),DATEADD(month,7,@p_StartDate) ,126),7);
set @p_YM_9=LEFT(Convert(varchar(7),DATEADD(month,8,@p_StartDate) ,126),7);
set @p_YM_10=LEFT(Convert(varchar(7),DATEADD(month,9,@p_StartDate) ,126),7);
set @p_YM_11=LEFT(Convert(varchar(7),DATEADD(month,10,@p_StartDate) ,126),7);
set @p_YM_12=LEFT(Convert(varchar(7),DATEADD(month,11,@p_StartDate) ,126),7);
print('1:'+convert(varchar(20),getdate(),126))
--取得各部主管及特殊權限 (manager_ItemName manager_ItemNo manager_DeptName manager_wadeID)
IF EXISTS(select manager_wadeID from evw_qResult_EmpItemLeader where manager_wadeID=@p_EmpID)
BEGIN
SELECT @QryEmpItem= manager_EmpItem, @QryEmpDS=manager_DeptName from evw_qResult_EmpItemLeader where manager_wadeID=@p_EmpID
END
print('1-1:'+convert(varchar(20),getdate(),126))
;With tmpemp0 as(
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
, 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
a.Emp_Item like '專利%'-- 取專利工程師
And
(
(
(@QryEmpItem<>'' AND @QryEmpDS='' AND a.Emp_item =@QryEmpItem) OR (@QryEmpItem='ALL' AND 1=1) OR
(@QryEmpItem='' AND @QryEmpDS<>'' AND a.Emp_DS=@QryEmpDS ) OR (@QryEmpDS='ALL' AND 1=1) OR
(@QryEmpItem<>'' AND @QryEmpDS<>'' AND a.Emp_item=@QryEmpItem AND a.Emp_DS=@QryEmpDS) OR
(@QryEmpItem<>'ALL' AND @QryEmpDS='ALL' AND a.Emp_item =@QryEmpItem) OR
(@QryEmpItem='ALL' AND @QryEmpDS<>'ALL' AND a.Emp_DS=@QryEmpDS) OR
(@QryEmpItem='' AND @QryEmpDS='' AND a.user_id=@p_EmpID)
) OR ( @p_EmpShow='showAll')--增加 ShowAll權限 07-31
)
AND a.USER_NAME NOT IN ('0','55','56','69') -- 55=TP程序, 56=SH程序, 69=等待, 0=SZ程序
)
-- 取得 員工data (因員工有多個部別, 所以先抓 DISTINCT Emp_ID資料)
SELECT Emp_ID, Emp_Name, Emp_DS, Emp_DSNum, CASE WHEN Emp_Item='' THEN '未設部別' ELSE Emp_Item END as 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, --2020/09/07
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
print('3:'+convert(varchar(20),getdate(),126))
SELECT a.FinishedDate,
b.Emp_ID as AssignedTo,a.AssignedTo_userid,
a.caseNO AS CaseNo , cast(a.sn as varchar(10)) as flowKey ,case when isnull(a.PointsType,'POINT')<>'MP' then ISNULL(points,0) else 0 end as points,convert(varchar(7),a.FinishedDate,126) as FH_YM
into #tmpTodos
FROM evw_esn_todos a
inner join #tmpEmp b on a.AssignedTo_userid=b.user_id
Inner join p_proc_info c on a.proc_id=c.proc_id
WHERE a.FinishedDate between @p_StartDate and @p_EndDate
--AND ISNULL(b.Emp_ID ,'')<>'' AND b.Emp_ID NOT IN ('0','55','56','69') -- 55=TP程序, 56=SH程序, 69=等待, 0=SZ程序
--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))
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,
CASE WHEN FH_YM = @p_YM_1 THEN 1 ELSE 0 END as r01, CASE WHEN FH_YM = @p_YM_1 THEN points 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 points 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 points 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 points 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 points 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 points 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 points 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 points 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 points 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 points 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 points 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 points ELSE 0 END as p12,
CASE WHEN b.FlowKey IS NULL THEN 0 ELSE 1 END as rTot, points as pTot, ISNULL(FlowKey,'') FlowKey, ISNULL(CaseNo,'') CaseNo
into #tmpAG
FROM #tmpEmp a
Inner join #tmpTodos b ON a.user_id = b.AssignedTo_userid
WHERE (NOT ((Emp_Item='未設部別' OR IsEmpLeave=1 ) -- and ISNULL(b.FlowKey,'')=''
) )
;
print('6:'+convert(varchar(20),getdate(),126))
--結果
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)='';
WHILE @cnt < 13
BEGIN
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+','
+ '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 p'+@cntT+'> 0 THEN p.FlowKey END) FROM #tmpAG AS p @groupcase FOR XML PATH('''')), 1, 1, N'''') as pT'+@cntT+', '
SET @cnt = @cnt + 1;
END
set @CommonString=@CommonString
+ '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.FlowKey FROM #tmpAG AS p @groupcase FOR XML PATH('''')), 1, 1, N'''') as pTTot ';
Set @SqlString= ' ' +
' select * from (';
IF @p_RptType='byDS'
--select cast(@CommonString as varchar(max)); --debug query ;
BEGIN
--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 @groupcase2='where p.Emp_DS = a.Emp_DS and p.Emp_DSNum = a.Emp_DSNum ';
set @groupcase3='WHERE Emp_DS like ''深圳所%'' ';
set @groupcase4=' ';
--Set @CommonString=replace(@CommonString,'@groupcase',@groupcase1);
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 '
+'GROUP BY Emp_DS, Emp_DSNum, Emp_Item, Emp_ItemNum '
+'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 '
+'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 '
Set @SortString='Order by Emp_DSNum,Emp_ItemNum;' ;
END
ELSE IF @p_RptType='byItem'
BEGIN
--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 @groupcase2='where p.Emp_Item = a.Emp_Item and p.Emp_ItemNum = a.Emp_ItemNum ';
set @groupcase3='WHERE Emp_DS like ''深圳所%'' ';
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 '
+' GROUP BY Emp_Item, Emp_ItemNum, Emp_DS, Emp_DSNum '
+'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 '
+'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
ELSE IF @p_RptType='byPeople'
BEGIN
-- -- by 承辦人
--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 @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 '
+'GROUP BY Emp_Name, Emp_Item, Emp_ItemNum, Emp_DS, Emp_DSNum, Emp_Sort '
+'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 '
Set @SortString='Order by Emp_ItemNum,Emp_DSNum, Emp_Name; ' ;
END
Set @SqlString=@SqlString +') a ' + @SortString +' ';
--Set @SqlString=@SqlString +'; select * from #TmpResult ' + @SortString +' ';
--select cast(@SqlString as varchar(max)); --debug query
Exec (@SqlString);
IF OBJECT_ID('tempdb..#tmpEmp', 'U') IS NOT NULL DROP TABLE #tmpEmp
IF OBJECT_ID('tempdb..#tmpTodos', 'U') IS NOT NULL DROP TABLE #tmpTodos
IF OBJECT_ID('tempdb..#tmpAG', 'U') IS NOT NULL DROP TABLE #tmpAG
IF OBJECT_ID('tempdb..#TmpResult', 'U') IS NOT NULL DROP TABLE #TmpResult
END
GO
DECLARE @return_value int
EXEC @return_value = [dbo].[rpt_PointFinish_YM]
@p_YM_F = N'2020-01',
@p_YM_T = N'2020-03',
@p_RptType = N'bypeople',
@p_EmpID = N'cb76971e-22d1-4f81-ade1-03c280f68cce',
@p_QryEmpItem = N'',
@p_EmpShow = N'showall'
SELECT 'Return Value' = @return_value
GO
--select * from dbo.tempdb..#TmpResult
--[dbo].rpt_PointFinish_YM '2019-06','2019-12','byDS','ninakuo','','showAll';
-- mssql
\ No newline at end of file
declare
@p_YM_F VARCHAR(50)= N'2020-10', -- 區期年月起值
@p_YM_T VARCHAR(50)= N'2020-10', -- 區期年月迄值
@p_RptType VARCHAR(50)= N'bypeople', -- 報表類別 byDS=依所別顯示, byItem=依部別顯示, byPeople=依承辦人顯示
@p_EmpID VARCHAR(50)= N'cb76971e-22d1-4f81-ade1-03c280f68cce', -- 登入Wade ID
@p_QryEmpItem VARCHAR(50)= N'', -- 查詢部別 (空白=全部, 1=一部, 2=二部, 3=三部, 4=四部, 5=五部, 6=日文部, 7=韓文部)
@p_EmpShow VARCHAR(50)= N'showall' -- 顯示內容(主管看向下成員, 工程師看個人) ( showAll:顯示全部, showEmp:顯示各人)
IF OBJECT_ID('tempdb..#tmpEmp', 'U') IS NOT NULL DROP TABLE #tmpEmp
IF OBJECT_ID('tempdb..#tmpTodos', 'U') IS NOT NULL DROP TABLE #tmpTodos
IF OBJECT_ID('tempdb..#tmpAG', 'U') IS NOT NULL DROP TABLE #tmpAG
IF OBJECT_ID('tempdb..#TmpResult', 'U') IS NOT NULL DROP TABLE #TmpResult
-- 點數完成統計表
Declare @p_EmpItem varchar(1),@Emp_ItemNo varchar(50),@p_StartDate datetime,@p_EndDate datetime,@p_Emp_ID_USERID VARCHAR(50)='';
Declare @p_YM_1 varchar(7),@p_YM_2 varchar(7),@p_YM_3 varchar(7),@p_YM_4 varchar(7),@p_YM_5 varchar(7),@p_YM_6 varchar(7)
,@p_YM_7 varchar(7),@p_YM_8 varchar(7),@p_YM_9 varchar(7),@p_YM_10 varchar(7),@p_YM_11 varchar(7),@p_YM_12 varchar(7)
,@QryEmpItem VARCHAR(20)= '' ,@QryEmpDS VARCHAR(20)= '' ;
SET @p_EmpItem = @p_QryEmpItem; -- 空白=全部, 1=一部, 2=二部, 3=三部, 4=四部, 5=五部, 6=日文部, 7=韓文部
set @p_StartDate =Convert(datetime,@p_YM_F+'-01',126) ;
set @p_EndDate = DATEADD(day,-1,DATEADD(month, 1,cast(@p_YM_T+'-01' as datetime))) ;
set @p_YM_1=LEFT(Convert(varchar(7),@p_StartDate ,126),7);
set @p_YM_2=LEFT(Convert(varchar(7),DATEADD(month,1,@p_StartDate) ,126),7);
set @p_YM_3=LEFT(Convert(varchar(7),DATEADD(month,2,@p_StartDate) ,126),7);
set @p_YM_4=LEFT(Convert(varchar(7),DATEADD(month,3,@p_StartDate) ,126),7);
set @p_YM_5=LEFT(Convert(varchar(7),DATEADD(month,4,@p_StartDate) ,126),7);
set @p_YM_6=LEFT(Convert(varchar(7),DATEADD(month,5,@p_StartDate) ,126),7);
set @p_YM_7=LEFT(Convert(varchar(7),DATEADD(month,6,@p_StartDate) ,126),7);
set @p_YM_8=LEFT(Convert(varchar(7),DATEADD(month,7,@p_StartDate) ,126),7);
set @p_YM_9=LEFT(Convert(varchar(7),DATEADD(month,8,@p_StartDate) ,126),7);
set @p_YM_10=LEFT(Convert(varchar(7),DATEADD(month,9,@p_StartDate) ,126),7);
set @p_YM_11=LEFT(Convert(varchar(7),DATEADD(month,10,@p_StartDate) ,126),7);
set @p_YM_12=LEFT(Convert(varchar(7),DATEADD(month,11,@p_StartDate) ,126),7);
print('1:'+convert(varchar(20),getdate(),126))
--取得各部主管及特殊權限 (manager_ItemName manager_ItemNo manager_DeptName manager_wadeID)
IF EXISTS(select manager_wadeID from evw_qResult_EmpItemLeader where manager_wadeID=@p_EmpID)
BEGIN
SELECT @QryEmpItem= manager_EmpItem, @QryEmpDS=manager_DeptName from evw_qResult_EmpItemLeader where manager_wadeID=@p_EmpID
END
print('1-1:'+convert(varchar(20),getdate(),126))
;With tmpemp0 as(
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
, 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
a.Emp_Item like '專利%'-- 取專利工程師
And
(
(
(@QryEmpItem<>'' AND @QryEmpDS='' AND a.Emp_item =@QryEmpItem) OR (@QryEmpItem='ALL' AND 1=1) OR
(@QryEmpItem='' AND @QryEmpDS<>'' AND a.Emp_DS=@QryEmpDS ) OR (@QryEmpDS='ALL' AND 1=1) OR
(@QryEmpItem<>'' AND @QryEmpDS<>'' AND a.Emp_item=@QryEmpItem AND a.Emp_DS=@QryEmpDS) OR
(@QryEmpItem<>'ALL' AND @QryEmpDS='ALL' AND a.Emp_item =@QryEmpItem) OR
(@QryEmpItem='ALL' AND @QryEmpDS<>'ALL' AND a.Emp_DS=@QryEmpDS) OR
(@QryEmpItem='' AND @QryEmpDS='' AND a.user_id=@p_EmpID)
) OR ( @p_EmpShow='showAll')--增加 ShowAll權限 07-31
)
AND a.USER_NAME NOT IN ('0','55','56','69') -- 55=TP程序, 56=SH程序, 69=等待, 0=SZ程序
)
-- 取得 員工data (因員工有多個部別, 所以先抓 DISTINCT Emp_ID資料)
SELECT Emp_ID, Emp_Name, Emp_DS, Emp_DSNum, CASE WHEN Emp_Item='' THEN '未設部別' ELSE Emp_Item END as 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, --2020/09/07
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
print('3:'+convert(varchar(20),getdate(),126))
SELECT a.FinishedDate,
b.Emp_ID as AssignedTo,a.AssignedTo_userid,
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
FROM evw_esn_todos a
inner join #tmpEmp b on a.AssignedTo_userid=b.user_id
Inner join p_proc_info c on a.proc_id=c.proc_id
WHERE a.FinishedDate between @p_StartDate and @p_EndDate
--AND ISNULL(b.Emp_ID ,'')<>'' AND b.Emp_ID NOT IN ('0','55','56','69') -- 55=TP程序, 56=SH程序, 69=等待, 0=SZ程序
--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))
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,
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_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_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 b.FlowKey IS NULL THEN 0 ELSE 1 END as rTot, ISNULL(points,0) as pTot, ISNULL(FlowKey,'') FlowKey, ISNULL(CaseNo,'') CaseNo
into #tmpAG
FROM #tmpEmp a
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 flowkey='774008'
print('6:'+convert(varchar(20),getdate(),126))
--結果
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)='';
WHILE @cnt < 13
BEGIN
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+','
+ '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 p'+@cntT+'> 0 THEN p.FlowKey END) FROM #tmpAG AS p @groupcase FOR XML PATH('''')), 1, 1, N'''') as pT'+@cntT+', '
SET @cnt = @cnt + 1;
END
set @CommonString=@CommonString
+ '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.FlowKey FROM #tmpAG AS p @groupcase FOR XML PATH('''')), 1, 1, N'''') as pTTot ';
Set @SqlString= ' ' +
' select * from (';
IF @p_RptType='byDS'
--select cast(@CommonString as varchar(max)); --debug query ;
BEGIN
--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 @groupcase2='where p.Emp_DS = a.Emp_DS and p.Emp_DSNum = a.Emp_DSNum ';
set @groupcase3='WHERE Emp_DS like ''深圳所%'' ';
set @groupcase4=' ';
--Set @CommonString=replace(@CommonString,'@groupcase',@groupcase1);
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 '
+'GROUP BY Emp_DS, Emp_DSNum, Emp_Item, Emp_ItemNum '
+'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 '
+'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 '
Set @SortString='Order by Emp_DSNum,Emp_ItemNum;' ;
END
ELSE IF @p_RptType='byItem'
BEGIN
--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 @groupcase2='where p.Emp_Item = a.Emp_Item and p.Emp_ItemNum = a.Emp_ItemNum ';
set @groupcase3='WHERE Emp_DS like ''深圳所%'' ';
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 '
+' GROUP BY Emp_Item, Emp_ItemNum, Emp_DS, Emp_DSNum '
+'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 '
+'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
ELSE IF @p_RptType='byPeople'
BEGIN
-- -- by 承辦人
--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 @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 '
+'GROUP BY Emp_Name, Emp_Item, Emp_ItemNum, Emp_DS, Emp_DSNum, Emp_Sort '
+'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 '
Set @SortString='Order by Emp_ItemNum,Emp_DSNum, Emp_Name; ' ;
END
Set @SqlString=@SqlString +') a ' + @SortString +' ';
--Set @SqlString=@SqlString +'; select * from #TmpResult ' + @SortString +' ';
select cast(@SqlString as varchar(max)); --debug query
Exec (@SqlString);
Alter PROCEDURE sp_Edit_esn_kpi_tg(@p_Kpi_year varchar(4),@p_kpi_Applicant varchar(50),@p_Qry_CustNM varchar(45),@p_CN_QN int,@p_PCT_AP int,@p_CN_AP int,
@p_JP_AP int,@p_US_AP int,@p_EP_AP int,@p_RU_AP int,@p_KR_AP int,@p_IN_AP int,@p_Is_Enabled varchar(1),@p_Update_userID varchar(45),@p_Update_username varchar(45)
)
AS
BEGIN
IF EXISTS(select 1 from esn_kpi_tg where kpi_year=@p_Kpi_year and kpi_Applicant=@p_kpi_Applicant)
BEGIN
update esn_kpi_tg SET CN_QN=@p_CN_QN, PCT_AP=@p_PCT_AP, CN_AP=@p_CN_AP, JP_AP=@p_JP_AP, US_AP=@p_US_AP, EP_AP=@p_EP_AP, RU_AP=@p_RU_AP,
KR_AP=@p_KR_AP, IN_AP=@p_IN_AP, Is_Enabled=@p_Is_Enabled, Update_userID=@p_Update_userID, update_time=getdate(),Update_username=@p_Update_username
WHERE Kpi_year=@p_Kpi_year and kpi_Applicant=@p_kpi_Applicant
print(@p_Kpi_year+'-'+@p_kpi_Applicant)
END
ELSE
BEGIN
insert esn_kpi_tg
select @p_Kpi_year as kpi_year, @p_kpi_Applicant as kpi_Applicant, @p_Qry_CustNM as Qry_CustNM, @p_CN_QN as CN_QN,
@p_PCT_AP as PCT_AP, @p_CN_AP as CN_AP, @p_JP_AP as JP_AP, @p_US_AP as US_AP, @p_EP_AP as EP_AP, @p_RU_AP as RU_AP, @p_KR_AP as KR_AP,
@p_IN_AP as IN_AP, @p_Is_Enabled as Is_Enabled, @p_Update_userID as Update_userID, getdate() as update_time,@p_Update_username as Update_username ;
END
select * from esn_kpi_tg where kpi_year=@p_Kpi_year and kpi_Applicant=@p_kpi_Applicant;
END
GO
sp_Edit_esn_kpi_tg '2019','89FC21BA-0112-4DAF-A98D-053F52DF7920','?P','500','150','400','0','100','0','0','0','0','','solho',''
\ 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