Power BI Connector
Documentation
Version: 2
Documentation

EndPoint Execute a DAX query


Name

execute_dax_query

Description

Executes a DAX query on a Dataset in a default or specified Workspace. [API reference]

Parameters

Parameter Label Required Options Description
Query DAX query YES Your DAX Query. Examples: EVALUATE FILTER('MyTable',true) --OR-- more complex EVALUATE FILTER(''MyTable'', [SomeNameColumn] = "ZZZ" && ([SomeIdColumn] = 10643 || [SomeIdColumn] = 10952 ) )
DatasetId DatasetId NO
WorkspaceId WorkspaceId NO
Option Value
Default

Output Columns

Label Data Type (SSIS) Data Type (SQL) Length Raw Description
There are no Static columns defined for this endpoint. This endpoint detects columns dynamically at runtime.

Input Columns

Label Data Type (SSIS) Data Type (SQL) Length Raw Description
There are no Static columns defined for this endpoint. This endpoint detects columns dynamically at runtime.

Examples

SSIS

Use Power BI Connector in API Source component to read data or in API Destination component to read/write data:

Execute a DAX query using API Source

Power BI
Execute a DAX query
SSIS API Source - Read from table or endpoint

Execute a DAX query using API Destination

Power BI
Execute a DAX query
SSIS API Destination - Access table or endpoint

ODBC application

Use these SQL queries in your ODBC application data source:

Execute a DAX query - Evaluating a Table

SELECT * 
FROM execute_dax_query
WITH (Query='EVALUATE ''MyTable''')

-- More info on 'EVALUATE' statement and DAX queries:
-- https://dax.guide/st/evaluate/
-- https://learn.microsoft.com/en-us/dax/dax-queries
-- https://learn.microsoft.com/en-us/dax/filter-functions-dax
-- https://learn.microsoft.com/en-us/dax/dax-syntax-reference

Execute a DAX query - Using FILTER function with simple expression

SELECT * 
FROM execute_dax_query 
WITH (Query='EVALUATE FILTER(''MyTable'', [MyColumn] = "MyValue"')

-- More info on 'EVALUATE' statement and DAX queries:
-- https://dax.guide/st/evaluate/
-- https://dax.guide/filter/
-- https://dax.guide/operators/
-- https://learn.microsoft.com/en-us/dax/dax-queries
-- https://learn.microsoft.com/en-us/dax/dax-syntax-reference

Execute a DAX query - Using FILTER function with AND and OR operators

SELECT * 
FROM execute_dax_query 
WITH (Query='EVALUATE FILTER(''MyTable'', [MyColumn1] = "MyValue" && ([MyColumn2] > 0 || [MyColumn3] <= 1000))')

-- More info on 'EVALUATE' statement and DAX queries:
-- https://dax.guide/operators/
-- https://learn.microsoft.com/en-us/dax/dax-queries
-- https://learn.microsoft.com/en-us/dax/dax-syntax-reference

Execute a DAX query - Selecting specific columns from a Table

SELECT * 
FROM execute_dax_query
WITH (Query='EVALUATE 
             SELECTCOLUMNS (
                ''MyTable'',
                "MyColumn1 alias", [MyColumn1],
                "MyColumn2 alias", [MyColumn2]
             )
             ORDER BY "MyColumn2 alias"'
    )
    
-- More info on 'EVALUATE' statement and DAX queries:
-- https://dax.guide/st/evaluate/
-- https://dax.guide/selectcolumns/   
-- https://learn.microsoft.com/en-us/dax/dax-queries
-- https://learn.microsoft.com/en-us/dax/dax-syntax-reference

Execute a DAX query - Selecting and sorting TOP N rows

SELECT * 
FROM execute_dax_query
WITH (Query='EVALUATE 
             TOPN(1000, ''MyTable'', [MyColumnOrExpression], ASC)')

-- More info on 'EVALUATE' statement and DAX queries:
-- https://dax.guide/st/evaluate/
-- https://dax.guide/topn/
-- https://learn.microsoft.com/en-us/dax/dax-queries
-- https://learn.microsoft.com/en-us/dax/dax-syntax-reference

Execute a DAX query - A complicated query

SELECT * 
FROM execute_dax_query
WITH (Query='
DEFINE
    VAR MinimumAmount = 2000000
    VAR MaximumAmount = 8000000
EVALUATE
FILTER (
    ADDCOLUMNS (
        SUMMARIZE (Sales, Products[Category]),
        "CategoryAmount", [Sales Amount]
    ),
    AND (
        [CategoryAmount] <= MinimumAmount,
        [CategoryAmount] >= MaximumAmount
    )
)
ORDER BY [CategoryAmount]"')

-- More info on 'EVALUATE' statement and DAX queries:
-- https://dax.guide/st/evaluate/
-- https://dax.guide/addcolumns/
-- https://dax.guide/summarize/
-- https://dax.guide/st/order-by/
-- https://learn.microsoft.com/en-us/dax/dax-queries
-- https://learn.microsoft.com/en-us/dax/filter-functions-dax
-- https://learn.microsoft.com/en-us/dax/dax-syntax-reference

SQL Server

Use these SQL queries in SQL Server after you create a data source in Data Gateway:

Execute a DAX query - Evaluating a Table

DECLARE @MyQuery NVARCHAR(MAX) = 'SELECT * 
FROM execute_dax_query
WITH (Query=''EVALUATE ''''MyTable'''''')

-- More info on ''EVALUATE'' statement and DAX queries:
-- https://dax.guide/st/evaluate/
-- https://learn.microsoft.com/en-us/dax/dax-queries
-- https://learn.microsoft.com/en-us/dax/filter-functions-dax
-- https://learn.microsoft.com/en-us/dax/dax-syntax-reference';

EXEC (@MyQuery) AT [LINKED_SERVER_TO_POWER_BI_IN_DATA_GATEWAY];

Execute a DAX query - Using FILTER function with simple expression

DECLARE @MyQuery NVARCHAR(MAX) = 'SELECT * 
FROM execute_dax_query 
WITH (Query=''EVALUATE FILTER(''''MyTable'''', [MyColumn] = "MyValue"'')

-- More info on ''EVALUATE'' statement and DAX queries:
-- https://dax.guide/st/evaluate/
-- https://dax.guide/filter/
-- https://dax.guide/operators/
-- https://learn.microsoft.com/en-us/dax/dax-queries
-- https://learn.microsoft.com/en-us/dax/dax-syntax-reference';

EXEC (@MyQuery) AT [LINKED_SERVER_TO_POWER_BI_IN_DATA_GATEWAY];

Execute a DAX query - Using FILTER function with AND and OR operators

DECLARE @MyQuery NVARCHAR(MAX) = 'SELECT * 
FROM execute_dax_query 
WITH (Query=''EVALUATE FILTER(''''MyTable'''', [MyColumn1] = "MyValue" && ([MyColumn2] > 0 || [MyColumn3] <= 1000))'')

-- More info on ''EVALUATE'' statement and DAX queries:
-- https://dax.guide/operators/
-- https://learn.microsoft.com/en-us/dax/dax-queries
-- https://learn.microsoft.com/en-us/dax/dax-syntax-reference';

EXEC (@MyQuery) AT [LINKED_SERVER_TO_POWER_BI_IN_DATA_GATEWAY];

Execute a DAX query - Selecting specific columns from a Table

DECLARE @MyQuery NVARCHAR(MAX) = 'SELECT * 
FROM execute_dax_query
WITH (Query=''EVALUATE 
             SELECTCOLUMNS (
                ''''MyTable'''',
                "MyColumn1 alias", [MyColumn1],
                "MyColumn2 alias", [MyColumn2]
             )
             ORDER BY "MyColumn2 alias"''
    )
    
-- More info on ''EVALUATE'' statement and DAX queries:
-- https://dax.guide/st/evaluate/
-- https://dax.guide/selectcolumns/   
-- https://learn.microsoft.com/en-us/dax/dax-queries
-- https://learn.microsoft.com/en-us/dax/dax-syntax-reference';

EXEC (@MyQuery) AT [LINKED_SERVER_TO_POWER_BI_IN_DATA_GATEWAY];

Execute a DAX query - Selecting and sorting TOP N rows

DECLARE @MyQuery NVARCHAR(MAX) = 'SELECT * 
FROM execute_dax_query
WITH (Query=''EVALUATE 
             TOPN(1000, ''''MyTable'''', [MyColumnOrExpression], ASC)'')

-- More info on ''EVALUATE'' statement and DAX queries:
-- https://dax.guide/st/evaluate/
-- https://dax.guide/topn/
-- https://learn.microsoft.com/en-us/dax/dax-queries
-- https://learn.microsoft.com/en-us/dax/dax-syntax-reference';

EXEC (@MyQuery) AT [LINKED_SERVER_TO_POWER_BI_IN_DATA_GATEWAY];

Execute a DAX query - A complicated query

DECLARE @MyQuery NVARCHAR(MAX) = 'SELECT * 
FROM execute_dax_query
WITH (Query=''
DEFINE
    VAR MinimumAmount = 2000000
    VAR MaximumAmount = 8000000
EVALUATE
FILTER (
    ADDCOLUMNS (
        SUMMARIZE (Sales, Products[Category]),
        "CategoryAmount", [Sales Amount]
    ),
    AND (
        [CategoryAmount] <= MinimumAmount,
        [CategoryAmount] >= MaximumAmount
    )
)
ORDER BY [CategoryAmount]"'')

-- More info on ''EVALUATE'' statement and DAX queries:
-- https://dax.guide/st/evaluate/
-- https://dax.guide/addcolumns/
-- https://dax.guide/summarize/
-- https://dax.guide/st/order-by/
-- https://learn.microsoft.com/en-us/dax/dax-queries
-- https://learn.microsoft.com/en-us/dax/filter-functions-dax
-- https://learn.microsoft.com/en-us/dax/dax-syntax-reference';

EXEC (@MyQuery) AT [LINKED_SERVER_TO_POWER_BI_IN_DATA_GATEWAY];