【问题标题】:SQL Server : Copy row and replace first column first char and multipley other column from another tableSQL Server:复制行并替换第一列第一个字符并从另一个表中替换其他列
【发布时间】:2017-02-09 11:54:25
【问题描述】:

我想在同一个表中复制一行,并更改复制行的第一个单元格编号(如 1 到 9),并将其他单元格的值与另一个表中的值相乘。

表 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)

【问题讨论】:

  • 我不知道您对问题的解释和示例数据与代码有什么关系。似乎没有任何匹配项。

标签: sql-server tsql insert set


【解决方案1】:

我想你想要这样的东西:

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?

【讨论】:

    【解决方案2】:

    我想了个办法:

    从 table1 和 tabl2 插入的临时表转换为第一个字符并将数字相乘,然后将新数据插入到原始表中

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-10-12
      • 2021-04-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-04
      • 2013-05-05
      相关资源
      最近更新 更多