Analytics »  What is a Table » Joining Tables

Joining Tables

In a reporting system often you might require to combine data from two or more tables to get the required information for analysis and reporting. To retrieve data from two or more tables, you have to combine the tables through the operation known as "Joining of tables". Joining is a method of establishing a relationship between tables using a common column. In Virtutem Analytics you can join tables to create reports using one of the following two methods.

  • Auto-Join

  • Query Table

 Auto-Joining Tables

When you want to create reports using data spanning across multiple tables, Virtutem Analytics provides you with a special feature called Auto-Join . This feature automatically joins tables when creating reports, if the tables are connected using a Lookup column. For this feature to work, you need to specify that two tables are related using the Lookup column. To define a lookup relationship between two tables, it is essential that the tables have at least one column which is common between them. Lets look at this further with an example.

Here's an example to illustrate how to define lookup columns and how Auto-Join combines tables while creating reports, based on lookup relationship


"Store Sales Database" Model:

In the Store Sales Database model given above, the Sales and Sales Person tables have a common column called Sales Person Id . In the 'Sales' table every sale is associated to the Sales Person Id , who did the sale. In the 'Sales Person' table each sales person is identified by a unique id specified in the column Sales Person Id . Similarly Sales and Product Details tables have a common column called Product_ID . In the 'Sales' table each sale is associated with a product identified by the column Product_ID . In the Product table each product is identified by a unique id specified in the column Product_ID .


Given these related columns we can define lookup relationship between Sales and Sales Person table through the column Sales Person Id. Similarly between Sales and Product Details tables a lookup relationship can be established based on the common column Product_ID . Once the lookup column relationship is defined Virtutem Analytics will automatically join data from these tables using the Auto-join feature, when you start creating reports based on these tables.

 Defining Lookup

Here's how the lookup relationship is defined.

It is assumed that the above Store Sales Database has already been created with the corresponding tables in Virtutem Analytics . Let's start defining lookup between Sales and Sales Person tables through the common column Sales Person ID.

  • From the Explorer tab of the reporting database, open Sales table and click Edit Design button on the toolbar.

  • In the dialog box that appears, click on the the cell under Data Type column for the Sales Person ID and choose the data type as Lookup Up Column from the drown-down list.

  • Click on the cell at the intersection of Sales Person ID and Lookup Column . You will see a list of all the tables and their columns in the database as shown below under drop-down list. Select Sales Person ID in Sales Person table.

Now a dialog box will come up as shown below with the options to handle errors during conversion and options to select actions to be performed by Virtutem Analytics on the corresponding rows of the child table when a row in the parent table is deleted.

Here's is a rundown of the options available in the dialog box.

If error occurs on conversion:

      • Set empty value for the column in the corresponding record: If there is any conflict found in any of the column values, corresponding column values will set empty (NULL).

      • Stop conversion and rollback the changes: If there is any conflict found in any of the column values, existing columns values will be retained.

On Deleting the values in the Lookup(parent) column :

    • Delete the corresponding rows in this (child) table: When rows are deleted in a parent table, then all the corresponding rows in the child table will be deleted automatically.

    • Set NULL to the corresponding values in the child table: When rows in the parent table are deleted, respective rows in the child table won't get deleted. Instead, the values in the matching column in the child table will be set to NULL.

  • Select the required options and then click OK .

Now, a relationship between Sales and Sales Person tables is established through the lookup column Sales Person ID . Here we call the Sales table as the child table to Sales Persons table, since the Sales table is looking up a column from Sales Person table which is termed as the parent.

Similarly we can define the lookup relationship between Sales and Product Details tables using the Product Id column. Here the lookup column is defined for the Sales table (child table), with Product Details table which is the parent.

 Create Report using Auto-Join

Once tables are related with each other using lookup columns, you can create the report by selecting any of table with lookup relationship. Virtutem Analytics will automatically join the data from these tables and generate the report, when you drag and drop columns from across tables.
Here's how the Sales by each Sales Person chart is created using Auto-Join feature :

  • Open Sales table and select New Chart View option on the toolbar.

  • Now, Auto-Join feature detects its lookup relationship with other tables and lists all the columns of Product and Sales tables in Column List panel in the Report Designer .

  • Drag and drop Sale Person Name column from Sales table into X-axis shelf and Sales column from Sales table into Y-axis shelf.

  • Click Click Here to generate Graph link to create Sales made by each Sales Person report.

Also, columns from the related tables can be used to filter the report. Continuing the above example, Product Name column from Product Details table can be used to filter the chart data and display Sales made by the Sales Person for the selected Products as shown below.

 Joining with Query Tables

If the generated reports by using Auto-Join feature does not meet your specific needs, you could always create a query table to join the tables and use the same to create reports over it . A query table can be created using a SQL Select Join query to join separate tables using a common column and retrieve data you want from both the tables.


For example, a query to combine the Sales and Sales Person tables and to retrieve Sales made by each Sales Person data can be created as shown below.

The example query above joins the Sales & Sales Person tables. Once you create query table joining the necessary tables, then Virtutem Analytics allows you to create any type of reports for analysis and visualization over the same.