0

我在我的 VB.NET POS 开发中有一个问题,我自己找不到解决方案。我目前正在使用VS2010MS Access作为我的数据库。

我有两个数据库表,如下所示:

SalesReceipt(#Receipt_ID, Sales_Date, Receipt_Number, Customer_ID, Sales_BDiscount, Sales_ADiscount, Sales_Payment)

Customer(#Customer_ID, Customer_Name, Customer_Contact, Customer_Debt)

注意:BDiscount = 折扣前 / ADiscount = 折扣后

在我的系统中,一个客户可以有多个销售收据。现在我的问题是如何Customer_Debt为客户更新正确的?Customer_Debt我的逻辑是通过循环每一行来更新各个客户的数据,SalesReceipt并通过执行以下操作来计算债务:

totalDebt = totalDebt + (Sales_Payment - Sales_ADiscount)

但我不确定如何确保它只循环并仅为所选客户计算结果。如何在 .NET 中正确实现这一点?

4

2 回答 2

1

如果您想计算totalDebt每个客户,您可以使用查询

SELECT Customer_ID, sum(Sales_Payment - Sales_ADiscount) as totalDebt FROM SalesReceipt
 GROUP BY Customer_ID

结果包含totalDebts按 Customer_ID 聚合,可用于更新Customer(所有循环和计算均由数据库引擎完成)。

查询还可以更复杂地更新,甚至为您进行更新。

于 2013-06-23T21:53:11.100 回答
0

难道您不能在您的 Access 数据库中编写一个查询,对按 CustomerID 分组的 SalesReceipt 表执行您的计算(Sales_Payment - Sales_ADiscount)吗?

于 2013-06-23T21:51:46.990 回答