In this scenario, I would make use of the [WITH clause](https://community.denodo.com/docs/html/browse/latest/en/vdp/vql/queries_select_statement/with_clause/with_clause#with-clause) which specifies a **common table expression (CTE)**. A CTE is like a temporary result set that is defined and used for the duration of a SQL statement.
In order to achieve the expected result, I will create a CTE to hold an integer for every month and apply cross join as below:
> WITH vdatemaster AS
> SELECT '2022-01-01' as startmonth,1 as intmonth UNION ALL
> SELECT '2022-02-01' as startmonth,2 as intmonth UNION ALL
> SELECT '2022-03-01' as startmonth,3 as intmonth UNION ALL
> SELECT '2022-04-01' as startmonth,4 as intmonth UNION ALL
> SELECT '2022-05-01' as startmonth,5 as intmonth UNION ALL
> SELECT '2022-06-01' as startmonth,6 as intmonth from dual()
> select a.*,b.intmonth from view1 a CROSS JOIN vdatemaster b WHERE b.startmonth between a.startmonth and a.endmonth order by b.intmonth;
Here View1 is the view that returns Result 1.
You can have a look at the section [Creating Join Views](https://community.denodo.com/docs/html/browse/8.0/en/vdp/administration/creating_derived_views/creating_join_views/creating_join_views#creating-join-views) of the for more information on join.
Hope this helps!