2017-02-09 16 views
0

Я хотел бы скопировать строку в одну и ту же таблицу и изменить первый номер ячейки скопированной строки (например, от 1 до 9) и умножить значения другие ячейки со значением из другой таблицы.SQL Server: скопируйте строку и замените первый столбец первым символом и несколькими другими столбцами из другой таблицы

Таблица1:

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

Table2:

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

Ill сделал решение:

временную таблицу, вставленный из table1 и tabl2 с присоединиться преобразованный первый символ и умножить число и вставить обратно с новыми данными в исходную таблицу

 Смежные вопросы

  • Нет связанных вопросов^_^