У меня есть 2 таблицы: яблоки и апельсины.У Apple есть столбец FirstDate и столбец LastDate для каждого ApplesID.Апельсины имеют только один столбец «Дата» с несколькими записями (вхождениями) для каждого ApplesID, каждый из которых может иметь разные даты.Ни один из них технически не попадает в другой, но логика заключается в том, что min (Oranges.Date) = Apples.FirstDate и max (Oranges.Date) = Apples.LastDate per ApplesID.Я просто запрашиваю, чтобы увидеть, где приведенная выше логика не соответствует действительности.
Ниже мой запрос пытается найти это, но когда я запускаю его и вижу результаты, где приведенная выше логика выполняется и не выполняется,Результаты, в которых содержится логика, не должны быть в наборе результатов.Что я делаю не так?
select distinct
a.ApplesID
, convert(varchar(10), a.FirstDate, 103) as 'FirstDate'
, convert(varchar(10), a.LastDate, 103) as 'LastDate'
, min(convert(varchar(10), o.Date, 103)) as 'FirstDT'
, max(convert(varchar(10), o.Date, 103)) as 'LastDT'
from Apples a with(nolock)
join Oranges o with(nolock)
on o.ApplesID = a.ApplesID
where (o.Date between '01/01/2018' and '02/28/2019' and a.FirstDate >= '01/01/2018')
and a.ApplesID > 0
and a.Deleted = 0
group by a.ApplesID, a.FirstDate, a.LastDate
having (min(o.Date) <> a.FirstDate or max(o.Date) <> a.LastDate)
order by a.ApplesID