Forum Discussion

Machzy's avatar
Machzy
Helper I
9 years ago
Solved

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_Seamark's avatar
    Phil_Seamark
    Microsoft 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).

     

     

    • Machzy's avatar
      Machzy
      Helper 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_Seamark's avatar
        Phil_Seamark
        Microsoft 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