我有2个程序,其中一个返回以下内容:
month | amount
---------------
1 | 12
2 | 14
依此类推,直到第12个月,
其他程序每个月返回不同的值,但仍包含相同的月份:
month | amount
---------------
1 | 44321
2 | 1522
我想合并它们两者看起来像这样:
month | amount1 | amount2
-------------------------
1 | 12 | 44321
2 | 14 | 1522
依旧......
如何创建可以合并这两个存储过程的存储过程?
答案 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
如果您确实有访问权限,则编写组合查询或将过程重写为表值函数可能更有效,这些函数可以直接组合。