Itâ€™s hard to tell since I canâ€™t test the query, but it may be the where clause at the end that is causing this. Try

```
Select Category, SUM(MaintTech1Hours + MaintTech2Hours + MaintTech3Hours + MaintTech4Hours + MaintTech5Hours) Hours,
(SUM(MaintTech1Hours + MaintTech2Hours + MaintTech3Hours + MaintTech4Hours + MaintTech5Hours)/x.Total)*100 Percentage
From WorkOrder (nolock)
Where DateTm Between DATEADD(month, DATEDIFF(month, 0, getDate()), 0) and DATEADD(month, DATEDIFF(month, -1, getDate()), -1)
CROSS
JOIN ( Select SUM(MaintTech1Hours + MaintTech2Hours + MaintTech3Hours + MaintTech4Hours + MaintTech5Hours) From WorkOrder (nolock) Total
Where DateTm Between DATEADD(month, DATEDIFF(month, 0, getDate()), 0) and DATEADD(month, DATEDIFF(month, -1, getDate()), -1)) x
Group by Category
```

Here is the simple query I ran on my system to figure out the basics of this logic

```
select user, sum(salh),(sum(salh)/ x.total)*100 Percentage
from sew_history
cross
JOIN (select sum(salh) total from sew_history) x
group by user
```