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