Selection of first and last in non grouped item in SQL Server
Here are a couple of options:

   SELECT TOOLNAME, 
           TOOLKEY, 
           MAX(CASE WHEN Toolstatus = 'Running' THEN 'Running' END) Toolstatus1, 
           MAX(CASE WHEN Toolstatus = 'Completed' THEN 'Completed' END) Toolstatus2
    FROM TOOLS
    GROUP BY TOOLNAME, 
             TOOLKEY


It is eliminating nulls with the aggregate MAX() function in this code, if that's a concern, you may want this:

SELECT TOOLNAME, 
       TOOLKEY, 
       [Running] Toolstatus1,
       [Completed] Toolstatus2
FROM (SELECT TOOLNAME, 
             TOOLKEY,
             TOOLSTATUS
      FROM TOOLS) AS src
PIVOT
(
MAX(TOOLSTATUS)
FOR TOOLSTATUS IN ([RUNNING], [COMPLETED])
) AS pvt