SQL选择客户,有交易和无交易的交易中的项目

安德烈亚斯(Andreas)

我在SQL Server,客户,项目和事务处理中有3个表。表事务中的C_id和I.id是表“客户”和“项目”中的外键。我想要一个特定的日期范围,以查看所有客户的所有项目及其数量,无论有无交易。当物料尚未交易时,数量将为0。

客户(C)

id    |  Name
1     |  C1
2     |  C2
3     |  C3

项目(一)

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
DineshDB

试试这个,希望对您有帮助。

select c.name,i.name,sum(isnull(t.qty,0))
from customers c
cross join Items I 
left join transactions t on t.C_Id = C.Id and I.Id = t.I_Id and t.date between '2/2/2016' and '10/2/2016'
group by c.name,i.name
order by c.name,i.name

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

尝试模拟R中的交易或无交易

来自分类Dev

SQL 中的银行交易

来自分类Dev

MySQL每月获取累积的客户交易(不是SQL交易)

来自分类Dev

焊接和焊接,无交易经理

来自分类Dev

“春季交易”和“休眠交易”有什么区别

来自分类Dev

如何在Slick交易中混合选择和删除

来自分类Dev

如何获取客户的所有交易(Python)

来自分类Dev

在 bigquery 或 sql 中查找已购买客户的比率和来自多个客户的平均交易天数差距

来自分类Dev

SQL Server 2008:CURSOR中的“开始尝试”和“开始交易”

来自分类Dev

使用 sql 从交易细节中获取贷方和借方

来自分类Dev

错误的交易状态(无活动交易,错误的交易类型或正在进行的交易)

来自分类Dev

在asp.net客户中,如何与Paypal进行一笔交易来减少客户交易?

来自分类Dev

JTDS和交易

来自分类Dev

JOOQ和交易

来自分类Dev

芹菜和交易原子

来自分类Dev

匹配/反对和交易

来自分类Dev

服务层和交易

来自分类Dev

Mongo交易和更新

来自分类Dev

交易和余额

来自分类Dev

AMQP 1.0 和交易

来自分类Dev

春季交易,无回滚

来自分类Dev

SQL交易报告/状态

来自分类Dev

在RavenDB中索引愿望和交易清单

来自分类Dev

客户帐户余额如何受到SQL Server中客户交易表的影响?

来自分类Dev

连接交易客户端和交易服务器的最佳方法

来自分类Dev

在BigQuery / SQL中测试交易条目

来自分类Dev

vb.net中的SQL交易语句

来自分类Dev

在Slick交易中拥有自己的东西

来自分类Dev

给定交易中的所有查询