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)
아무리 생각해도 될까요?
감사합니다 –