0

2つのテーブル(IncomingDocs)と( )があり、それぞれに(datatype )と(datatype )OutgoingDocsというフィールドがあります。それぞれが1つのテーブルに複数ある場合があります。 SubmitDateDatetimeDepositNoIntDeposotNoSubmitdate

    For example;



_IncomingDocs table_

**DepositNo**  |  **SubmitDate**  

    1  |  10/3/2012 12:00:00 AM  
    1  |  12/3/2012 12:00:00 AM  
    2  |  10/3/2012 12:00:00 AM  
    3  |  10/3/2012 12:00:00 AM  
    3  |  13/3/2012 12:00:00 AM  
    4  |  20/3/2012 12:00:00 AM  

_OutgoingDocs table_

**DepositNo**  |  **SubmitDate**  

    1  |  11/3/2012 12:00:00 AM  
    2  |  15/3/2012 12:00:00 AM  
    3  |  12/3/2012 12:00:00 AM  
    3  |  14/3/2012 12:00:00 AM  
    4  |  19/3/2012 12:00:00 AM  

    SELECT DepositNo, SubmitDate  
    FROM IncomingDocs AS i, OutgoingDocs as o  
    WHERE DepositNo = 1  
    ORDER BY SubmitDate  

* The output of the query should be:

_Output table_

**DepositNo**  |  **SubmitDate**  
1  |  10/3/2012 12:00:00 AM  << From IncomingDocs table  
1  |  11/3/2012 12:00:00 AM  << From OutgoingDocs table  
1  |  12/3/2012 12:00:00 AM  << From IncomingDocs table 

出力を特定のDepositNo(WHERE句で指定)のレコードにし、Submitdateで並べ替えます。

4

2 に答える 2

3

--各テーブルの両方の行を保持する必要がある場合は、「UNIONALL」が必要になります-たまたま重複している

SELECT DepositNo, SubmitDate  
FROM (  
     SELECT DepositNo, SubmitDate  
     FROM OutgoingDocs  
     WHERE DepositNo = 1 --Or a variable @MyDepositNo  
     UNION ALL --this will preserve duplicate rows if there are any between the two tables  
     SELECT DepositNo, SubmitDate  
     FROM IncomingDocs  
     WHERE DepositNo = 1 --as above  
) TT  
ORDER BY TT.SubmitDate  
于 2012-11-25T10:54:33.707 に答える
3

SQLサーバーがユニオンをサポートしているかどうかはわかりませんが、このようなものです

Select DepositNo, SubmitDate from IncomingDocs where DepositNo = X
UNION
Select DepositNo, SubmitDate from OutgoingDocs where DepositNo = X
ORDER BY SubmitDate

おそらく動作するはずです。

于 2012-11-25T09:57:59.093 に答える