34,838
社区成员




--红色部分修改如下:
--1. @[DepartmentId]=> @DepartmentId
--2. 中文 ‘ => '
WHERE b.code =
CASE WHEN @DepartmentId = 'NB001000' THEN '50' + CAST(CardId AS VARCHAR)
ELSE '5' + CAST(CardId AS VARCHAR) END
where b.code=case when @DepartmentId=‘NB001000’then '50'+cast(CardId as varchar) else '5'+cast(CardId as varchar) end
@DepartmentId='NB001000'
SELECT [AttendanceCollectId] = NEWID() ,
[MachineId] = [Machine].MachineId ,
[MachineCode] = cardinfo.clockid ,
[CardId] = [Card].CardId ,
[CardCode] = [Card].CardNo ,
[EmployeeName] = [Employee].CnName ,
[EmployeeCode] = [Employee].Code ,
[EmployeeId] = [Employee].EmployeeId ,
[ownerId] = [Employee].EmployeeId ,
[DepartmentName] = [Department].Name ,
[DepartmentId] = [Department].DepartmentId ,
[Date] = cardinfo.date + ' ' + cardinfo.time ,
[Time] = cardinfo.time ,
[IsManual] = 0 ,
[Flag] = '1' ,
ApproveResultId = 'OperatorResult_001' ,
StateId = 'PlanState_003' ,
IsForAttendance = '1'
--,AttendanceCollectLogId=@AttCollectLogId
FROM ( SELECT *
FROM ( SELECT RIGHT(CONVERT(VARCHAR(16), DATEADD(ss,
a.KqTime,
CAST('00:00:00' AS DATETIME)), 121),
5) time ,
CONVERT(VARCHAR(100), a.KqDate, 23) date ,
'5' + CAST(CardId AS VARCHAR) carid ,
RIGHT(CONVERT(VARCHAR(16), DATEADD(ss,
a.KqTime,
CAST('00:00:00' AS DATETIME)), 121),
5) AS checktime ,
a.DevID AS clockid ,
b.employeeid
FROM [192.168.3.101
].[HsSmartHR170921].dbo.KQ_KqData a ,
employee b
WHERE b.code = CASE WHEN @DepartmentId = 'NB001000'
THEN '50'
+ CAST(CardId AS VARCHAR)
ELSE '5'
+ CAST(CardId AS VARCHAR)
END
AND a.EmpSysID IS NOT NULL
) AS info
WHERE NOT EXISTS ( SELECT TOP 1
*
FROM ( SELECT [CardCode] ,
[MachineCode] ,
[DateTime] = CONVERT(VARCHAR(100), Date, 23)
+ ' '
+ CONVERT(VARCHAR(100), Time, 24) ,
employeeid
FROM [AttendanceCollect]
) AS collect
WHERE collect.employeeid = info.employeeid
AND SUBSTRING(CONVERT(VARCHAR(100), collect.[DateTime], 20),
1, 16) = info.date + ' '
+ info.time )
) AS cardinfo
LEFT JOIN [Machine] ON [Machine].Code = cardinfo.clockid
LEFT JOIN [Card] ON [Card].employeeid = cardinfo.employeeid
AND [Card].UseTypeId = 'UseType_001'
AND ( [card].RevokeDate IS NULL
OR [card].RevokeDate >= GETDATE() - 2
)
LEFT JOIN [Employee] ON [Employee].employeeid = [Card].EmployeeId
LEFT JOIN [Department] ON [Department].DepartmentId = [Employee].DepartmentId
WHERE [Card].CardNo IS NOT NULL
AND cardinfo.date >= '2017-03-01'
没说明想做什么啊??