из вашего описания, я бы не беспокоился об эффективности запроса, так как, очевидно, он должен выполняться только два раза в год!
Есть несколько способов сделать это, один из которых «лучший» зависит от данных, которые у вас есть. предлагаемый вами дата (на макс. / мин. значениях даты) должна работать, другой вариант - просто подсчитать записи для каждой из представленных в каждом диапазоне дат, например,
select * from (
select T.submitterId,
(select count(*)
from TABLE T1
where T1.datefield between [july] and [december]
and T1.submitterId = T.submitterId
group by T1.submitterId) as JDCount,
(select count(*)
from TABLE T2
where T2.datefield between [december] and [june]
and T2.submitterId = T.submitterId
group by T2.submitterId) as DJCount
from TABLE T) X
where X.JDCount <= 0 OR X.DJCount <= 0
предостережение: непроверенный запрос с макушки головы; Ваш пробег может варьироваться