我想從3個表得到2和:總和三個表
tbl_header
id id_quotation description
1 1 descr_1
2 2 descr_2
tbl_body
id id_quotation id_item item_cost
1 1 1 400
2 1 2 300
tbl_money
id id_quotation amount
1 1 200
2 1 300
3 2 100
所以我需要1個查詢來獲取從tbl_head SUM(tbl_body.item_cost) WHERE tbl_body.id_quotation = 1
的說明(在這種情況下,400 + 300 = 700),並SUM(tbl_money.amount) WHERE id_quotation=1
(以這種情況200 + 300 = 500)。 Id_quotation
是所有表中的相同字段。
我做到了與此查詢:
select head.description,
sum(body.item_cost) as sum_1,
(select sum(money.amount)
from tbl_money money
where money.idquotation=head.idquotation
GROUP BY money.id_quotation) as sum_2
FROM tbl_body as body,
tbl_header as head
WHERE head.id_quotation=body.id_quotation
GROUP BY head.description
現在,我想,以消除內部查詢select sum(money.amount) from ...
和東西取代它像SUM(money.amount)
,但我總是得到創紀錄的3倍,因此總和的三倍大。不起作用的查詢是:
SELECT head.description,
Sum(body.item_cost) AS sum_1,
sum(money.amount) as sum_2
FROM (tbl_header head
INNER JOIN tbl_body body
ON head.id_quotation=body.id_quotation)
INNER JOIN tbl_money money
ON head.id_quotation=money.id_quotation
WHERE head.id_person=1
AND money.id_quotation=body.id_quotation
GROUP BY head.description;
謝謝。