【发布时间】:2016-06-21 19:11:44
【问题描述】:
我在 SQL Server、Customers、Items 和 Transactions 中有 3 个表。表 Transactions 中的 C_id 和 I.id 是表 Customers 和 Items 的外键。我想要一个特定的日期范围来查看所有客户,所有带有数量的物品,无论是否有交易。商品未成交时,数量为0。
客户 (C)
id | Name
1 | C1
2 | C2
3 | C3
物品 (I)
id | Name
1 | I1
2 | I2
3 | I3
4 | I4
交易
id | C_id | I_id | qty | date
1 | C1 | I1 | 10 | 2/2/2016
2 | C2 | I3 | 5 | 3/2/2016
3 | C1 | I2 | 3 | 3/2/2016
4 | C2 | I1 | 8 | 4/2/2016
5 | C1 | I1 | 2 | 5/2/2016
6 | C1 | I2 | 4 | 5/2/2016
7 | C2 | I1 | 2 | 6/2/2016
8 | C1 | I1 | 100 | 1/3/2016
9 | C2 | I2 | 200 | 2/3/2016
我想要的 2/2/2016 和 10/2/2016 之间的数据范围的结果是:
C | I | qty
C1 | I1 | 12
C1 | I2 | 7
C1 | I3 | 0
C1 | I4 | 0
C2 | I1 | 10
C2 | I2 | 0
C2 | I3 | 5
C2 | I4 | 0
C3 | I1 | 0
C3 | I2 | 0
C3 | I3 | 0
C4 | I4 | 0
【问题讨论】:
-
交叉连接、左连接、分组方式
标签: sql-server