2つのテーブルがあります。1つはInvoiceHeaderで、もう1つはInvoiceDetailsです。InvoiceHeaderにtotalというフィールドがあり、InvoiceDetailsテーブルからそのInvoiceIDに関連付けられているすべてのコストを計算します。
これを行うための最も簡単な方法は何ですか?
私はAccessにも取り組んでいます。ご不明な点がございましたらお問い合わせください。
2つのテーブルがあります。1つはInvoiceHeaderで、もう1つはInvoiceDetailsです。InvoiceHeaderにtotalというフィールドがあり、InvoiceDetailsテーブルからそのInvoiceIDに関連付けられているすべてのコストを計算します。
これを行うための最も簡単な方法は何ですか?
私はAccessにも取り組んでいます。ご不明な点がございましたらお問い合わせください。
コスト値がで指定された数値フィールドに格納され、両方のテーブルの数値フィールドでもあるcost
と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;
テーブルがこれら2つのアプローチの速度の違いに気付くのに十分な大きさである場合、2番目のアプローチの方が速いと思います。どちらを選択しても、のインデックスから大きなメリットが得られますInvoiceDetails.InvoiceID
。