Power BI is turning 10! Tune in for a special live episode on July 24 with behind-the-scenes stories, product evolution highlights, and a sneak peek at what’s in store for the future.
Save the dateEnhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.
Hi all, I'm new to Power BI and need some help on what would be the better data model for the below scenario.
I want to analyse order history and have some measures at the header level and some at the detail e.g.
I am using SQL Views as my datasource. My question:
Should I be creating 1 View to return Header and Detail and then use DAX to handle the header level aggregations e.g. in the above example order O1 has 2 lines so I couldn't simply sum the TurnAroundTimeMinutes as it would give me double.
Alternatively, should I create 2 seperate views and then create a relationship on the OrderNumber within PowerBI (I want to have a drill through to the detail report.
Thanks in advance for any advice.
Cheers,
Clay
Solved! Go to Solution.
Hey @clay_75 ,
as always, it depends, unfortunately. The people from SQL BI have written an article about data modeling regarding the header/detail challenge: https://www.sqlbi.com/articles/header-detail-vs-star-schema-models-in-tabular-and-power-bi/
Nevertheless, you can create a single view in the data source that allocates the "measures" from the header table to the details, e.g., divididing the header measure by the number of products/per order. You also can consider to change default aggregation function SUM of the header measue to AVERAGE, if this makes sense.
Of course, you have to consider if this makes sense when you filter products and only one product remains in the detail table.
You can also consider both tables as different fact tables with a different dimensionality, one table is only filtered by a single dimension table - order. The second fact table is filtered by the dimension tables order and product.
Maybe, this helps to make your decisions.
Regards,
Tom
Hey @clay_75 ,
as always, it depends, unfortunately. The people from SQL BI have written an article about data modeling regarding the header/detail challenge: https://www.sqlbi.com/articles/header-detail-vs-star-schema-models-in-tabular-and-power-bi/
Nevertheless, you can create a single view in the data source that allocates the "measures" from the header table to the details, e.g., divididing the header measure by the number of products/per order. You also can consider to change default aggregation function SUM of the header measue to AVERAGE, if this makes sense.
Of course, you have to consider if this makes sense when you filter products and only one product remains in the detail table.
You can also consider both tables as different fact tables with a different dimensionality, one table is only filtered by a single dimension table - order. The second fact table is filtered by the dimension tables order and product.
Maybe, this helps to make your decisions.
Regards,
Tom
Thanks Tom, I'll do some tests. I think I'm leaning towards 2 separate fact tables.
Cheers, Clay
Check out the July 2025 Power BI update to learn about new features.
This is your chance to engage directly with the engineering team behind Fabric and Power BI. Share your experiences and shape the future.
User | Count |
---|---|
64 | |
64 | |
52 | |
39 | |
24 |
User | Count |
---|---|
84 | |
57 | |
45 | |
44 | |
37 |