Code:
SELECT t1.Tracking_number, t1.InvoiceNumber, ..., t2.Rate
FROM Table_1 t1 INNER JOIN Table_2 t2 ON t2.Service_Code = t1.ServiceCode AND t2.Zone = t1.Zone
WHERE t1.Weight BETWEEEN t2.Weight_low and t2.Weight_High
But I don't understand why you need the second table with current design, and what you'll return from 2nd table in query except rate! Isn't Service_Code unique in Table_2?
When not, then why not add Rate also into Table_1 and get rid of table Table_2?
When yes, then are fields Zone and Type in Table_1 abundant. And weight limits in Table_2 must be applied when value for Weight is entered into Table_1 - so it will always be between Weight_Low and Weight_High in Table_2 for given Service_code.