^ you are getting those "NSQL errors" as your syntax is wrong, you are using the NSQL syntax for query definition (dimensions/properties etc), for dynamic lookup NSQL it is a different (simpler) structure - have a look at any of your existing dynamic lookups for examples.
-
EDIT : here is (untested) what I was thinking about it could look like; you'd map the attribute hidden key to the t_type but use the description as the display value (and obviously change columns/descriptions to match your settings)
SELECT
@SELECT:cte_mapping.t_type:t_type@
,@SELECT:cte_mapping.t_type_desc:t_type_desc@
FROM
odf_ca_project op
JOIN
(
SELECT 'RUN' as p_type, '(1) Administration' as t_type_desc , 1 as t_type FROM DUAL UNION
SELECT 'RUN' , '(3) Maintenance and Support' , 3 as t_type FROM DUAL UNION
SELECT 'GROW' , '(2) Construct, Test, Implement' , 2 as t_type FROM DUAL UNION
SELECT 'GROW' , '(4) Planning, Scope, Design' , 4 as t_type FROM DUAL UNION
SELECT 'TRANSFORM' , '(1) Administration' , 1 FROM DUAL UNION
SELECT 'TRANSFORM' , '(2) Construct, Test, Implement' , 2 as t_type FROM DUAL UNION
SELECT 'TRANSFORM' , '(3) Maintenance and Support' , 3 as t_type FROM DUAL UNION
SELECT 'TRANSFORM' , '(4) Planning, Scope, Design' , 4 as t_type FROM DUAL
) cte_mapping ON op.my_project_type = cte_mapping.p_type
WHERE op.id = @WHERE:PARAM:USER_DEF:INTEGER:project_id@
AND @FILTER@
No 'custom object' involved, so if you wanted to change/extend the mapping it would be a code change (in that mapping common table expression thing (cte_mapping) )