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

Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!

Reply
Pelle
Frequent Visitor

Using filter criteria from two different fact tables.

Hi.
I'm having a problem creating a measure that counts "How many children have had a visit within 14 days after homecoming"
In my model I have one fact table with the "homecoming" events and another fact table with the visits.

Modell.PNG

In SQL I would have solved it by using Exists like this.

	...
	,count(distinct fv.d_barn_dkey)
	FROM FactVisit fv
	...
	AND
	EXISTS (
		select 
			NULL
		from 
			FactHomecoming f
		where 
			f.D_Aktivitetskod_dKey = 10
			AND fv.D_Barn_dKey = f.D_Barn_dKey
			AND fv.VisitDate <= DATEADD(dd,14,f.HomecomingDate)
		)

But how do I create the Measure?

CountChildrenWithVisitsWithin14daysAfterHomecoming:= 
CALCULATE(
	DISTINCTCOUNT('FactVisit'[D_Barn_dKey])
	;Filter1
	;Filter2
	/*;Missing filter FactVisit[VisitDate] <= FactHomeComing[HomecomingDate] + 14 days */
)

 

 

1 ACCEPTED SOLUTION
Pelle
Frequent Visitor

So I think I've solved it.

Just for the record: There should be just one homecoming date per child.

To be able to compare the two dates from the two fact tables I created two calculated columns in DimChild.
First one like this.

HomecommingDate =

    CALCULATE(

        MIN('F_Homecomming'[ActivityDate].[Date]);

    )

The other one (because I wasn't able to solve it in the first step) like this.

HomecommingDate_Plus14Days =

    DATEADD('D_Child'[HomecommingDate].[Date];14;DAY)

 

Then I used this calculated column in the comparsion when creating the measure.

CALCULATE(

                           DISTINCTCOUNT('F_Visit'[D_Child_dKey])

                           ;...

                           ;'...

                           ;FILTER('F_Visit';

                                  'F_Visit'[VisitDate] <= RELATED('D_Child'[HomecommingDate_Plus14Days])

                           )

)

 

Feel free to comment if there is a better way of doing it...

Cheers

View solution in original post

3 REPLIES 3
Pelle
Frequent Visitor

So I think I've solved it.

Just for the record: There should be just one homecoming date per child.

To be able to compare the two dates from the two fact tables I created two calculated columns in DimChild.
First one like this.

HomecommingDate =

    CALCULATE(

        MIN('F_Homecomming'[ActivityDate].[Date]);

    )

The other one (because I wasn't able to solve it in the first step) like this.

HomecommingDate_Plus14Days =

    DATEADD('D_Child'[HomecommingDate].[Date];14;DAY)

 

Then I used this calculated column in the comparsion when creating the measure.

CALCULATE(

                           DISTINCTCOUNT('F_Visit'[D_Child_dKey])

                           ;...

                           ;'...

                           ;FILTER('F_Visit';

                                  'F_Visit'[VisitDate] <= RELATED('D_Child'[HomecommingDate_Plus14Days])

                           )

)

 

Feel free to comment if there is a better way of doing it...

Cheers

Pelle
Frequent Visitor

A small correction.
I've changed the formula when creating the calculated column

HomecommingDate_Plus14Days =DATEADD('D_Child'[HomecommingDate].[Date];14;DAY)

to

HomecommingDate_Plus14Days = 'D_Child'[HomecommingDate].[Date] + 14

because the strange behavior of the DATEADD that gaved me BLANK values on some rows instead of the new date.
The new calculated date must exists as a value in the original column (HomecommingDate) otherwize it turns to BLANK.
Read more here: https://blog.crossjoin.co.uk/2012/01/06/the-dax-dateadd-function-and-missing-dates/

 

Hi @Pelle,

 

Thanks for your sharing. Would you please mark your sharing solution as an answer so that it can benefit more users?

 

Regards,

Yuliana Gu

Community Support Team _ Yuliana Gu
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

Helpful resources

Announcements
April AMA free

Microsoft Fabric AMA Livestream

Join us Tuesday, April 09, 9:00 – 10:00 AM PST for a live, expert-led Q&A session on all things Microsoft Fabric!

March Fabric Community Update

Fabric Community Update - March 2024

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