合并2存储过程列类似于加入

时间:2014-08-17 17:41:54

标签: sql sql-server stored-procedures

我有2个程序,其中一个返回以下内容:

month | amount
---------------    
1     | 12
2     | 14

依此类推,直到第12个月,

其他程序每个月返回不同的值,但仍包含相同的月份:

month | amount
---------------    
1     | 44321
2     | 1522

我想合并它们两者看起来像这样:

month | amount1 | amount2
-------------------------
1     | 12      | 44321
2     | 14      | 1522

依旧......

如何创建可以合并这两个存储过程的存储过程?

1 个答案:

答案 0 :(得分:1)

如果您无权访问存储过程源,则一种方法是使用insert ... exec

create proc merged_procs as

create table #t1 (month, amount)
create table #t2 (month, amount)

insert into #t1 exec sp1
insert into #t2 exec sp2

select
    t1.month,
    t1.amount amount1,
    t2.amount amount2
from
    #t1 t1
        inner join
    #t2 t2
        on t1.month = t2.month
order by
    t1.month

如果您确实有访问权限,则编写组合查询或将过程重写为表值函数可能更有效,这些函数可以直接组合。