我有两张桌子。一个是 InvoiceHeader,另一个是 InvoiceDetails。我在 InvoiceHeader 中有一个名为 total 的字段,我想从 InvoiceDetails 表中计算与该 InvoiceID 关联的所有成本。
我能做的最简单的方法是什么?
我也在研究 Access。如果您有任何问题,请询问。
我有两张桌子。一个是 InvoiceHeader,另一个是 InvoiceDetails。我在 InvoiceHeader 中有一个名为 total 的字段,我想从 InvoiceDetails 表中计算与该 InvoiceID 关联的所有成本。
我能做的最简单的方法是什么?
我也在研究 Access。如果您有任何问题,请询问。
假设成本值存储在名为cost
in的数字字段中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
.