2014-09-15 1 views
0

세 개의 테이블 (DocIncome, DocOutgoing 및 Financial)이있는 레코드를 나타내는 열에 값 추가 각 레코드는 특정 ID와 발생 날짜를가집니다.테이블 + sql

DepositNo| ID | Date 
    7081 | 7081 | 2006-10-28 00:00:00.000 
    7081 | 21121 | 2006-10-28 00:00:00.000 
    7081 | 21122 | 2006-11-21 00:00:00.000 
    7081 | 21880 | 2008-03-16 16:41:27.000 
    7081 | 23674 | 2008-10-14 11:13:58.000 

:

나는이 분야의 전문가 아니에요하지만 난 하나 개의 출력에 필요한 모든 정보를 가져 오는 쿼리를 작성했습니다

SELECT  [DepositNo],[ID], [Submitdate] 
    FROM   [Doc_Income] 
    WHERE  (DepositNo = 7081) 

    UNION 

    SELECT  [DepositNo],[ID], [TransferDate] 
    FROM   [Doc_Outgoing] 
    WHERE  (DepositNo = 7081) 

    UNION 

    SELECT   [Tansactions_Details].[DepositNo], [Transactions_Deposits].[ID], [Transactions_Deposits].[TransDate] 
    FROM  [Tansactions_Details], [Transactions_Deposits] 
    WHERE  [DepositNo]=7081 AND ([Tansactions_Details].[Ref_TransactionID] = [Transactions_Deposits].[ID]) 

    ORDER BY Submitdate 

이의이 말을하자 출력입니다 하지만 어떻게 표시 할 수 있습니까? 1 번 레코드가 소득 테이블에 있습니까? 왜냐하면 코드에 그 정보가 필요하기 때문입니다.

감사합니다.

답변

0

이 같은 열을 리터럴 문자열을주고 이름을 지정하여 출력에 자신의 열을 추가 할 수 있습니다

SELECT  [DepositNo],[ID], [Submitdate], 'DocIncome' AS TableName 
FROM   [Doc_Income] 
WHERE  (DepositNo = 7081) 

UNION 

SELECT  [DepositNo],[ID], [TransferDate], 'DocOutgoing' AS TableName 
FROM   [Doc_Outgoing] 
WHERE  (DepositNo = 7081) 

UNION 

SELECT   [Tansactions_Details].[DepositNo], [Transactions_Deposits].[ID], [Transactions_Deposits].[TransDate], 'Doc_Income' AS TableName 
FROM  [Tansactions_Details], [Financial] 
WHERE  [DepositNo]=7081 AND ([Tansactions_Details].[Ref_TransactionID] = [Transactions_Deposits].[ID]) 

ORDER BY Submitdate 
0

이 열을 추가

SELECT Col1, Col2, 'SomeText' AS MyColumn 
FROM MyTable 

이이 같은 쿼리 모습한다 테이블 이름을 유니온 쿼리에 넣을 문자열을 넣는다.

SELECT  [DepositNo],[ID], [Submitdate], 'INCOME_TABLE' as TableName 
    FROM   [Doc_Income] 
    WHERE  (DepositNo = 7081)