Forum Discussion
DAX Record Count - One to Many
Hi
I am new to Power BI and DAX, I need help to write a query for my report. Can someone help me on this, please.
In my data model I have one to many relationship between two tables, Reviews and ReviewResponse. I would like to add a column in Reviews table to show True if there is any related record found in ReviewResponse or False if there is not. I addition, I want to count number of responses for each review. If there is no response, I expect to have 0 for thoese records. DISTINCTCOUNT(ReviewResponse[Id]) will work fine but it filters out reviews which doesn't have any responses.
What is the right way to do this?
2 Replies
- ankitpatiraCommunity Champion
mohsenvafa Create calculated column using below DAX,
CalculatedColumn =
IF( CALCULATE(COUNTROWS(ReviewResponses), FILTER( ReviewResponses, ReviewResponses[ReviewID] = EARLIER(Reviews[ID] ))) > 0, "True", "False")
- AlexChenMicrosoft Employee
Hi mohsenvafa,
For example, you have 2 table Review/ReviewResponse like below. They connected by Review[id] and ReviewResponse[reviewId].
Review:
ReviewResponse:
To show if the review have response or not, you can use RELATEDTABLE() to filter the responses. Please add a column like below:
hasanswer = if(countax(RELATEDTABLE(ReviewResponse), ReviewResponse[reviewId] = Reviews[id]) > 0, TRUE(), FALSE())
To show count of response you can use following DAX:
countOfResponse = if(countax(RELATEDTABLE(ReviewResponse), ReviewResponse[reviewId] = Reviews[id]) = BLANK(), 0, countax(RELATEDTABLE(ReviewResponse), ReviewResponse[reviewId] = Reviews[id]))
This is the result for Review Table:
Best Regards
Alex