Thanks to Maciej from http://www.codeproject.com/ we got this to work
SELECT ProductName, Grade, COUNT(Grade) AS CountOfGrades, (SELECT COUNT(Grade) FROM Inspection WHERE (Branch = @branchno) AND (Date BETWEEN @DateFrom AND DATEADD(day, 1, @DateTo))
AND (Grade<>'') AND (productname=i.productname) AS TotalOfGrades
FROM Inspection as i.inspection
WHERE (Branch = @branchno) AND (Date BETWEEN @DateFrom AND DATEADD(day, 1, @DateTo))
AND (Grade <>'')
GROUP BY ProductName, Grade
ORDER BY ProductName