Query below perhaps? I would also recommend changing the where clause as shown for couple of reasons.-- If you don't want to group by Cliente,
-- remove it from the select list and the group by list.
SELECT pa.nome AS Cliente,
DATEADD(mm, DATEDIFF(mm, 0, pa.pdata), 0) AS [FirstOfMonth],
AVG(mh.moh) AS 'Média Horas Serviço 3M',
AVG(mh.deh) AS 'Média Kms Deslocação 3M'
FROM pa
JOIN sn
ON pa.snno = sn.snno
JOIN mh
ON mh.nopat = pa.nopat
WHERE sn.snno <> 0
AND pa.pdata >= DATEADD(mm, DATEDIFF(mm, 0, GETDATE()) -4, 0)
AND pa.pdata < DATEADD(mm, DATEDIFF(mm, 0, GETDATE()), 0)
GROUP BY
pa.nome,
DATEADD(mm, DATEDIFF(mm, 0, pa.pdata), 0)