1. A computer implemented method of obtaining a dataset answering a main query from a relational database using a database query language, the method operable on a computer system comprising a set of one or more processors, the method comprising the steps of: providing a data stack corresponding to a first subquery that forms part of the main query, wherein the main query comprises a main logical test, and the first and each further subquery that forms part of the main query comprises one or more logical sub tests, wherein the data stack acts as a container for events having codes passing the first subquery; displaying, on a user interface, actions corresponding to the first data stack, the actions further comprising specifying logical sub tests used to fill the first data stack; adding a first dataset obtained from the database to the first data stack; providing a first real result table containing the first dataset obtained from the database using the first data stack, the first dataset answering the first subquery that forms part of the main query; providing one or more further data stacks corresponding to one or more further subqueries that form part of the main query, wherein each of the one or more data stacks acts as a container for events having codes passing the one or more further subqueries; displaying, on a user interface, actions corresponding to the one or more further data stacks, the actions further comprising specifying logical sub tests used to fill the one or more further data stacks; adding a respective further dataset obtained from the database to each of the one or more further data stacks; providing one or more further real result tables, each of the one or more further real result tables containing a respective further dataset obtained from the database, each of the one or more further datasets answering a respective further subquery that forms part of the main query; and obtaining a dataset from the first real result table and the one or more further real result tables answering the main query, wherein the dataset is displayed on the user interface.