I have use Convert keyword here and i am getting decimal values.
SQL
CREATE TABLE #Table1 (Code VARCHAR(10), Proc1 INT, Proc2 INT, Proc3 INT, Proc4 INT)
INSERT INTO #Table1 VALUES('1234B5', 10 ,20, 30, 45)
CREATE TABLE #Table2 (ID INT, [DateTime] DATETIME, Department INT)
INSERT INTO #Table2 VALUES(1111, '2014-11-21', 51)
INSERT INTO #Table2 VALUES(1111, '2014-11-21', 51)
INSERT INTO #Table2 VALUES(4523, '2014-11-9', 0)
CREATE TABLE #Table3 (Code VARCHAR(20), [Status] VARCHAR(5))
INSERT INTO #Table3 VALUES ('1234B', 'IN')
INSERT INTO #Table3 VALUES ('1234B', 'IN')
INSERT INTO #Table3 VALUES ('1234B', 'IN')
INSERT INTO #Table3 VALUES ('1414A', 'IN')
SELECT COUNT(t1.Code) as Code_Count
--------------------
,CONVERT(DECIMAL(11,3),(SUM(Proc1+Proc2+Proc3+proc4) / 60)) AS Total
--------------------
,(SELECT CONVERT(DECIMAL(11,3),(COUNT (ID)) * 502 / 60 )
FROM #Table2
WHERE Department = 51
AND DATEDIFF(DAY, CONVERT(VARCHAR(10), GETDATE(),110),CONVERT(VARCHAR(10), DateTime,110)) = -5) AS HOURS
--------------------- Total / Hours * 100
,(((CONVERT(DECIMAL(11,3),SUM(Proc1+Proc2+Proc3+proc4) / 60)) / (SELECT CONVERT(DECIMAL(11,3),(COUNT (ID)) * 502 / 60 ) AS GrandTotal
FROM #Table2
WHERE Department = 51
AND DATEDIFF(DAY, CONVERT(VARCHAR(10), GETDATE(),110),CONVERT(VARCHAR(10), DateTime,110)) = -5)))
FROM #Table3 t3 ,#Table1 t1
WHERE [Status] ='IN' AND t3.Code = '1234B'
GROUP BY Proc1,Proc2,Proc3,Proc4
DROP TABLE #Table1
DROP TABLE #Table2
DROP TABLE #Table3