I need to get LabourCode, Manpower, Hours, MAX Rate, MIN Rate from the table structure below where fkTemplate = SOMEVALUE

Code:
```fkLabourCodes
LabourCode | Description | fkScale
------------------------------------------
1                | Production  | 1
2                | Forming      | 2
fkLabourRates
fkAffiliate | fkScale | Rate
------------------------------
1             | 1          | 17.50
2             | 1          | 24.00
3             | 1          | 28.00
1             | 2          | 32.50
2             | 2          | 33.50
3             | 2          | 40.00

fkTemplateLabour
fkTemplate | fkLabourCode | Manpower | Hours
--------------------------------------------------------
1               | 1                    | 3             | 0.25
1               | 2                    | 2             | 0.5```
I need the results to be the following
Code:
```Labour | Manpower | Hours | Min      | Max
----------------------------------------------------
1         | 3              | 0.25   | 17.50  | 28.00
2         | 2              | 0.5     | 32.50  | 40.00```
Even one step further would be to multiply min and max values by hours and manpower and make a column for each.

Any hint. I tried the following with luck, but I would expect there is a better way of doing it:

Code:
```SELECT RTRIM(tl.fkLabourCode) AS Labour,
tl.Manpower,
tl.Hours,
(SELECT MAX (lr.Rate) FROM tbLabourRates AS lr
INNER JOIN tbLabourCodes AS lc
ON lr.fkScale = lc.fkScale
WHERE lc.LabourCode = tl.fkLabourCode) AS MaxRate,
(SELECT MIN (lr.Rate) FROM tbLabourRates AS lr
INNER JOIN tbLabourCodes AS lc
ON lr.fkScale = lc.fkScale
WHERE lc.LabourCode = tl.fkLabourCode) AS MinRate,
FROM tbTemplateLabour AS tl
WHERE tl.fkTemplate = 1```
Any suggestions, or is this virtually the only method to do this?

Mike B