if all TableA locations are to be returned, including those with no matching rows in TableB, then it requires a LEFT OUTER JOIN
Code:
select a.Location
, coalesce(sum(b.Qty),0) as Qty
from TableA as a
left outer
join TableB as b
on a.ID = b.ID
where a.`Date` = 'date value'
group
by a.Location