-5

私は2つのテーブルを持っています:

デポジット

accountNumber    balance    addDate
0000102          5000       21/01/2013
0000105          5500       21/01/2013
0010024          9800       21/01/2013
0000102          2500       22/01/2013
0000105          9000       22/01/2013
.......          ....       ../../....   //rest of the records

撤退

accountNumber    balance    addDate
0000102          2500       20/01/2013
0010024          5000       20/01/2013
0000105          1500       20/01/2013
.......          ....       ../../....  //rest of the records

ここで、これら 2 つのテーブルの結果を次のように表示する必要があります。

詳細

date          withdrawal   deposite
20/01/2013    2500
21/01/2013                 5000
22/01/2013                 2500

特定のaccountNumber=0000102およびorder by addDate.

私はデータベースの初心者です。

4

2 に答える 2

2

UNION ALL基本的に、結果に重複を保持するには、ここで使用する必要があります。

SELECT addDate AS date, balance
FROM
    (
        SELECT  accountNumber, balance, addDate FROM deposit
        UNION ALL
        SELECT  accountNumber, balance, addDate FROM withdrawal
    ) s
WHERE   accountNumber = '0000102'
ORDER   BY date
于 2013-01-26T07:41:34.673 に答える
1

または、コメントで要求されたように列をエイリアス化するためのJWの回答に小さな変更を加えます。

SELECT addDate AS date, w as withdrawal, d as deposit
    FROM
        (
            SELECT  accountNumber, '' as w, balance as d, addDate FROM deposit
            UNION ALL
            SELECT  accountNumber, balance as w, '' as d, addDate FROM withdrawal
        ) s
    WHERE   accountNumber = '0000102'
    ORDER   BY date
于 2013-01-27T09:27:55.077 に答える