首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在where子句的计数内使用select

在where子句的计数内使用select
EN

Stack Overflow用户
提问于 2016-10-28 16:47:55
回答 2查看 354关注 0票数 1

我有一个问题,我试图从修订计划中选择所有设备,如果我没有为这些设备制作维修单,则必须在本月完成这些计划。我想做这样的事情:

代码语言:javascript
复制
select revision_planning.id_echip as echip_id
from revision_planning
    inner join service_sheet on echip_id=service_sheet.id_echip
where revision_planning.next_rev_date between '2016-10-01' and '2016-10-31'
  and count (select * from service_sheet 
             where echip_id=service_sheet.id_echip
               and service_sheet.`data`between '2016-10-01 00:00:00'and '2016-10-31 23:59:18') = 0
  and revision_planning.employee_name='first_last_name'
EN

回答 2

Stack Overflow用户

发布于 2016-10-28 16:51:11

尝试如下所示:

代码语言:javascript
复制
select revision_planning.id_echip as echip_id from revision_planning
  inner join service_sheet on echip_id=service_sheet.id_echip
  where revision_planning.next_rev_date between '2016-10-01' and '2016-10-31' and not exists (select 1 from service_sheet 
    where echip_id=service_sheet.id_echip and service_sheet.`data`between '2016-10-01 00:00:00'and '2016-10-31 23:59:18')
 and revision_planning.employee_name='first_last_name'
票数 1
EN

Stack Overflow用户

发布于 2016-10-28 16:51:22

您可以使用NOT EXISTS语句,而不是在WHERE子句中检查COUNT =0

代码语言:javascript
复制
select revision_planning.id_echip as echip_id 
from revision_planning
inner join service_sheet on echip_id=service_sheet.id_echip
where revision_planning.next_rev_date between '2016-10-01' and '2016-10-31' 
and NOT EXISTS(select 1 from service_sheet 
where echip_id=service_sheet.id_echip and service_sheet.`data`between '2016-10-01 00:00:00'and '2016-10-31 23:59:18')
and revision_planning.employee_name='first_last_name'
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40301344

复制
相关文章

相似问题

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