Try
select *
from person p
inner join referral r on p.cl_ref = r.cl_ref
where p.cl_dob > (
select GOMONTH(min(EVL(rr.re_date, {^9000-12-31}), -216))
from referral rr
where rr.cl_ref = p.cl_ref )
>
>I have a piece of SQL that really needs to be performed quicker, I have 2 tables:
>
>Person
>Referral
>
>Person has a date of birth and I am fetching all persons who were under 18 on their first referral, here is the SQL:
>
>
>select *;
> from person p
> inner join referral r on p.cl_ref = r.cl_ref and !empty(r.re_date);
> where gomonth(p.cl_dob, 216) > (select min(rr.re_date) from referral rr;
> where rr.cl_ref = p.cl_ref and !empty(rr.re_date))
>
>
>According to Fox none of this is optimised, both cl_ref fields on each table are indexed.
>
>Can anyone suggest an alternative that may be quicker - or is there anything else I could do to speed up the query?
--sb--