InvoiceDetails
에서 cost
라는 숫자 필드에 저장되고, 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
에 큰 도움이됩니다.
그 덕분에 완벽했습니다. 감사합니다 – Niall2k12
아직 데이터베이스를 만들지 않았습니다. 몇 가지 샘플 데이터를 사용하고 필요한 쿼리를 파악하고 있습니다. 그것은 단지 대학 프로젝트이므로 아주 작은 데이터베이스 일 것입니다. 개인적으로 나는 당신이 준 두 번째 해결책이 마음에 든다. 그것은 내가 갈 일이다. 고려해보기 전에 그런 식으로 본 적이 한번도 본 적이 없어요. 모든 도움에 감사드립니다. – Niall2k12