Разработка моего комментария
select name,
subject
from Table_1
where date > getdate()-1
--group by name, subject --this isn't needed
union
select name,
subject
from table_2
where name not like 'abc%'
order by <yourCol> desc --notice change here
А для условного заказа на есть несколько постов по этому вопросу.
Кроме того, вам не нужна группа, поскольку union удаляет дубликаты.
Но ошибка очевидна: столбец, по которому вы хотите упорядочить, должен содержаться в списке выбора ...
Если вы хотите сохранить порядок первого набора перед вторым, просто используйте статический столбец ....
select name,
subject,
1 as Sort
from Table_1
where date > getdate()-1
--group by name, subject --this isn't needed
union
select name,
subject,
2 as Sort
from table_2
where name not like 'abc%'
order by Sort asc--notice change here