Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MYSQL子查询还是左连接?_Mysql_Subquery_Left Join - Fatal编程技术网

MYSQL子查询还是左连接?

MYSQL子查询还是左连接?,mysql,subquery,left-join,Mysql,Subquery,Left Join,我正在做一个小的发票申请,我被困在一个查询,以获得我的发票的总未结金额 一点解释: 我在数据库中有两个表,发票和付款在发票id列上有关联。一张发票可以有多笔付款 我想得到的是所有发票的总未结金额 SELECT COUNT( * ) AS count, SUM( invoice_amount_total ) AS total, (SELECT SUM( amount ) AS total FROM `invoice_payments` WHERE `invoice

我正在做一个小的发票申请,我被困在一个查询,以获得我的发票的总未结金额

一点解释:

我在数据库中有两个表,发票和付款在发票id列上有关联。一张发票可以有多笔付款

我想得到的是所有发票的总未结金额

SELECT
  COUNT( * ) AS count,
  SUM( invoice_amount_total ) AS total,
  (SELECT
     SUM( amount ) AS total
   FROM `invoice_payments`
   WHERE `invoice_id` = s.id) AS total_paid
FROM sales_invoices AS s
WHERE s.administration_id = 3
    AND (`invoice_amount_total` <> (SELECT
                      SUM( `amount` ) AS sum
                    FROM `invoice_payments`
                    WHERE `invoice_id` = s.id)
      OR (SELECT
        SUM( amount ) AS sum
          FROM `invoice_payments`
          WHERE `invoice_id` = s.id)IS NULL)
这是我试过的,但不起作用

支付的总金额不正确,它是最后一张发票的总和,而不是所有发票的总和

SELECT
  COUNT( * ) AS count,
  SUM( invoice_amount_total ) AS total,
  (SELECT
     SUM( amount ) AS total
   FROM `invoice_payments`
   WHERE `invoice_id` = s.id) AS total_paid
FROM sales_invoices AS s
WHERE s.administration_id = 3
    AND (`invoice_amount_total` <> (SELECT
                      SUM( `amount` ) AS sum
                    FROM `invoice_payments`
                    WHERE `invoice_id` = s.id)
      OR (SELECT
        SUM( amount ) AS sum
          FROM `invoice_payments`
          WHERE `invoice_id` = s.id)IS NULL)

有什么想法吗?

样本数据和期望的输出在哪里?什么意思,但它不起作用?是否有错误或只是没有输出/不是所需的输出?对不起,输出不正确。支付的总金额不正确,它是最后一张发票的总和,而不是所有发票的总和。