What do you want return from you function
If you want return results of:
SELECT DISTINCT sl.JOB_ID, o.ID
FROM @OUTCOMES o
INNER JOIN
(SELECT START_SCENE_ID, DEST_SCENE_ID AS JOB_ID
FROM SCENE_LINK
WHERE PROPERTY_ID IN (97, 151)) AS sl
ON o.ID = sl.START_SCENE_ID
Try following T-SQL:
CREATE
FUNCTION fn_FunctionName(@ElementID int)RETURNS
TABLEAS
RETURN
SELECT DISTINCT sl.JOB_ID, o.ID FROM fn_GetDescendantsByClass(@ElementID, 302) o INNER JOIN (SELECT START_SCENE_ID, DEST_SCENE_ID AS JOB_ID FROM SCENE_LINK WHERE PROPERTY_ID IN (97, 151)) AS sl ON o.ID = sl.START_SCENE_IDGO
You code didn't work because you mixed Inline Table-valued Functions and Multistatement Table-valued Functions.
For inline you don't need to define result structure, but body of function could consist only RETURN statement and one SELECT statement. Inline tvf sometimes called "view with parameters"
For multistatement you could write few statement in function body, but you must include these statement into BEGIN .. END block. Also you need to define result table struct in RETURNS statement.