【问题标题】:Merge data when inserting into another table with the same ID插入具有相同 ID 的另一个表时合并数据
【发布时间】:2015-02-25 09:29:37
【问题描述】:

我有一个包含以下数据的表,lab_sample_id 是相同的,我正在将此数据插入到另一个表中。如果lab_sample_idleg_id 1 和3 相同,我想在插入另一个表时合并数据。

leg_id 1 和 3 将始终具有唯一数据,但 lab_sample_id 可能相同。

这是我当前的代码:

INSERT INTO SAMPLE_RESULT   
            (PPK, LAB_SAMPLE_ID, LEG_ID, PT, PT_METHOD, 
             PT_MIN_DETECTION, CU, CU_METHOD, CU_MIN_DETECTION)            
SELECT B.PK, CSR.LAB_SAMPLE_ID, CSR.LEG_ID, CSR.PT, CSR.PT_METHOD, 
       CSR.PT_MIN_DETECTION, CSR.CU, CSR.CU_METHOD, CSR.CU_MIN_DETECTION               
FROM [SOURCE] S
JOIN CLEARING_BATCH CB ON CB.PPK = S.PK
JOIN CLEARING_SAMPLE_RESULT CSR ON CSR.PPK = CB.PK
JOIN SAMPLE_REG SR ON SR.FIELD_SAMP_ID = CSR.LAB_SAMPLE_ID
LEFT JOIN PROSPECTS_AND_MINES PM ON PM.PPK = S.PK
LEFT JOIN LABORATORY L ON L.PPK = PM.PK
LEFT JOIN BATCH B ON L.PK = B.PPK        
WHERE  CB.PK =@Submission_Pk  
       AND  CB.BATCH_ID = B.BATCH_ID    
       AND NOT EXISTS(SELECT * 
                      FROM SAMPLE_RESULT SR
                      WHERE SR.PPK = B.PK 
                        AND SR.LAB_SAMPLE_ID = CSR.LAB_SAMPLE_ID 
                        AND SR.LEG_ID = CSR.LEG_ID)

【问题讨论】:

  • LEG_ID 1 AND 3 将始终具有唯一数据,但 lab_sample_id 可能相同
  • 如果您将您的 sql 作为实际文本/代码(而不是图像)发布在问题上,人们可以复制它而不必输入所有内容。
  • 总是为LEG_ID = 1 填充前3 个字段,为LEG_ID = 3 填充最后3 个字段?
  • @Tanner 是的,没错
  • @tanner 我怎么贴,如果我贴在这里,它说它太长了

标签: sql-server stored-procedures


【解决方案1】:

这样的事情应该可以解决问题,您可以在其中 JOIN 将表格设置为自身:

SELECT t1.LAB_SAMPLE_ID, 
       t1.LEG_ID, 
       t1.PT, 
       t1.PT_METHOD, 
       t1.PT_MIN_DETECTION,
       t2.cu, 
       t2.CU_METHOD, 
       t2.CU_MIN_DETECTION
FROM CLEARING_SAMPLE_RESULT t1
INNER JOIN CLEARING_SAMPLE_RESULT t2 
        ON t1.LAB_SAMPLE_ID = t2.LAB_SAMPLE_ID 
WHERE t1.LAB_SAMPLE_ID = 1 AND t2.LAB_SAMPLE_ID = 3

然后您可以修改您的UPDATE 逻辑以使用此数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-02
    • 2022-12-17
    • 2019-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多