2014-10-11 2 views
0

저장 프로 시저를 사용하여 결과를 얻습니다.두 저장 프로 시저를 결합하는 방법

내 요구 사항은 두 개의 결과를 하나의 테이블로 결합하는 것입니다.

먼저 저장 프로 시저는 다음과 같습니다

EXEC spDisplayBankConsolidate 'pname',@yr=2013 

이러한 결과를 반환 :

Bankcode  Amt 
Cash  13867.00 
Csb   21598.50 
Fd   700990.00 

두 번째 저장 프로 시저를 다음과 같이 호출됩니다

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

결과 :

01,231,767,744,844,931,815을 047,023,210

내 요구 사항은

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

어떤 유형의 SQL을 사용하고 있습니까? MySQL은? SQL Server? – Jeff

+0

@Jeff SQL Server –

+3

결과를 tmp 테이블에 삽입 한 다음 조인하십시오. –

답변

1

공통 필드를 기준으로 다음, 그 삽입, 두 개의 임시 테이블 (또는 테이블 변수를) 생성을 조인 다음과 같이 결과를 결합하는 것입니다 (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

,
+0

이 오류가 발생했습니다 메시지 8152, 수준 16, 상태 13, 프로 시저 spDisplayBankConsolidate, 줄 6 문자열 또는 이진 데이터가 잘립니다. –

+0

오오 그렇습니다. 원본 열에 따라 더 큰'nvarchar '를 지정해야합니다. 내 말은,'(BankCode nvarchar (max) ... '는 작동 하겠지만, 아마도 제대로 되길 원할 것입니다. – Jeff

+0

감사합니다. –

관련 문제