我正在尝试从两个表、一个主表和一个事务表中提取记录。
我的Master
表包含我所有的帐户 ID。我的transaction
表有这些帐户运行的任何交易,包含 3 列: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 |
我想我在这里误解了一些基本的东西。任何帮助是极大的赞赏!
提前致谢!