Improving sub select query on two tables without relationship
It's odd you say it is not possible, because it is possible, right?

select ID, Name, MinSalary, MaxSalary, count(Salary) as SalaryCount
from SalaryBands
left outer join EmployeeSalary on salary between minsalary and maxsalary
group by ID, Name, MinSalary, MaxSalary


Now, I am not sure I would actually use that... I would actually go with your query, but transformed to be more readable...

select ID,
       Name,
       MinSalary,
       MaxSalary,
       (select count(*)
        from EmployeeSalary
        where salary between minsalary and maxsalary
       ) as BandCount
from SalaryBands