Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
8 years ago
Solved

Direct Query and Time Intelligence functions

Hi,

 

Power BI has very powerful Time Intelligence capabilities.  

 

However, they seem not to be applicable when using a direct query.

 

Am I missing something big?

 

What is the alternative to the Time Intelligence functions when using Direct Query?

 

Thank you

Tamir

5 Replies

  • Hi Tamir, 

     

    The time intelligence takes a toll when connecting to direct query. 

    If you are expecting the date hierarchy in specific , you would have to create it for yourself by making columns [year], [quarter],[month],[date] and then use them to create a hierarchy.

     

    You can get the modelling and reporting limitaions for direct query connection in 

    https://docs.microsoft.com/en-us/power-bi/desktop-directquery-about

     

    Regards,

    Praisely

  • v-yuta-msft's avatar
    v-yuta-msft
    Community Support

    Hi Tamir,

     

    Yes, in direct query mode, time intelligence function are not available, please refer to the documentation: https://docs.microsoft.com/en-us/sql/analysis-services/tabular-models/dax-formula-compatibility-in-directquery-mode-ssas-2016?view=sql-server-2017. The alternative ways depend on your specific senario, so if you want to achieve some result using time intelligence, please share sample data and expected result.

     

    Regards,

    Jimmy Tao

  • Hey Tamir,

     

    basically the build-in Time Intelligence functions are syntax sugar for a combination of other DAX functions.

     

    Here you will find a lot of examples how to rewrite these build-in functions:

    https://www.daxpatterns.com/time-patterns/

     

    Regards,

    Tom 

  • Anonymous's avatar
    Anonymous
    Not applicable

    Hi there,

     

    I was facing the same problem and I came up with the following code as a work around.  These scripts calculate measures such as month over month (MoM) and year over year (YoY).

     

    Last Years Amount

    Amount_LY = 
        CALCULATE(
            [AMOUNT],EXPENSES[DATE_YEAR] = VALUES(EXPENSES[DATE_YEAR])-1)

    Last Months Amount

    Amount_LM = 
        IF( (VALUES(EXPENSES[DATE_MONTH])-1) =0,
            CALCULATE(
                [AMOUNT],
                EXPENSES[DATE_YEAR] = (VALUES(EXPENSES[DATE_YEAR])-1),
                EXPENSES[DATE_MONTH] = 12
            ),
            CALCULATE(
                [AMOUNT],
                EXPENSES[DATE_YEAR] = (VALUES(EXPENSES[DATE_YEAR])-0),
                EXPENSES[DATE_MONTH] = (VALUES(EXPENSES[DATE_MONTH])-1)
            )
        )

    You can use these basic calculations to derive measures like growth rates and differences.  As you can see in the 'Last Month Amount' code, you will have to get creative at times to replicate the time intelligence based calculations.

     

    I hope this helps,

    Eric

     


    Anonymous wrote:

    Hi,

     

    Power BI has very powerful Time Intelligence capabilities.  

     

    However, they seem not to be applicable when using a direct query.

     

    Am I missing something big?

     

    What is the alternative to the Time Intelligence functions when using Direct Query?

     

    Thank you

    Tamir


     

  • From msft docs:  No built-in date hierarchy: When importing data, every date/datetime column will also have a built-in date hierarchy available by default. For example, if importing a table of sales orders including a column OrderDate, then upon using OrderDate in a visual, it will be possible to choose the appropriate level (year, month, day) to use. This built-in date hierarchy isn't available when using DirectQuery. If there's a Date table available in the underlying source, as is common in many data warehouses, then the DAX Time Intelligence functions can be used as normal.