查询 1:
SELECT SUM(total) AS total, company, id
FROM
(SELECT invoicereferencenumber AS ref, invoiceamount AS total, companyname AS company, customer.customerid AS id FROM customer, rental_invoice AS r WHERE customer.customerid=r.customerid
UNION
SELECT invoicereferencenumber AS ref, invoiceamount AS total, companyname AS company, customer.customerid AS id FROM customer, sale_invoice AS s WHERE customer.customerid=s.customerid
UNION
SELECT invoicereferencenumber AS ref, invoiceamount AS total, companyname AS company, customer.customerid AS id FROM customer, service_invoice AS se WHERE customer.customerid=se.customerid)
AS tmptotal
GROUP BY id
查询 2:
SELECT SUM(paid) AS paid, company, cid
FROM
(SELECT cash_amount AS paid, companyname AS company, customerid AS cid FROM payment_cash AS p, customer AS c WHERE cash_cus_id=customerid
UNION
SELECT cheque_value AS paid, companyname AS company, customerid AS cid FROM payment_cheque AS p, customer AS c WHERE cheque_cus_id=customerid
UNION
SELECT rtgs_value AS pain, companyname AS company, customerid AS cid FROM payment_rtgs AS p, customer AS c WHERE rtgs_cus_id=customerid)
AS tmppaid
GROUP BY cid
我必须将这些结果合并为
----------------------------------------
| total | Paid | company | id |
----------------------------------------
请帮帮我。 提前致谢
最佳答案
好吧,我会首先尝试类似的事情
SELECT TotalQuery.*,
PaidQuery.paid
FROM (
SELECT SUM(total) AS total, company, id
FROM
(SELECT invoicereferencenumber AS ref, invoiceamount AS total, companyname AS company, customer.customerid AS id FROM customer, rental_invoice AS r WHERE customer.customerid=r.customerid
UNION
SELECT invoicereferencenumber AS ref, invoiceamount AS total, companyname AS company, customer.customerid AS id FROM customer, sale_invoice AS s WHERE customer.customerid=s.customerid
UNION
SELECT invoicereferencenumber AS ref, invoiceamount AS total, companyname AS company, customer.customerid AS id FROM customer, service_invoice AS se WHERE customer.customerid=se.customerid)
AS tmptotal
GROUP BY id
) TotalQuery LEFT JOIN
(
SELECT SUM(paid) AS paid, company, cid
FROM
(SELECT cash_amount AS paid, companyname AS company, customerid AS cid FROM payment_cash AS p, customer AS c WHERE cash_cus_id=customerid
UNION
SELECT cheque_value AS paid, companyname AS company, customerid AS cid FROM payment_cheque AS p, customer AS c WHERE cheque_cus_id=customerid
UNION
SELECT rtgs_value AS pain, companyname AS company, customerid AS cid FROM payment_rtgs AS p, customer AS c WHERE rtgs_cus_id=customerid)
AS tmppaid
GROUP BY cid
) PaidQuery ON TotalQuery.id = PadiQuery.id
AND TotalQuery.company = PaidQuery.company
假设您必须有一个总计来反演您已支付的金额,这将返回所有 copany,id 分组的列表及其总计以及在此总计上支付的金额。
关于mysql - 如何合并两个mysql查询结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8612453/