Canvas Power Apps中如何正确计算指定InvoiceID的行乘积总和?
解决Canvas Power Apps中SQL Server多记录乘积求和问题
你当前用LookUp函数的问题在于,它只会返回第一条匹配条件的记录,所以内部的Sum只能计算这条单一记录的Quantity*UnitRate,自然得不到所有符合条件记录的总和。
正确的实现方式是结合Filter和Sum函数:
Sum(Filter(InvoiceLines, InvoiceID = ThisItem.InvoiceID), Quantity * UnitRate)
逻辑说明:
Filter(InvoiceLines, InvoiceID = ThisItem.InvoiceID):先从SQL Server的InvoiceLines表中筛选出所有InvoiceID等于当前ThisItem.InvoiceID的记录(也就是所有InvoiceID为1的行)。Sum(..., Quantity * UnitRate):对筛选出来的每一条记录,计算Quantity与UnitRate的乘积,再将所有乘积结果求和。
代入你的数据计算:
- 第一条记录乘积:
2.00 * 217.39 = 434.78 - 第二条记录乘积:
1.00 * 110.00 = 110.00 - 总和:
434.78 + 110.00 = 544.78,正好是你需要的结果。
另外需要确保Quantity和UnitRate字段在SQL Server中是数值类型(比如decimal、float),避免因数据类型不匹配导致计算异常。
内容的提问来源于stack exchange,提问作者Divyesh Jesadiya
相关产品推荐
相关产品推荐

