Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 插入到具有相同ID的另一个表时合并数据_Sql Server_Stored Procedures - Fatal编程技术网

Sql server 插入到具有相同ID的另一个表时合并数据

Sql server 插入到具有相同ID的另一个表时合并数据,sql-server,stored-procedures,Sql Server,Stored Procedures,我有一个包含以下数据的表,lab\u sample\u id是相同的,我正在将此数据插入另一个表中。如果lab_sample_id与leg_id1和3相同,我希望在插入另一个表时合并数据 leg\u id1和3将始终具有唯一的数据,但lab\u sample\u id可能相同 以下是我当前的代码: INSERT INTO SAMPLE_RESULT (PPK, LAB_SAMPLE_ID, LEG_ID, PT, PT_METHOD,

我有一个包含以下数据的表,
lab\u sample\u id
是相同的,我正在将此数据插入另一个表中。如果
lab_sample_id
leg_id
1和3相同,我希望在插入另一个表时合并数据

leg\u id
1和3将始终具有唯一的数据,但
lab\u sample\u 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)

类似这样的操作应该可以做到,您可以
将表连接到自身:

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
逻辑以使用此数据。

LEG_ID 1和3将始终具有唯一的数据,但如果您将sql作为问题的实际文本/代码(而不是图像)发布,则lab_示例ID可能是相同的,人们可以复制它,而不必键入所有内容。前3个字段总是为
LEG\u ID=1
填充,最后3个字段总是为
LEG\u ID=3
填充吗?@Tanner是的correct@tanner我如何发布它,如果我把它粘贴在这里,它会说它太长了