Job to check the status of another job I am looking to create a job which would check a status of another job every 5 minutes.

select      
    CASE jh.run_status
        WHEN 0 THEN 'Failed'
        WHEN 1 THEN 'Success'
        WHEN 2 THEN 'Retry'
        WHEN 3 THEN 'Cancelled'
    END AS Run_Status
from 
    msdb.dbo.sysjobs j
inner join 
    msdb.dbo.sysjobhistory jh on j.job_id = jh.job_id
where 
    j.name = 'DW Job'
group by 
    j.name, jh.run_status


How would I go about creating a step to check the status of a job every 5 minutes and if it completes sucessfully, go to the next step, other wise keep checking if the job is running and if the previous job fails, then report a job failure.
You can create a sql job with first step to check for the runnnnig job using below code:

      SELECT
    job.Name, job.job_ID
   ,job.Originating_Server
   ,activity.run_requested_Date
   ,datediff(minute, activity.run_requested_Date, getdate()) AS Elapsed
    FROM
    msdb.dbo.sysjobs_view job 
    INNER JOIN msdb.dbo.sysjobactivity activity
    ON (job.job_id = activity.job_id)
   WHERE
 run_Requested_date is not null 
 AND stop_execution_date is null
 AND job.name like 'Your Job Prefix%'


Then you can create two more steps for success and failure notifications using sp_send_dbmail feature. Make sure Advanced options on step 1 is configured properly so that on completion of step 1 it would go to say step 2 which sends you the success notification else on failure step 3 for failure notification.

However, you can use a better way of doing this by using sql reporting services.

Use the codes from below and test to check the status and see if that works for you!

http://www.codeproject.com/Articles/431307/View-SQL-Server-Job-Status-using-SQL-Reporting-Ser