MYSQL 加入的列的总和 table

MYSQL SUM of columns in joined table

我正在尝试执行以下查询:

    SELECT
(
    SELECT 
    COUNT(*)
    FROM
    pl_invoices
    JOIN
    pl_invoice_articles
    ON
    pl_invoices.invoice_id = pl_invoice_articles.invoice_article_invoice_id
    WHERE
    pl_invoices.invoice_amount_paid = SUM(pl_invoice_articles.invoice_article_price)
) as 'Aantal Betaald'

所以:我需要知道支付了多少发票,但唯一知道的方法是计算所有发票项目的总和并将其与支付的总金额进行比较。

此查询无效,我不知道自己做错了什么。有没有人可以帮助我?

非常感谢!

使用 having 子句代替 where

SELECT cnt as 'Aantal Betaald' from (
    SELECT COUNT(*) AS CNT, invoice_amount_paid  FROM  pl_invoices pl JOIN pl_invoice_articles pla
    ON     pl.invoice_id = pla.invoice_article_invoice_id
    having     pl.invoice_amount_paid = SUM(pla.invoice_article_price)
) tt  ;

一个解决方案是对该查询计算总和:

select
  invoice_article_invoice_id,
  SUM(invoice_article_price) as tot
from
  pl_invoice_articles
group by
  invoice_article_invoice_id

并将其作为子查询加入 pl_invoices table:

select count(*)
from
  pl_invoices inner join (
    select
      invoice_article_invoice_id,
      SUM(invoice_article_price) as tot
    from
      pl_invoice_articles
    group by
      invoice_article_invoice_id
  ) s on pl_invoices.invoice_id = s.invoice_article_invoice_id
where
  pl_invoices.invoice_amount_paid = s.tot