Forum Discussion

sonuojha1's avatar
sonuojha1
Helper IV
5 years ago
Solved

How to get data from Multiple Transaction (Fact ) tables!!

Hi All,   I need your expert advise on the requirement to fullfill . Could you please suggest how to achieve it.   I have a below requirement to get data from two transaction tables. Below is req...
  • Anonymous's avatar
    Anonymous
    5 years ago

    Hi sonuojha1 ,

    I updated your sample pbix file(see attachment), please check whether that is what you want.

    1. Delete the relationship base on employee number among Dim - Employee, Fact - Approved Course and Fact - Course Completed table

    2. Change the data type of employee number and course id with same data type among four tables

    3. Create a measure to judge whether the current course is approved or completed one

    Flag = 
    VAR _tab =
        CALCULATETABLE (
            VALUES ( 'Fact - Approved Course'[CourseID] ),
            FILTER (
                'Fact - Approved Course',
                'Fact - Approved Course'[Employee Number]
                    = SELECTEDVALUE ( 'Dim - Employee'[Employee Number] )
            )
        )
    VAR _tab2 =
        CALCULATETABLE (
            VALUES ( 'Fact - Course Completed'[CourseID] ),
            FILTER (
                'Fact - Course Completed',
                'Fact - Course Completed'[EmpID]
                    = SELECTEDVALUE ( 'Dim - Employee'[Employee Number] )
            )
        )
    RETURN
        IF (
            (
                SELECTEDVALUE ( 'Dim - Course'[CourseID] )
                    IN _tab
                        || SELECTEDVALUE ( 'Dim - Course'[CourseID] ) IN _tab2
            ),
            1,
            0
        )

    4. Create two measures as below to get the approved courses and completed%

    Approved Courses = 
    VAR _tab =
        CALCULATETABLE (
            VALUES ( 'Fact - Approved Course'[CourseID] ),
            FILTER (
                'Fact - Approved Course',
                'Fact - Approved Course'[Employee Number]
                    = SELECTEDVALUE ( 'Dim - Employee'[Employee Number] )
            )
        )
    RETURN
        IF (
            SELECTEDVALUE ( 'Dim - Course'[CourseID] ) IN _tab,
            SELECTEDVALUE ( 'Dim - Course'[CourseName] ),
            BLANK ()
        )
    Completed% = 
    CALCULATE (
        MAX ( 'Fact - Course Completed'[Complete %] ),
        FILTER (
            'Fact - Course Completed' ,
            'Fact - Course Completed'[EmpID]
                = SELECTEDVALUE ( 'Dim - Employee'[Employee Number] )
                && 'Fact - Course Completed'[CourseID] = SELECTEDVALUE ( 'Dim - Course'[CourseID] )
        )
    )

    Best Regards