如何确保sql select结果与某些值匹配

如何确保sql select结果与某些值匹配,sql,Sql,我正在编写sql以从7月到12月的付款表中进行选择。然而,我想找出在这六个月里付清学费的学生。如果学生在六个月内全部付清学费,那么学生将被淘汰。如果学生没有支付任何一个月的费用。那么这个学生就不会被选出来了。但是我不知道怎么做。是不是有点像 从付款中选择学生姓名,其中从付款中选择月付款日期全部为7,8,9,10,11,12 请原谅我的不清楚。但我只是想把我想表达的想法表达出来 谢谢 select student_name, count(distinct month(payment_date))

我正在编写sql以从7月到12月的付款表中进行选择。然而,我想找出在这六个月里付清学费的学生。如果学生在六个月内全部付清学费,那么学生将被淘汰。如果学生没有支付任何一个月的费用。那么这个学生就不会被选出来了。但是我不知道怎么做。是不是有点像

从付款中选择学生姓名,其中从付款中选择月付款日期全部为7,8,9,10,11,12

请原谅我的不清楚。但我只是想把我想表达的想法表达出来

谢谢

select student_name, count(distinct month(payment_date)) 
from payment 
group by student_name;
将向您显示学生已支付的月份

select student_name, count(distinct month(payment_date)) 
from payment 
group by student_name 
having count(distinct month(payment_date)) <> 6;

将向您显示所有六个月未付款的学生。

您可以通过HAVING条款实现这一点。本例将您感兴趣的月份指定为WHERE子句的一部分,然后使用GROUP BY并确保所有月份都匹配

SELECT student_name 
  FROM payment
 WHERE month(payment_date) IN (7,8,9,10,11,12)
 GROUP BY student_name
 HAVING COUNT(DISTINCT month(payment_date)) = 6

确切的语法将根据您的sql实现而有所不同。

您使用的是哪种sql?MySQL?博士后?神谕Sqlite?微软