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

Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.

Reply
Default8129
Frequent Visitor

1-many relationship filtering problem

I have the following data model:

StudentTable - one row per student

StudentIDGraduated?StartTermEndTerm
5Y21/FL22/SP
6N22/FL23/WN

 

StudentTermTable - one row per term enrollment for each student

StudentIDTermTerm Order (calculated column)FTEProgram
521/FLStart Term

1.2

Nursing
522/WN 1.2Nursing
522/SPEnd Term0.5Nursing
622/FLStart Term1.0Education
623/WNEnd Term1.0Accounting

 

With the relationship between these tables being 1-many based on the StudentID. There are also fact tables for Term, FTE, and Program. I actually have many fields in the StudentTermTable, all with their own fact tables, but this is a small sample of the information.


What I'd like users to be able to do is, for example, filter the report to show data only for our students who started full-time (FTE >= 1) and ended part-time-time (FTE < 1). So here I'd want to include student #5 (their starting term 21/FL enrollment was full-time and their ending term 22/SP enrollment was part-time), but I'd want to exclude student #6 (starting term 22/FL enrollment was full-time but their ending term 23/WN enrollment was also full-time). There are many fields in StudentTermTable that users might want to use to filter both the start term and end term: campus, athletic teams, campus organizations, housing status, various financial aid data, etc. so I need to give them the flexibility to filter both the start term records and end term records by all these term-specific fields.


I can't figure out what to do so that the report allows users to easily filter this way without making major changes to my data model. Currently the only solutions I can find basically require me to completely re-work StudentTermTable which is already very large (600,000 rows) and has many fact tables associated to it.


I could pivot my StudentTermTable so I have a StudentTermTable (StartTerm) and StudentTermTable (EndTerm). I could create compound fact tables (e.g. permutation of {"Start Term","End Term"} with each fact table) but then I'd basically double the size of my StudentTermTable table with these compound data fields. Neither of these seem elegant nor efficient to me.


Is there a good solution to this need?

2 REPLIES 2
guibenassi
Advocate II
Advocate II

I would recommend you to use measures that calculate count of students and filter all Date after Min(date) and all Date before Max(date) in segmentation.

 

How would that solve this issue? If by "date" you're referring to the Terms then your solution would only work if I didn't need to additionally filter my students by the data fields attached to their terms.

Helpful resources

Announcements
RTI Forums Carousel3

New forum boards available in Real-Time Intelligence.

Ask questions in Eventhouse and KQL, Eventstream, and Reflex.

MayPowerBICarousel

Fabric Monthly Update - May 2024

Check out the May 2024 Fabric update to learn about new features.

LearnSurvey

Fabric certifications survey

Certification feedback opportunity for the community.