我刚刚开始使用SQL,我一直在玩简单的选择查询和分组数据,现在我想从我们的数据库中提取一些实际有用的数据进行分析。数据组织如下:
访问2010数据库 我没有设置它,我知道它没有设置,因为它应该是
我无法更改数据,只能轮询
- 客户保存在一个表中
- 已关闭的订单保存在另一个表中(每个行项目都列有发票号,日期已关闭,客户ID以及其他信息)
-Archived关闭订单表保留一年+旧的销售记录(表格与封闭订单表格完全相同)
我想从一个简单的查询开始,列出某个分支机构的所有客户及其过去一年的总数。以下是我的尝试:
SELECT CUSTOMERS.Company, CUSTOMERS.[Ship City], (SELECT SUM (CLOSEDORDERS.Quant*CLOSEDORDERS.SellPrice) FROM CLOSEDORDERS WHERE CUSTOMERS.ID = CLOSEDORDERS.CustID) AS LifeTotal
FROM CUSTOMERS, CLOSEDORDERS
WHERE CUSTOMERS.Branch=33;
当我运行查询时,它要求我输入CLOSEDORDERS.Quant的参数值。我做错了什么?
答案 0 :(得分:1)
我认为这是您正在寻找的OUTER JOIN
:
SELECT CUSTOMERS.Company,
CUSTOMERS.[Ship City],
SUM(CLOSEDORDERS.Quant*CLOSEDORDERS.SellPrice) AS LifeTotal
FROM CUSTOMERS
LEFT JOIN CLOSEDORDERS ON CUSTOMERS.ID = CLOSEDORDERS.CustID
WHERE CUSTOMERS.Branch=33
GROUP BY CUSTOMERS.Company,
CUSTOMERS.[Ship City]
如果您只想从两个表中返回匹配结果,请使用标准INNER JOIN
代替LEFT JOIN
。