2017-02-09 71 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与加盟转换第一个字符插入,再乘以数量,并插入回与新的数据原始表

相关问题