Try this:
DECLARE @PUBLISHER_BATCH TABLE
( PUBLISHER_ID INT, NAME_PUBLISHER VARCHAR(50), NO_RECORDS_IMPORTED INT,
NO_RECORDS_EXPORTED INT, NO_RECORDS_DELETED INT, STATUS INT, LOCKED INT,
SOURCE INT )
INSERT INTO @PUBLISHER_BATCH VALUES(1,'Publisher1',18,10,3,' 2',1,2)
INSERT INTO @PUBLISHER_BATCH VALUES(2,'Publisher2',27,11,5,' 2',1,2)
INSERT INTO @PUBLISHER_BATCH VALUES(3,'Publisher3',25,0,0,' 1',0,1)
SELECT NAME_PUBLISHER, OnStock, NO_RECORDS_IMPORTED, NO_RECORDS_EXPORTED, NO_RECORDS_DELETED, NO_RECORDS_IMPORTED + NO_RECORDS_EXPORTED + NO_RECORDS_DELETED AS TOTAL
FROM (
SELECT T1.NAME_PUBLISHER, COALESCE(T2.OnStock,0) AS OnStock, T1.NO_RECORDS_IMPORTED, T1.NO_RECORDS_EXPORTED, T1.NO_RECORDS_DELETED
FROM @PUBLISHER_BATCH AS T1
LEFT JOIN (
SELECT NAME_PUBLISHER, COUNT(*) AS OnStock
FROM @PUBLISHER_BATCH
WHERE LOCKED =0 AND STATUS =1
GROUP BY NAME_PUBLISHER
) AS T2 ON T1.NAME_PUBLISHER = T2.NAME_PUBLISHER
UNION ALL
SELECT 'Total' AS NAME_PUBLISHER, (SELECT COUNT(*) FROM @PUBLISHER_BATCH WHERE LOCKED = 0 AND STATUS =1) AS OnStock, SUM(NO_RECORDS_IMPORTED) AS NO_RECORDS_IMPORTED, SUM(NO_RECORDS_EXPORTED) AS NO_RECORDS_EXPORTED,
SUM(NO_RECORDS_DELETED) AS NO_RECORDS_DELETED
FROM @PUBLISHER_BATCH
) AS T
Result:
Name_Pub.. OnS Imp Exp Del Total
Publisher1 0 18 10 3 31
Publisher2 0 27 11 5 43
Publisher3 1 25 0 0 25
Total 1 70 21 8 99