Not sure if this is ever going to be possible, but I'm trying to do a dynamic join on EXECUTE, but the execution string has to come from a table column.... i.e
select *
from (
select table1.theSql,table1.userid
from table1
) as a
inner join (execute a.thesql) as b on a.userId=b.userid
The short answer is no, something like that (at least that simply) is not possible.
The longer answer is that the closest thing to what you are trying to do would be a cross apply. Cross applies allow you to execute a function (or something that could be written as a database function) on each row. One of the limitations of functions is that they cannot have any side effects (ie, updates, deletes, inserts). Since executing arbitrary sql could have a side effect, you cannot use it in a function and therefore can't use it in an apply statement.
Is there a way to get around this? Yes, but it isn't pretty. You are going to have to go with a dynamic sql solution. Here is something that might be a starting point. SQL Fiddle
Sample Schema
SQL that Executes the SQL in the tables