2015-12-08 80 views
0

我查詢就好了, 選擇I我越來越喜歡值後:更新基於另一個行的值一列,同時執行另外

HeadCode  HeadName NoOfEmp  VisitsMade 
    ------------------------------------------------- 
    A101   ABC   20    5 
    M123   DEF   4    1 
    L809   LMN   2    10 
    B201   XYZ   5    3 

現在,每當我對付HeadCode(選擇後)B201 - XYZ,我需要他的NoOfEmp和VisitsMade行HeadCode是A101。 就像這個例子中,當我找到HeadCode B201時,他的字段將被添加到A101的字段中,並且具有HeadCode B201的行被刪除。

HeadCode  HeadName NoOfEmp  VisitsMade 
    ------------------------------------------------- 
    A101   ABC   25    8 
    M123   DEF   4    1 
    L809   LMN   2    10 

這裏行A101增加了B201的值,然後B201在表中被刪除。

回答

1

你可以試試這個代碼:

DECLARE @tmp TABLE (HeadCode VARCHAR(4), HeadName VARCHAR(3), NoOfEmp INT, VisitsMade INT) 

INSERT INTO @tmp 
SELECT ... --- your select query 

UPDATE @tmp 
SET NoOfEmp = NoOfEmp + (SELECT NoOfEmp FROM @tmp WHERE HeadCode = 'B201'), 
    VisitsMade = VisitsMade + (SELECT VisitsMade FROM @tmp WHERE HeadCode = 'B201') 
WHERE HeadCode = 'A101' 

SELECT * FROM @tmp 
+0

那如何刪除'B201'行由OP的要求? – HABO

+0

您可以刪除所有表並從@tmp插入 –