Forum Discussion

pavithrarajan's avatar
pavithrarajan
Frequent Visitor
1 year ago

How to convert this sql query to DAX

How to convert this sql query to DAX in a measure

Select value from KPI A
where period in (
    select B.period from 
Time B  join   period C 
on B.period=c.Period
where b.quater >= c.quater-1 and  b.quater <= c.quater-5

5 Replies

  • Kaviraj11's avatar
    Kaviraj11
    Solution Sage

    Try this -

    Measure = 
    CALCULATE(
        SUM('KPI A'[value]),
        FILTER(
            'KPI A',
            'KPI A'[period] IN 
            SELECTCOLUMNS(
                FILTER(
                    CROSSJOIN('Time', 'period'),
                    'Time'[period] = 'period'[Period] &&
                    'Time'[quarter] >= 'period'[quarter] - 1 &&
                    'Time'[quarter] <= 'period'[quarter] - 5
                ),
                "period", 'Time'[period]
            )
        )
    )
  • pavithrarajan 

    DAX measure:

    Selected Value = 
    VAR CurrentQuarter = MAX('Period'[Quarter])
    VAR FilteredPeriods =
    FILTER(
    ALL('Time'),
    'Time'[Quarter] >= CurrentQuarter - 5 &&
    'Time'[Quarter] <= CurrentQuarter - 1
    )
    RETURN
    CALCULATE(
    MAX('KPI A'[Value]),
    'KPI A'[Period] IN DISTINCT(SELECTCOLUMNS(FilteredPeriods, "Period", 'Time'[Period]))
    )

    πŸ’Œ If this helped, a Kudos πŸ‘ or Solution mark βœ… would be great! πŸŽ‰
    Cheers,
    Kedar
    Connect on LinkedIn