我想從表T1複製數據到表T2到以下條件: 1)數據不應該重複。 2)和T1列簽入和T2簽入的時間差必須超過5秒。從一張表到另一張表插入沒有重複記錄
我現有的程序這
ALTER PROCEDURE [dbo].[usp_InsertUserAttendanceLog] @userId varchar(400),@CheckInCheckOutDate datetime,@WorkDate datetime,@InOutMode int,@VerifyMode int, @InsertDate datetime
AS
BEGIN
if
not exists (select 1 from tblAttendance where [email protected] and [email protected] and [email protected] and [email protected])
begin
if
not exists (select 1 from tblAttendance where [email protected] and convert(date,CheckInCheckOutDate)=convert(date,@CheckInCheckOutDate) and DATEDIFF(second,CheckInCheckOutDate,@CheckInCheckOutDate) <= 3)
begin
INSERT INTO tblAttendance(EmpCode,CheckInCheckOutDate,WorkDate,InoutMode,VerifyMode,InsertDate)
VALUES(@userId,@CheckInCheckOutDate,@WorkDate,@InOutMode,@VerifyMode,@InsertDate)
end
end
end
和我tryed這樣的代碼,但不起作用。葛亭Dupicate
INSERT INTO tblAttendance (EmpCode,CheckInCheckOutDate,WorkDate,InOutMode,VerifyMode,InsertDate,[Status])
SELECT T1.EmpCode,T1.CheckInCheckOutDate,T1.WorkDate,T1.InOutMode,T1.VerifyMode,T1.InsertDate,T1.[Status]
FROM testAttendanceBulk T1
WHERE NOT EXISTS(select 1 from tblAttendance T2 where T2.CheckInCheckOutDate=T1.CheckInCheckOutDate
and T2.WorkDate=T1.WorkDate and T2.InOutMode=T1.InOutMode
and T2.VerifyMode=T1.VerifyMode and T2.empCode=T1.EmpCode
and convert(date,T2.CheckInCheckOutDate)=convert(date,T1.CheckInCheckOutDate)
and DATEDIFF(second,T2.CheckInCheckOutDate,T1.CheckInCheckOutDate) <= 5)
你能定義「不行」嗎?你得到重複嗎?你沒有得到什麼?你是否收到錯誤信息? –
@ Sean Lange geting重複感謝 –
不要害怕給你的查詢添加一些空白,這樣他們更容易閱讀。文本sql的牆很難處理。您的哪些查詢正在返回重複項?都?第一個?第二個?請記住,我們無法看到您的屏幕或閱讀您的想法。我們可以提供幫助,但您必須向我們提供信息。這裏是一個開始的好地方。 http://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum/ –