mysql 为以下案例查找客户

mysql find the customers for the following case

我有一个 table 如下所示:

我需要满足以下条件的客户

一个。谁下订单并付清了所有款项。即,customer_id:34、42、70

b。谁下了订单但没有付款。即,customer_id:57、80

c。谁下了订单但没有支付其中一些。即,customer_id:45、62、65

注:invoice_no:0表示订单未支付。

需要专家的建议。 谢谢

案例A

SELECT customer_id 
FROM customers 
GROUP BY customer_id
HAVING MIN(invoice_no) > 0

案例 B

SELECT customer_id 
FROM customers 
GROUP BY customer_id
HAVING MAX(invoice_no) = 0

案例 C

SELECT customer_id
FROM customers 
GROUP BY customer_id
HAVING MIN(invoice_no) = 0 AND MAX(invoice_no) > 0

你可以试试这个

案例A

   SELECT  customers.* FROM customers  INNER JOIN (  SELECT customer_id , MIN(invoice_no) minInvoice ,MAX(invoice_no) maxinvoice FROM customers  GROUP BY  customer_id ) c
     ON c.customer_id  = customers.customer_id AND c.minInvoice > 0

案例 B

SELECT customers .* FROM  customers  INNER JOIN (  SELECT customer_id , MIN(invoice_no) minInvoice ,MAX(invoice_no) maxinvoice FROM  customers  GROUP BY  customer_id) c
    ON c.customer_id  = customers.customer_id AND c.minInvoice = 0 AND c.maxinvoice = 0;

案例 C

  SELECT  customers.* FROM customers  INNER JOIN (  SELECT customer_id , MIN(invoice_no) minInvoice ,MAX(invoice_no) maxinvoice FROM customers  GROUP BY  customer_id ) c
     ON c.customer_id  = customers .customer_id AND c.maxinvoice > 0 AND c.mininvoice=0