Okay, I'm at work, its the holidays and I've finished up my projects, and yeah I've seen this as an oracle query and there's some simplicity but I worked in SQL for a bit. This is a total hack query and its written in oracle but the concept is the same.
SELECT distinct RQ_REQ_ID AS "Int Req ID",
r.RQ_REQ_NAME AS "Req ID",
r.RQ_REQ_REVIEWED as "Req Status",
r.RQ_REQ_STATUS AS "Req Coverage",
r.rq_req_path,
(select rq_req_name from req where rq_req_path = substr(r.rq_req_path, 1, 3))
|| '/' ||
(select rq_req_name from req where rq_req_path = substr(r.rq_req_path, 1, 6))
|| '/' ||
(select rq_req_name from req where rq_req_path = substr(r.rq_req_path, 1, 9))
FROM REQ r
WHERE RQ_TYPE_ID != 1
ORDER BY RQ_REQ_NAME
You'll want & instead of || and you may have to do some cast/convert operations on the return. The reason I thought of doing it this way is that crawling the rq_req_path and iterating down is kind of...frowned upon in SQL Server.
What I did was found the max length of RQ_REQ_PATH and just added n concatenations. Afterwards, it would be easy to strip out the extra /.
I'm totally positive there's a better, cleaner way of doing it but in case anyone else is looking at this, this should be a starting point and if its a one-off report, this works fine.