1

我有 2 个程序 p1 和 p2,每个程序的结果格式如下

exec p1----> #col1 #col2
              P-1   52
              P-2   25

EXEC p2----> #col1 #col2
              P-1   20
              P-2   2
              P-3   5

我想在另一个执行这两个过程的过程中调用这些过程,创建一个临时表并插入两个表的结果,如下所示:

#col1 #col2 #col3
P-1    52    20
P-2    25    2
P-3    NULL  5

我是使用临时表的新手,任何帮助将不胜感激。此代码必须在 SQL Server 中运行。问候,

4

1 回答 1

0

我想这就是你想要的。尝试一次它可能对你有帮助

根据您的程序输出,请按照以下查询

create table #tempp (col1 varchar(50),col2 bigint)

insert into #temp
exec p1

create table #tempp1 (col1 varchar(50),col2 bigint)

insert into #tempp1
exec p2

select t1.col1,t.col2,t1.col2 from #tempp t
full join #tempp1 t1 on t.col1=t1.col1

我已经像您的过程输出数据一样创建了示例数据,并在我的数据库中进行了尝试

              select * into #tempp from (
              select 'p-1' as col1,52 col2
              union all
              select 'p-2',25
              ) as a

              select * into #tempp1 from (
              select 'p-1' as col1,20 col2
              union all
              select 'p-2',2
                union all
              select 'p-3',5
              ) as a

select t1.col1,t.col2,t1.col2 from #tempp t
full join #tempp1 t1 on t.col1=t1.col1

你的输出看起来像

+------+------+------+
| col1 | col2 | col2 |
+------+------+------+
| p-1  | 52   |   20 |
| p-2  | 25   |    2 |
| p-3  | NULL |    5 |
+------+------+------+
于 2017-02-14T10:01:01.950 回答