с использованием простого или оператора (если это действительно та же таблица):
select newsdate,COUNT(B.id) as total
from news B
where B.newsyear < GETDATE()
or B.status='WAITING' and B.cancel='1'
Group by B.newsdate
или используя объединение всех + совокупный итог (если это разные таблицы):
select newsdate, sum(total) as total from (
select newsdate,COUNT(B.id) as total from news B where B.newsyear < GETDATE()
Group by B.newsdate
union all
select newsdate,COUNT(B.id) as total from news B where B.status='WAITING' and B.cancel='1'
Group by B.newsdate
) as rows
group by newsdate