Пара вариантов.Наиболее эффективным является использование аналитической функции.
SELECT *
FROM (
SELECT table1.indident_id,
table1.incident_detail_id,
table1.incdent_entered_date,
table1.entering_employee,
table2.EMAIL,
row_number() over (partition by table2.cust_id
order by table2.updated_date desc) rnk
FROM table1
left outer join table2 on table1.cust_id=table2.cust_id
WHERE table1.incdent_entered_date>=current_date-4
AND table1.table1.incident_detail_id=(select min(table1.table1.incident_detail_id)
from table1)
AND table2.EMAIL NOT IN ('NONE','none','none@none.com')
AND table2.EMAIL like '%@%'
)
WHERE rnk = 1
Менее эффективно, но то, что будет работать практически в любой базе данных, - это сделать что-то похожее на то, что вы в настоящее время делаете с * 1004.* подзапрос
SELECT table1.indident_id,
table1.incident_detail_id,
table1.incdent_entered_date,
table1.entering_employee,
table2.EMAIL
FROM table1
left outer join table2 on table1.cust_id=table2.cust_id
WHERE table1.incdent_entered_date>=current_date-4
AND table1.table1.incident_detail_id=(select min(table1.table1.incident_detail_id)
from table1)
AND table2.update_date = (SELECT MAX(t2_inner.update_date)
FROM table2 t2_inner
WHERE t2_inner.cust_id = table1.cust_id)
AND table2.EMAIL NOT IN ('NONE','none','none@none.com')
AND table2.EMAIL like '%@%'