The size of the expanded query is the most likely cause of the error. The expanded query substitutes into the original query the definitions of each of the views, computed columns, Transact-SQL functions, and common table expressions it references, as well as cascading actions like updating secondary indexes, views, and triggers.
Most likely the query is large in some dimension; for example, the number of tables referenced by view definitions, or a very large scalar expression.
Simplify the query by breaking the query into multiple queries along the largest dimension. First remove any query elements that are not really necessary, then try adding a temp table and splitting the query in two. Merely moving a part of the query to a subquery, function, or common table expression is insufficient because they get recombined by the Transact-SQL compiler.