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

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
Anonymous
Not applicable

Measure with relationship blows up table visual

Hi.

 

I'm trying to wrap my head around this one with no success. Hope someone can help me understand what is happening here

 

I'm using direct query to postgres. I have two tables; order and orderrow. I have a relationship from order(id) -> orderrow(order_id) (one to many). Orderrow has a column "type" with an enum value (0, 1, 2)

 

I'm trying to display a table visual which would list the orders and have one specific column which would tell whether the order has any rows of type 2.  In orderrow table i've created a calculated column; "IsSpecialRow = IF([type] = 2, 1, 0)" and then in order table I have a measure "SpecialRowSum = SUM('orderrow'[IsSpecialRow])". Now, if I add this measure to my table visual it works fine and I get a value 0 or > 0 depending on whether the order has special products.

 

But when I try to make it look a bit nicer for the reader, I try to add this measure "HasSpecialRows = IF([SpecialRowSum]>0, "True", "False") and add that to the table visual it all blows up catastrophically. My orders are shown multiple times in the table, with some columns missing values and some having them. The count of rows shown in the table visual is multiple times what it should be. I'm using a measure for "HasSpecialRows" as the Power BI does not allow measures in calculated columns for direct query.

 

Could someone explain to me why does this happen? And what would be the correct way to achieve what I'm trying to do?

1 ACCEPTED SOLUTION
v-xuding-msft
Community Support
Community Support

Hi @Anonymous ,

It is caused by the row context where the measure "HasSpecialRows" is. When put it into the "order" table, it will show based on order(id).

You could try to create a calculated column as Daviejoe suggested. Or you could try the formula below to create a new measure.

Measure = 
IF (
    MAX ( 'order'[id] ) = MAX ( orderrow[order_id] )
        && MAX ( 'order'[id] ) <> BLANK (),
    IF ( SUM ( orderrow[IsSpecialRow] ) > 0, "True", "False" )
)

1.PNG

Best Regards,

Xue Ding

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

Best Regards,
Xue Ding
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
v-xuding-msft
Community Support
Community Support

Hi @Anonymous ,

It is caused by the row context where the measure "HasSpecialRows" is. When put it into the "order" table, it will show based on order(id).

You could try to create a calculated column as Daviejoe suggested. Or you could try the formula below to create a new measure.

Measure = 
IF (
    MAX ( 'order'[id] ) = MAX ( orderrow[order_id] )
        && MAX ( 'order'[id] ) <> BLANK (),
    IF ( SUM ( orderrow[IsSpecialRow] ) > 0, "True", "False" )
)

1.PNG

Best Regards,

Xue Ding

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

Best Regards,
Xue Ding
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
Daviejoe
Memorable Member
Memorable Member

Hey @Anonymous I had a similar problem.

 

I created some measures, they also sat in some KPI cards also, I added +0 at the end of the dax to ensure I didn't get a KPI displaying "blank".  

 

I then discovered my tables bloated due to the + 0. I'd get multiple entries in my tables as a result.

 

I'd try using a calculated column with a Switch statement to return what you want rather than use a measure.





Did I answer your question? Mark my post as a solution!

Proud to be a Super User!




Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.