[英]Sql server query to get Data
我有一個要求,我需要為特定的EmpID插入具有不同哈希值的記錄。 以下是暫存和主記錄中的一些樣本值。 分階段每周獲取值,並且需要根據ID和哈希值以及在處理所有記錄時將表截斷,將值插入master。
Week 1 in staging: EMpd ID Hash Value
1000 1; 2000 2
2 records gets inserted in master
Week2 in staging: EMPID hashvalues
1000 -3
2000 2
3000 5
Master should have 1000 1;1000 -3; 2000 2; 3000 5
Week 3 in staging: EMPID hashvalues
1000 -5
2000 -9
3000 5
Master should have 1000 1;1000 -3; 1000 -5;2000 2; 2000 -9;3000 5
I have tried doing
insert into EMP_MASTER (EMPID,EMPNAME,hashValue)
select mas.*,stg.hashvalue FROM [EMP_master] mas (nolock)
INNER JOIN [EMP_staging] stg (nolock) ON mas.EMPID = stg.EMPID
WHERE mas.hashvalue != stg.hashvalue and not exists
(select 1 from [EMP_Master](nolock)
where EMPID=stg.EMPID and hashValue=stg.hashvalue ) order by EMPID;
這給出了1000的重復值。有人可以幫我嗎? 謝謝MR
基本上,它是一個簡單的選擇行,在另一個表中沒有匹配的條目。 您可以嘗試以下方法:
insert into EMP_MASTER (EMPID,hashValue)
SELECT t1.EMPID, t1.hashValue
FROM staging t1
LEFT JOIN master t2 ON t1.EMPID = t2.EMPID AND t1.hashValue = t2.hashValue
WHERE t2.EMPID IS NULL
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.