Вставить в таблицу данные, извлеченные хранимой процедурой

У меня есть хранимая процедура, которая извлекает данные из разных таблиц с помощью объединений.

Вот как это выглядит

ALTER PROCEDURE profinalinstexpensesonid
    (@from varchar(50),
     @to varchar(50),
     @trainer varchar(50),
     @sonvinid varchar(50)
    )          
AS              
BEGIN              
    SELECT
        instructoreexpense.sonvinid,
        CONVERT(VARCHAR, sonvininsert.date, 105) AS date,
        sonvininsert.brandname,              
        SUBSTRING(sonvininsert.zone, 1, 1) AS zone,              
        sonvininsert.location,              
        sonvininsert.area,              
        companysonvinunitvenue.venuename,            
        sonvininsert.venue,              
        sonvininsert.instructore,              
        sonvininsert.trainingno,              
        instructoreexpense.amount,              
        finalinstructoreexpense.amount AS amount1,              
        finalinstructoreexpense.utno,              
        finalinstructoreexpense.paymentid,              
        CONVERT(VARCHAR, finalinstructoreexpense.issuedate, 105) AS issuedate
    FROM
        instructoreexpense               
    LEFT OUTER JOIN   
        sonvininsert ON sonvininsert.sonvinid = instructoreexpense.sonvinid
                     AND sonvininsert.status = '0'                
    LEFT OUTER JOIN
        finalinstructoreexpense ON finalinstructoreexpense.sonvinid = instructoreexpense.sonvinid                
    LEFT OUTER JOIN
        companysonvinunitvenue ON companysonvinunitvenue.id = sonvininsert.comsonvinid                         
    WHERE
        sonvininsert.date BETWEEN CONVERT(DATETIME, @from, 105)  
                              AND CONVERT(datetime, @to, 105)     
        AND sonvininsert.trainer = (SELET empname 
                                    FROM trainerdetails 
                                    WHERE trid = @trainer)
        AND instructoreexpense.sonvinid NOT IN (SELECT CAST(Item AS INTEGER)
                                                FROM SplitString(@sonvinid, ','))
    ORDER BY
        instructoreexpense.sonvinid
END 

Как вы можете видеть, эта процедура извлекает несколько столбцов из разных таблиц, теперь в конце этой хранимой процедуры я хочу вставить все данные, которые извлекаются в таблицу 2 invoice,

Что мне нужно сделать здесь?

Я просто хочу вставить данные, извлеченные этой хранимой процедурой, в другую таблицу, и я хочу сделать это в самой хранимой процедуре.

Я надеюсь, что смогу тебя понять

2 ответа

Вы можете просто положить insert into перед выбором:

INSERT INTO invoice (<Columns list>)
SELECT ....
INSERT INTO invoice (<<column list>>)
EXEC profinalinstexpensesonid @from=..., @to=...

Помните, что порядок списка столбцов, указанный для таблицы счетов-фактур, должен совпадать с выводом запроса.

Проверьте эту ссылку https://msdn.microsoft.com/en-us/library/ms174335.aspx

Другие вопросы по тегам