首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何确保sql select结果与某个值匹配

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

Stack Overflow用户
提问于 2013-11-05 09:55:51
回答 2查看 26关注 0票数 0

我写sql来选择从7月到12月的支付表。但是,我想找出在这六个月里交了钱的那个学生。如果学生已经支付了全部六个月的费用,那么该学生将被选中。如果学生没有支付任何一个月的费用。那么该学生将不会被选中。但我不知道该怎么做。它是不是像这样

select student_name from payment where (select month(payment_date) from payment) all in (7,8,9,10,11,12)

请原谅我的sql不清楚。但我只想表达我想表达的想法。

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2013-11-05 10:00:44

代码语言:javascript
复制
select student_name, count(distinct month(payment_date)) 
from payment 
group by student_name;

将向您显示学生已支付的月份。

代码语言:javascript
复制
select student_name, count(distinct month(payment_date)) 
from payment 
group by student_name 
having count(distinct month(payment_date)) <> 6;

将向您展示尚未支付全部六个月费用的学生。

票数 1
EN

Stack Overflow用户

发布于 2013-11-05 10:02:58

您可以使用HAVING子句来实现这一点。此示例将您感兴趣的月份指定为WHERE子句的一部分,然后使用GROUP BYHAVING确保所有月份都匹配。

代码语言:javascript
复制
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实现而有所不同。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19780707

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档