Circular Dependency Dilema

Context: I have a table of employees A and a table of employee with info related to targets. B

There is relationship between those with the next key [ Employee_ID&Month_ID)

In Table A I have column where I mark with 1 the Employees that achieved the target at month level. This column is depend on computation instally made using Table B

In Table B there are a lot of transformations and I want to bring the information of target achivement from table A.

How can I do that?

Hi @Cosmin - Please find the solution from Data Mentor. Do check.

Ankit J

Problem Analysis

You have two tables:

  1. Table A: Contains employee data.
  2. Table B: Contains employee-related target information.

There is a relationship between these tables based on the Employee_ID key. The goal is to analyze or combine these tables efficiently to derive meaningful insights.

Solution Overview

To effectively analyze the data from both tables, you need to:

  1. Establish a Relationship: Ensure that the relationship between the tables on Employee_ID is correctly defined.
  2. Perform Data Integration: Merge or join the data based on the Employee_ID to create a combined dataset for analysis.
  3. Analyze the Combined Data: Perform the necessary analysis based on the combined data, such as calculating performance metrics or deriving insights.

Below is a step-by-step guide, assuming you are using a tool that supports SQL or Power Query (DAX).

Power Query (M Language)

If you are using Power Query in tools like Power BI or Excel, you can use the following steps:

// Language: M
    // Load the tables
    Employees = Excel.CurrentWorkbook(){[Name="Employees"]}[Content],
    EmployeeTargets = Excel.CurrentWorkbook(){[Name="EmployeeTargets"]}[Content],

    // Merge the tables based on Employee_ID
    MergedTables = Table.NestedJoin(Employees, "Employee_ID", EmployeeTargets, "Employee_ID", "EmployeeTargets", JoinKind.Inner),

    // Expand the merged columns
    ExpandedTables = Table.ExpandTableColumn(MergedTables, "EmployeeTargets", {"Target", "Achievement"})

DAX Example

You can also create a relationship and then use DAX measures to analyze:

// Language: DAX

// Creating a calculated table if necessary
CombinedTable = 

// Example measure to calculate Total Achievement
TotalAchievement = SUM(CombinedTable[Achievement])

Best Practices

  1. Data Consistency: Ensure that Employee_ID values are consistent and unique across both tables.
  2. Data Cleansing: If necessary, clean the data to remove duplicates and handle missing values.
  3. Performance Optimization: Use appropriate joins and avoid unnecessary calculations to improve performance.
  4. Documentation: Properly document your analysis process and steps for future reference.


By following these steps, you can efficiently combine and analyze data from both tables. Using the provided SQL, Power Query, or DAX examples, you can tailor the solution to fit the specific analytics tool you are using. For a deeper understanding of such practices, consider exploring courses on the Enterprise DNA Platform.