Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now! Learn more

Reply
santhidhanuskod
Regular Visitor

Data Model with SCD type 4 implementation

Hi,

 

I have implemented SCD Type 4 and loaded data in 2 diff tables, live and history. WE have lots of tables and all of them are implemented with tpe 4. and we will defintely have many-many relationships when we model this in power bi.

As we maintain data datewise, there will be duplicates in the certain columns. For eg I have  a header column which is duplicated bec of type 4 implementation. We can identify the unique records only with the combination of header and recorddate. 

Business requirement is to select the recorddate in the report and they should be able to see the data for tht particular date.

how cn I model in power bi, how to get rid of man-many issue?

 

2 ACCEPTED SOLUTIONS
Sahir_Maharaj
Super User
Super User

Hello @santhidhanuskod,

 

Can you please try this approach:

 

1. Create a Date Dimension Table

DateTable = ADDCOLUMNS (
    CALENDAR (DATE(2000,1,1), TODAY()),
    "Year", YEAR([Date]),
    "Month", FORMAT([Date], "MMM"),
    "Quarter", "Q" & FORMAT([Date], "Q"),
    "Year-Month", FORMAT([Date], "YYYY-MM")
)

 

2. Create a Bridge Table

BridgeTable = DISTINCT(
    UNION(
        SELECTCOLUMNS( LiveTable, "Header", LiveTable[Header], "RecordDate", LiveTable[RecordDate]),
        SELECTCOLUMNS( HistoryTable, "Header", HistoryTable[Header], "RecordDate", HistoryTable[RecordDate])
    )
)

Did I answer your question? Mark my post as a solution, this will help others!

If my response(s) assisted you in any way, don't forget to drop me a "Kudos" 🙂

Kind Regards,
Sahir Maharaj
Data Scientist | Data Engineer | Data Analyst | AI Engineer
P.S. Want me to build your Power BI solution? (Yes, its FREE!)
➤ Lets connect on LinkedIn: Join my network of 15K+ professionals
➤ Join my free newsletter: Data Driven: From 0 to 100
➤ Website: https://sahirmaharaj.com
➤ About: https://sahirmaharaj.com/about.html
➤ Email: sahir@sahirmaharaj.com
➤ Want me to build your Power BI solution? Lets chat about how I can assist!
➤ Join my Medium community of 30K readers! Sharing my knowledge about data science and artificial intelligence
➤ Explore my latest project (350K+ views): Wordlit.net
➤ 100+ FREE Power BI Themes: Download Now
LinkedIn Top Voice in Artificial Intelligence, Data Science and Machine Learning

View solution in original post

Anonymous
Not applicable

Hi @santhidhanuskod 

 

Usually, creating a bridgiing table is a general solution for many-to-many relationships.

vzhengdxumsft_0-1738811005992.png

Many-to-many relationship guidance - Power BI | Microsoft Learn

Connecting Fact Tables in Microsoft Fabric: A Brid... - Microsoft Fabric Community

 

Or you can use the Merge queries to merge tables with the same key value in the Power query.

Merge queries overview - Power Query | Microsoft Learn

 

Best Regards

Zhengdong Xu
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

View solution in original post

2 REPLIES 2
Anonymous
Not applicable

Hi @santhidhanuskod 

 

Usually, creating a bridgiing table is a general solution for many-to-many relationships.

vzhengdxumsft_0-1738811005992.png

Many-to-many relationship guidance - Power BI | Microsoft Learn

Connecting Fact Tables in Microsoft Fabric: A Brid... - Microsoft Fabric Community

 

Or you can use the Merge queries to merge tables with the same key value in the Power query.

Merge queries overview - Power Query | Microsoft Learn

 

Best Regards

Zhengdong Xu
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

Sahir_Maharaj
Super User
Super User

Hello @santhidhanuskod,

 

Can you please try this approach:

 

1. Create a Date Dimension Table

DateTable = ADDCOLUMNS (
    CALENDAR (DATE(2000,1,1), TODAY()),
    "Year", YEAR([Date]),
    "Month", FORMAT([Date], "MMM"),
    "Quarter", "Q" & FORMAT([Date], "Q"),
    "Year-Month", FORMAT([Date], "YYYY-MM")
)

 

2. Create a Bridge Table

BridgeTable = DISTINCT(
    UNION(
        SELECTCOLUMNS( LiveTable, "Header", LiveTable[Header], "RecordDate", LiveTable[RecordDate]),
        SELECTCOLUMNS( HistoryTable, "Header", HistoryTable[Header], "RecordDate", HistoryTable[RecordDate])
    )
)

Did I answer your question? Mark my post as a solution, this will help others!

If my response(s) assisted you in any way, don't forget to drop me a "Kudos" 🙂

Kind Regards,
Sahir Maharaj
Data Scientist | Data Engineer | Data Analyst | AI Engineer
P.S. Want me to build your Power BI solution? (Yes, its FREE!)
➤ Lets connect on LinkedIn: Join my network of 15K+ professionals
➤ Join my free newsletter: Data Driven: From 0 to 100
➤ Website: https://sahirmaharaj.com
➤ About: https://sahirmaharaj.com/about.html
➤ Email: sahir@sahirmaharaj.com
➤ Want me to build your Power BI solution? Lets chat about how I can assist!
➤ Join my Medium community of 30K readers! Sharing my knowledge about data science and artificial intelligence
➤ Explore my latest project (350K+ views): Wordlit.net
➤ 100+ FREE Power BI Themes: Download Now
LinkedIn Top Voice in Artificial Intelligence, Data Science and Machine Learning

Helpful resources

Announcements
Power BI DataViz World Championships

Power BI Dataviz World Championships

The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now!

December 2025 Power BI Update Carousel

Power BI Monthly Update - December 2025

Check out the December 2025 Power BI Holiday Recap!

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.