我試過以下。它不會插入任何新行,儘管沒有行也是重複的。爲什麼?我做錯了什麼?任何幫助的讚賞如何在SQL Server 2005中只插入非重複的行?
INSERT INTO TEMP_8
SELECT PASS_M, ENTRY_DT, EXIT_D, WORKED_HRS,
CONSECUTIVE_D = num -(SELECT max(num)
FROM TEMP_7 B
WHERE B.CONSEC <= A.CONSEC
AND B.GAP = 1
AND A.IC_N = B.IC_N) + 1
FROM TEMP_7 A
WHERE NOT EXISTS (SELECT *
FROM TEMP_8);
更新:
PASS_M ENTRY_DT, EXIT_DT, WORKED_HRS
peter 20/12/12 21/12/12 12
Tom 20/12/12 21/12/12 10
Tom 21/12/12 22/12/12 9
這些都不重複。重複的是當name
,entry_dt
和exit_dt
完全相同。
你如何定義一個重複的行? –
在not exists部分需要一個where子句,如果temp_8根本不包含任何記錄,那麼只會返回true。另外如果你想得到一個確切的答案,你需要更新問題以上述評論。 – PeterJ
謝謝,更新爲建議 – 10e5x