2017-02-09 65 views
0

我想在同一個表中複製一行並更改複製行的第一個單元格編號(如1到9),並將值其他單元格來自另一個表格的值。SQL Server:複製行並從另一個表中替換第一列第一個字符和多個其他列

表1

uniqueID ID2 ID3 Number Number 
------------------------------- 
199000 1 2 20  20 

表2

MultiplyN ID2 ID3 
----------------- 
5   1 2 

插入後,並設置繁衍

表1

uniqueID ID2 ID3 Number Number 
------------------------------- 
199000 1 2 20  20 
999000 1 2 100 100 

這是我的程序只複製和更改第一個字母,但它什麼都不做。

我在做什麼錯了?

ALTER PROCEDURE [dbo].[tableInsertUpdate] 
    (@kulcs nvarchar(50), 
    @uzlev int, 
    @uzlho int, 
    @uzltip int, 
    @uzlnev char, 
    @belfarb int, 
    @exparb int, 
    @egyarb int, 
    @arbjova int, 
    @allvalt int, 
    @anyagkolt int, 
    @energkolt int, 
    @elabe int, 
    @kozvetitettszolg int, 
    @igbevettagjell int, 
    @igenybevettszolg int, 
    @berkoltsjar int, 
    @egyebszem int, 
    @egyebraf int, 
    @koltsterh int, 
    @ecs int, 
    @berlvhep int, 
    @berlvheszk int, 
    @mfee int, 
    @koltscostcent int, 
    @penzeredvh int, 
    @penzeredkulso int, 
    @arfegyenleg int, 
    @rendkered int, 
    @letszam int, 
    @bérelt_munkaerő int, 
    @bérelt_munkaerők int) 
AS 
    UPDATE uzlag_2006_copy 
    SET kulcs = '9' + SUBSTRING (@kulcs, 1, len(kulcs) - 1) 
    WHERE kulcs = @kulcs 

    INSERT INTO uzlag_2006_copy (kulcs, uzlev, uzlho, uzltip, uzlnev, belfarb, 
           exparb, egyarb, arbjova, allvalt, anyagkolt, 
           energkolt, elabe, kozvetitettszolg, 
           igbevettagjell, igenybevettszolg, 
           berkoltsjar, egyebszem, egyebraf, 
           koltsterh, ecs, berlvhep, berlvheszk, 
           mfee, koltscostcent, penzeredvh, 
           penzeredkulso, arfegyenleg, rendkered, 
           letszam, bérelt_munkaerő, bérelt_munkaerők) 
    VALUES (@kulcs, @uzlev, @uzlho, @uzltip, @uzlnev, @belfarb, @exparb, 
      @egyarb, @arbjova, @allvalt, @anyagkolt, @energkolt, @elabe, 
      @kozvetitettszolg, @igbevettagjell, @igenybevettszolg, 
      @berkoltsjar, @egyebszem, @egyebraf, @koltsterh, @ecs, 
      @berlvhep, @berlvheszk, @mfee, @koltscostcent, @penzeredvh, 
      @penzeredkulso, @arfegyenleg, @rendkered, @letszam, 
      @bérelt_munkaerő, @bérelt_munkaerők) 
+3

我不知道你對問題的解釋和樣本數據與代碼有關。沒有任何東西可以匹配 –

回答

0

我想你想是這樣的:

insert into table1 (uniqueID, ID2, ID3, Number1, Number2) 
    select stuff(uniqueID, 1, 1, '9') 
      t1.ID2, t1.ID3, 
      Number1 * t2.MultiplyBy, t1.Number2 * MultiplyBy 
    from table1 t1 join 
     table2 t2 
     on t1.id2 = t2.id2 and t1.id3 = t2.id3; -- Are both keys needed? 
0

生病做了一個解決方案:

臨時表,從表1和tabl2與加盟轉換第一個字符插入,再乘以數量,並插入回與新的數據原始表

相關問題