如何组合两个存储过程

时间:2014-10-11 05:37:16

标签: sql sql-server stored-procedures

我正在使用存储过程来获取结果。

我的要求是将两个sp结果合并到一个表中。

第一个存储过程是:

EXEC spDisplayBankConsolidate 'pname',@yr=2013 

返回这些结果:

Bankcode        Amt
Cash        13867.00
Csb         21598.50
Fd         700990.00

第二个存储过程调用如下:

EXEC spDisplayBankConsolidate 'pname', @yr=2013, @equal='Eq'` 

结果:

Bankcode        Amt
Cash        13867.00
Csb          5598.50
Fd        1138049.00

我的要求是将结果组合如下

Bankcode    Opening        Closing
Cash         13867.00        13867.00
Csb          21598.50         5598.50
Fd          700990.00      1138049.00

1 个答案:

答案 0 :(得分:2)

创建两个临时表(或表变量),插入其中,然后根据公共字段(Bankcode

加入它们

像这样,我想:

create table #TableOne (BankCode nvarchar, Amt money)
create table #TableTwo (BankCode nvarchar, Amt money)

INSERT INTO #TableOne EXEC spDisplayBankConsolidate 'pname',@yr=2013
INSERT INTO #TableOne EXEC spDisplayBankConsolidate 'pname',@yr=2013,@equal='Eq'

select
    t1.BankCode, 
    t1.Amt as Opening, 
    t2.Amt as Closing
from #TableOne t1
inner join #TableTwo t2 on t1.BankCode = t2.BankCode

我是根据这个问题的答案做出来的:https://social.msdn.microsoft.com/Forums/sqlserver/en-US/d400a970-e0db-4324-9e99-9dfba214a55a/store-output-of-sql-server-exec-into-a-table?forum=transactsql