2017-01-18 3 views
0

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

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

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.

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

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

Я надеюсь, что я в состоянии сделать вас понять

+0

Вы пробовали 'ВСТАВИТЬ EXEC'? – DVT

+0

Как я могу это сделать –

ответ

0

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

INSERT INTO invoice (<Columns list>) 
SELECT .... 
+0

Неправильный синтаксис рядом с ключевым словом «выбрать». –

+0

Можете ли вы сказать мне, как я могу это сделать ??? –

+0

INSERT INTO ... SELECT должно быть хорошо. Я не знаю, какая у вас синтаксическая ошибка, так как я не знаю, какой синтаксис вы попробовали. вы должны заменить '<список столбцов>' на список столбцов в вашей таблице и 'SELECT ....' с помощью вашего оператора select select .... – ATC

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

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

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

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