Спасибо csaisEdge.Это дало мне часть решения с суммой (кол-во * цена).Я хотел получить общее количество каждой категории, а также общее количество, а также отдельные записи из «ProjLab».Я пытался использовать «WITH ROLLUP», но получал синтаксическую ошибку.В итоге я использовал два СОЮЗА, один для промежуточных итоговых сумм и один для общего итога, как показано ниже.Нет сомнений в гораздо лучшем решении, возможно, «С ROLLUP» ??
-- this part gives all Projlab records
SELECT CAT.LCDescript Category,
Labor.LabDescript Task,
ProjLab.PLqty Qty,
ProjLab.Plucost UnitCost,
sum(ProjLab.PLqty*ProjLab.Plucost ) as TotalCost
FROM `ProjLab`
INNER JOIN Labor ON ProjLab.Lid = Labor.Lid
INNER JOIN CAT ON Labor.CAT = CAT.LCid
WHERE Pid=1
GROUP BY Category, Task
UNION
-- this part adds the category totals
SELECT CAT.LCDescript Category,
"_total" Task,
ProjLab.PLqty Qty,
ProjLab.Plucost UnitCost,
sum(ProjLab.PLqty*ProjLab.Plucost ) as TotalCost
FROM `ProjLab`
INNER JOIN Labor ON ProjLab.Lid = Labor.Lid
INNER JOIN CAT ON Labor.CAT = CAT.LCid
WHERE Pid=1
GROUP BY Category
UNION
-- this part give the grand total
SELECT "__ total" AS Category,
"__" Task,
"__" Qty,
"__" UnitCost,
sum(ProjLab.PLqty*ProjLab.Plucost ) as TotalCost
FROM `ProjLab`
INNER JOIN Labor ON ProjLab.Lid = Labor.Lid
INNER JOIN CAT ON Labor.CAT = CAT.LCid
WHERE Pid=1
GROUP BY Category
ORDER BY Category, Task ASC