基于客户名称的订单总和

Sum of orders Based on Customer Name

我在尝试根据客户的订单总数生成新查询时遇到问题。

我在网上试了好几​​种办法,但好像都解决不了。

我只需要访问来自两个不同 table 的两列 具有客户名称的 tblCustomers 和具有数量

的 tblOrder 行项目

tblCustomer

Customer ID, Customer Name, ... etc .. etc

以及以下内容 tblOrder 行项目

Order Number, Product ID, Quantity,...etc, ...etc

正如您在右侧看到的,总订单应按客户排序。 运行 基于每个客户名称的总和。我通常对大多数 SQL 查询使用表达式生成器。

我尝试过使用 DSUM,但它在特定的 table 上,但是我的客户名称在 tblCustomers 中,而我的订单数量在 tblOrder 行项目中。

另一种使用 运行 求和的方法失败了,没有成功,因为我似乎无法将嵌套的 Select 查询插入到我的原始查询中。

有没有人知道解决这个困境的方法。

//////更新/////

这是Sql代码

SELECT 
    tblCustomers.[Customer Name], 
    [tblOrder Line Item].[Order Number], 
    tblProducts.[Product Description], 
    [tblOrder Line Item].Size, 
    [tblOrder Line Item].Color, 
    tblProducts.Price, 
    [tblOrder Line Item].Quantity,
FROM 
    tblProducts 
INNER JOIN 
    ((tblCustomers INNER JOIN tblOrders ON tblCustomers.[Customer ID] = tblOrders.[Customer ID]) 
INNER JOIN 
    [tblOrder Line Item] ON tblOrders.[Order Number] = [tblOrder Line Item].[Order Number]) ON tblProducts.[Product ID] = [tblOrder Line Item].[Product ID]
GROUP BY 
    tblCustomers.[Customer Name], 
    [tblOrder Line Item].[Order Number], 
    tblProducts.[Product Description], 
    [tblOrder Line Item].Size, 
    [tblOrder Line Item].Color, 
    tblProducts.Price, 
    [tblOrder Line Item].Quantity;

我正在尝试另一个 select 有 2 个内连接。但是我似乎无法将代码插入到上面的 SQL 代码中。

这是我想添加的内部联接

(SELECT [Quantity] 
 FROM [tblOrder Line Item] c,  
 INNER JOIN [tblOrders] o on c.Order Number = o.Order Number 
 INNER JOIN [tblCustomers] a on o.Customer ID = a.Customer ID)

不清楚您的 运行 总和是什么意思,但假设每个客户的订单数量增加时 运行 数量总和。我们可以对 运行 总和使用 Dlookup 或相关子查询。

第一个外键不是主键。您不必删除变量名称中的 space。我只是无法让 sql 与所有内部联接一起工作,并认为 space 可能是问题所在。

使用 qryCustomerOrderLineItems 并使用 Dlookup 获取 运行 总和:


Total: Min(DSum("Quantity","qryCustomerOrderLineItems","OrderNumber<= " & [OrderNumber] & " AND CustomerID= " & [CustomerID]))
'to group by price or size just expand the where clause of the DSUM
'min, max, first, and last are equivalent for grouping 1 number
' in the totals row access changes summary functions like min to expression by moving them inside

您还可以从 qryCustomerLineItems 中获取所有内容,或者对 运行 总和

使用相关的子查询

Total: (SELECT Sum(Quantity) FROM [qryCustomerOrderLineItems] AS q WHERE q.OrderNumber <= [qryCustomerOrderLineItems].[OrderNumber]
AND q.CustomerID=[qryCustomerOrderLineItems].[CustomerID])

两个查询给出相同的结果: