マスターテーブルとトランザクションテーブルの2つのテーブルからレコードをプルしようとしています。
テーブルにはすべてのMaster
アカウントIDが含まれています。私のテーブルには、、、、およびの3つのtransaction
列を持つこれらのアカウントによって実行されるトランザクションがあります。activity date
income
charge type
表ではtransaction
、これらのアカウントの一部は、特定の日付範囲内にトランザクションを実行していないため、まったく表示されない場合があります。ただし、これらのアカウントをクエリしたときに結果リストに表示するには、これらのアカウントが必要です。
したがって、私のデータは次のようになります。
Master Table: Transaction Table:
| AccountID | | AccountID | ChargeType | ActivityDate| Income |
-------------- -------------------------------------------------
| 1 | | 2 | 2000 | 8/31/2012 | $99.00 |
| 2 | | 3 | 2000 | 7/31/2012 | $79.00 |
| 3 | | 5 | 2000 | 9/30/2012 | $79.00 |
| 4 |
| 5 |
私のクエリは現在次のようになっています:
select
a.AccountID,
b.ChargeType,
b.ActivityDate,
b.Income
From
MasterTable as A
left join
TransactionTable as B on a.AccountID = b.AccountID
where
a.AccountID in ('1','2','3','4','5')
and
b.ActivityDate between '5/1/2012' and '11/30/2012'
私が理解していることから、このクエリは、選択した5つのアカウントすべてを一覧表示NULL
し、に見つからないアカウントの値を表示する必要がありますTransactionTable
。
私が期待する結果:
| AccountID | ChargeType | ActivityDate| Income |
-------------------------------------------------
| 1 | NULL | NULL | NULL |
| 2 | 2000 | 8/31/2012 | $99.00 |
| 3 | 2000 | 7/31/2012 | $79.00 |
| 4 | NULL | NULL | NULL |
| 5 | 2000 | 9/30/2012 | $79.00 |
代わりに私が受け取る間違った結果:
| AccountID | ChargeType | ActivityDate| Income |
-------------------------------------------------
| 2 | 2000 | 8/31/2012 | $99.00 |
| 3 | 2000 | 7/31/2012 | $79.00 |
| 5 | 2000 | 9/30/2012 | $79.00 |
私はここで何か基本的なことを誤解していると思います。どんな助けでも大歓迎です!
前もって感謝します!