A system comprising: means for receiving a request conforming to a modeled query and a join condition, wherein the modeled query is defined by metadata (140, 200) in a repository specifying an object model of the query, the request comprising: a first subrequest to be run on a search attribute view for requesting a first result type comprising an item list for a search result, the first subrequest specifying the attributes of the search attribute view that are to be returned with each item, and a second subrequest to be run on an analytical view for requesting a second result type comprising a calculated table for analytical data, the first and second subrequest associated with shared filter criteria; means for defining a join between the search attribute view and the analytical view using the join condition based on one or more view attributes of the search attribute view, such that a result set associated with the first subrequest is filtered based on the join condition; and means for executing the query, wherein the executing means is configured to: retrieve the metadata of the modeled query based on a query identifier and pass the metadata to a query server (130, 530) in a request; process the first subrequest by a query processor at the query server, by calling a database engine using structured query language to produce the item list, and route the second subrequest to a calculation engine which executes the query on the analytical view to generate the calculated table. means for receiving a request conforming to a modeled query and a join condition, wherein the modeled query is defined by metadata (140, 200) in a repository specifying an object model of the query, the request comprising: a first subrequest to be run on a search attribute view for requesting a first result type comprising an item list for a search result, the first subrequest specifying the attributes of the search attribute view that are to be returned with each item, and a second subrequest to be run on an analytical view for requesting a second result type comprising a calculated table for analytical data, the first and second subrequest associated with shared filter criteria; a first subrequest to be run on a search attribute view for requesting a first result type comprising an item list for a search result, the first subrequest specifying the attributes of the search attribute view that are to be returned with each item, and a second subrequest to be run on an analytical view for requesting a second result type comprising a calculated table for analytical data, the first and second subrequest associated with shared filter criteria; means for defining a join between the search attribute view and the analytical view using the join condition based on one or more view attributes of the search attribute view, such that a result set associated with the first subrequest is filtered based on the join condition; and means for executing the query, wherein the executing means is configured to: retrieve the metadata of the modeled query based on a query identifier and pass the metadata to a query server (130, 530) in a request; process the first subrequest by a query processor at the query server, by calling a database engine using structured query language to produce the item list, and route the second subrequest to a calculation engine which executes the query on the analytical view to generate the calculated table. retrieve the metadata of the modeled query based on a query identifier and pass the metadata to a query server (130, 530) in a request; process the first subrequest by a query processor at the query server, by calling a database engine using structured query language to produce the item list, and route the second subrequest to a calculation engine which executes the query on the analytical view to generate the calculated table.