0
我想要total_price_incl_tax中的总额和付款。如果我使用第一个查询,我会从所有选定的列中获取行。这工作正常。但我只想要总计,所以我改变了查询。Mysql对多选的总和
SELECT
total_price_incl_tax,
(SELECT SUM(amount) AS total FROM `invoice_payments` WHERE `invoice_id` = s.id AND invoice_type = 'sales') as paid
FROM sales_invoices AS s
WHERE s.administration_id = 10605
AND `s`.`delete` = '0'
AND `s`.`concept` = '0'
AND `s`.`subscription` = '0'
AND (`total_price_incl_tax` <> (SELECT SUM(`amount`) AS sum FROM `invoice_payments` WHERE `invoice_id` = s.id AND invoice_type = 'sales') OR (SELECT SUM(amount) AS sum FROM `invoice_payments` WHERE `invoice_id` = s.id AND invoice_type = 'sales') IS NULL)
第二个查询的问题是子查询(付费)的总和不正确。这包含最后一行的值,而不是总数。
SELECT
COUNT(*),
SUM(total_price_incl_tax) AS total,
(SELECT SUM(amount) AS total FROM `invoice_payments` WHERE `invoice_id` = s.id AND invoice_type = 'sales') as paid
FROM sales_invoices AS s
WHERE s.administration_id = 10605
AND `s`.`delete` = '0'
AND `s`.`concept` = '0'
AND `s`.`subscription` = '0'
AND (`total_price_incl_tax` <> (SELECT SUM(`amount`) AS sum FROM `invoice_payments` WHERE `invoice_id` = s.id AND invoice_type = 'sales') OR (SELECT SUM(amount) AS sum FROM `invoice_payments` WHERE `invoice_id` = s.id AND invoice_type = 'sales') IS NULL)
任何想法如何解决这个问题?
感谢您的解决方案 – 2014-11-04 14:35:13