Are any of these columns indexed?
Since your tables have a compound key, it would be reasonable to index
'store', 'departament', 'sub_dep', 'sale_id'
on both tables.
I suspect, however that you could make 'sale_id' a unique key that would be present in both tables.
Then your query could be:
WHERE a.sale_id = b.sale_id
AND a.vendor= 'jmss'
AND year(b.date) = '2003'
GROUP BY month(b.date)
Assuming sale_id is a unique key, if you indexed sales.vendor and 'sale_id' in both tables, your query would be fast indeed.