我有一个记录集,其中 TaxCode 列可以采用十几个不同的值。我想为每个 TaxCode 值计算 TaxableAmount 字段的总和,而无需提前知道我有哪些 TaxCode 值。
税号 | 应税金额 |
---|---|
22 | 100 |
22 | 150 |
63 | 250 |
22 | 60 |
从这个例子中,我想获得这些总数:
税号 | 应税金额 |
---|---|
22 | 310 |
63 | 250 |
我该怎么做?
我已经尝试过
Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("SELECT TaxCode, TaxableAmount FROM dbo_MA_SaleDocDetail WHERE SaleDocID = " & SaleDocId)
rs.MoveLast
rs.MoveFirst
Do While Not rs.EOF
For Each Field In .Fields
if...?
Loop
非常感谢。
这才是你真正应该在 SQL 中完成的事情,而不是在 VBA 中。这是最简单的分组聚合查询之一:
SELECT TaxCode, SUM(TaxableAmount)
FROM dbo_MA_SaleDocDetail
GROUP BY TaxCode
您可以将其与 VBA 结合起来:
Set rs = CurrentDb.OpenRecordset("SELECT TaxCode, SUM(TaxableAmount) FROM dbo_MA_SaleDocDetail WHERE SaleDocID = " & SaleDocId & " GROUP BY TaxCode")
虽然你真的应该使用参数化查询