Forum Discussion
Joining multiple tables/queries
Hi,
I'm new to Power BI (currently going through the videos on edX). I have a long background with Crystal Reports and now trying to slowly convert that knowledge into PBI.
One of the things that I'm trying to do is the following:
- I have a SQL Server database that has two tables, a customer table and an invoice table
- I'd like to bring these into PBI together to build some dashboards, reports, etc.
- The primary keys in both are a Company ID and a Customer ID
I've used the Get Data process to bring in each of the tables in as separate queries. But when I try to use the Relationships function, I get this error message:
You can't create a relationship between these two columns because one of the columns must have unique values
Should I do this in a different way? or am I missing something?
This will be the reason for the error.
One option is to create a new column that combine your CompanyID/CustomerID into a single column, which you can do in the Query Editor. This would need to be done in both tables to create the relationship.
Otherwise, you could combine both tables into 1 in Query Editor using the Merge command to create a table with the following columns
CompanyID , CustomerID , CustomerName , InvoiceNum
Cheers,
Phil
I think you're actually better off using that first suggestion - keep the two separate tables, but create concatenated key columns in both tables that combine the CompanyID and CustomerID columns, using these new columns to join the tables. This allows you to treat the customer table as a lookup table. As you start learning more about PowerBI, you'll see that this is the standard modelling approach.
8 Replies
- Phil_SeamarkMicrosoft Employee
Hi Machzy
Does your Customer table have only 1 row per Customer? No blanks or duplicates in the CustomerID column (which is what I presume you are linking on).
- MachzyHelper I
No, if you want no duplicates, it would have to be a combination of the Company ID & the Customer ID for the customer table. And Company ID & Invoice Number for the invoice table.
Attached is an example.
- Phil_SeamarkMicrosoft Employee
This will be the reason for the error.
One option is to create a new column that combine your CompanyID/CustomerID into a single column, which you can do in the Query Editor. This would need to be done in both tables to create the relationship.
Otherwise, you could combine both tables into 1 in Query Editor using the Merge command to create a table with the following columns
CompanyID , CustomerID , CustomerName , InvoiceNum
Cheers,
Phil