簡體   English   中英

SQL Server查詢以獲取數據

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM