【问题标题】:Summing Sales Data Access汇总销售数据访问
【发布时间】:2014-05-21 21:41:31
【问题描述】:

我刚开始使用 SQL,我一直在玩简单的选择查询和分组数据,现在我想从我们的数据库中提取一些实际有用的数据进行分析。数据组织如下:

Access 2010 数据库 我没有设置它,我知道它不是应该设置的

我不能更改数据,只能轮询

-客户都在一张桌子上

-关闭的订单保存在另一个表中(每个行项目都列出了发票编号、关闭日期、客户 ID 以及其他信息)

-归档的已关闭订单表保留一年以上的销售记录(表的布局与已关闭订单表完全相同)

我想从一个简单的查询开始,列出某个分支机构的所有客户及其过去一年的总数。这是我尝试过的:

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 的参数值。我做错了什么?

【问题讨论】:

  • 可能是字段名拼错了?
  • 你是对的,我打开了表格,它显示“CustID”和“Quant”,但是当我打开它以便看到字段的值时,它们实际上被称为“Quantity”和“客户 ID”。为什么表格会这样截断名称?

标签: sql ms-access


【解决方案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

【讨论】:

  • 在将参考链接修复到正确的列名之后(见上面的评论),这个工作很漂亮。谢谢!
  • 我可以问一个敲门的问题吗?如果我想将包括存档的已关闭订单在内的实际生命周期总计相加怎么办?该表称为 ARCHIVEDCLOSEDSALES,列的设置与 CLOSEDORDERS 表一样。
  • @user206457 。 . .如果这回答了您的问题,那么您应该接受答案。
猜你喜欢
  • 1970-01-01
  • 2010-11-12
  • 2021-06-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-21
  • 1970-01-01
相关资源
最近更新 更多