Here is a method using left outer join
:
select t1.id, t1.desc, t1.effective_date, t1.alias,
coalesce(sum(t2.value), 1) as value
from table1 t1 left outer join
table2 t2
on t1.alias = t2.alias and
t1.effective_date < t2.split_date
group by t1.id, t1.desc, t1.effective_date, t1.alias;
I changed the logic to t1.effective_date < t2.split_date
to match the results in the question, although this is the opposite logic that you describe.