在执行添加

时间:2015-12-08 06:46:14

标签: sql-server tsql

我的查询是, 选择后,我得到的值如下:

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

现在每当我反击(在SELECTION之后)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 个答案:

答案 0 :(得分: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