我有两张桌子。一个是 InvoiceHeader,另一个是 InvoiceDetails。我在 InvoiceHeader 中有一个名为 total 的字段,我想从 InvoiceDetails 表中计算与该 InvoiceID 关联的所有成本。
我能做的最简单的方法是什么?
我也在研究 Access。如果您有任何问题,请询问。
我有两张桌子。一个是 InvoiceHeader,另一个是 InvoiceDetails。我在 InvoiceHeader 中有一个名为 total 的字段,我想从 InvoiceDetails 表中计算与该 InvoiceID 关联的所有成本。
我能做的最简单的方法是什么?
我也在研究 Access。如果您有任何问题,请询问。
假设成本值存储在名为costin的数字字段中InvoiceDetails,并且InvoiceID也是两个表中的数字字段...
SELECT
ih.*,
DSum("cost", "InvoiceDetails", "InvoiceID = " & ih.InvoiceID)
As total_cost
FROM InvoiceHeader AS ih;
或者您可以使用聚合查询来计算每个的总数InvoiceID并将其连接到InvoiceHeader.
SELECT ih.*, sub.total_cost
FROM
InvoiceHeader AS ih
INNER JOIN
(
SELECT InvoiceID, Sum(cost) AS total_cost
FROM InvoiceDetails
GROUP BY InvoiceID
) AS sub
ON ih.InvoiceID = sub.InvoiceID;
如果您的表足够大,可以注意到这两种方法之间的速度差异,我猜第二种方法会更快。无论您选择哪一个,都会极大地受益于InvoiceDetails.InvoiceID.