我有一个问题,我试图从修订计划中选择所有设备,如果我没有为这些设备制作维修单,则必须在本月完成这些计划。我想做这样的事情:
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'发布于 2016-10-28 16:51:11
尝试如下所示:
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'发布于 2016-10-28 16:51:22
您可以使用NOT EXISTS语句,而不是在WHERE子句中检查COUNT =0
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'https://stackoverflow.com/questions/40301344
复制相似问题