我的VB.NET POS开发中有一个问题,我自己找不到解决方案。我目前正在使用VS2010
和MS 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 =折扣后
在我的系统中,一个客户可以拥有许多SalesReceipt。现在我的问题是如何为客户更新正确的Customer_Debt
?我的逻辑是通过循环Customer_Debt
中的每一行来更新相应客户的SalesReceipt
并通过执行以下操作来计算债务:
totalDebt = totalDebt + (Sales_Payment - Sales_ADiscount)
但我不确定如何确保它仅循环并仅计算所选客户的结果。我怎样才能在.NET中正确实现这一点?
答案 0 :(得分:1)
如果您想为每位客户计算totalDebt
,可以使用查询
SELECT Customer_ID, sum(Sales_Payment - Sales_ADiscount) as totalDebt FROM SalesReceipt
GROUP BY Customer_ID
结果包含由Customer_ID聚合的totalDebts
,可用于更新Customer
(所有循环和计算均由数据库引擎完成)。
查询也可以更新更复杂,甚至可以为您更新。
答案 1 :(得分:0)
难道你不能在Access数据库中编写一个查询,在按CustomerID分组的SalesReceipt表上执行计算(Sales_Payment - Sales_ADiscount)吗?