<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Convert DAX query to SQL in DAX Commands and Tips</title>
    <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Convert-DAX-query-to-SQL/m-p/4027769#M159117</link>
    <description>&lt;P&gt;I used Apex Refactor to format the SQL.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;SELECT 
    [Number_of_Req] = COUNT([Req].[Number_of_Req])
FROM
    [Req]
    INNER JOIN [Date1] ON [Req].[Date1ID] = [Date1].[ID]
    INNER JOIN [Date2] ON [Req].[Date2ID] = [Date2].[ID]
    INNER JOIN [Time1] ON [Req].[Time1ID] = [Time1].[ID]
    INNER JOIN [Time2] ON [Req].[Time2ID] = [Time2].[ID]
    LEFT JOIN [Date3] ON [Req].[Date3ID] = [Date3].[ID]
    INNER JOIN [Date4] ON [Req].[Date4ID] = [Date4].[ID]
    LEFT JOIN [Time3] ON [Req].[Time3ID] = [Time3].[ID]
    INNER JOIN [Time4] ON [Req].[Time4ID] = [Time4].[ID]
WHERE 
    (
          [Date1].[ADate] &amp;lt; (SELECT MAX([Date2].[BDate]) FROM [Date2])
          OR
          (
              [Date1].[ADate] = (SELECT MAX([Date2].[BDate]) FROM [Date2])
              AND [Time1].[ATime] &amp;lt;= (SELECT MAX([Time2].[BTime]) FROM [Time2] )
          )
      )
      AND
      (
          (CASE
               WHEN [Date3].[CDate] IS NULL THEN
                   [Date4].[DDate]
               ELSE
                   [Date3].[CDate]
           END &amp;gt; (SELECT MIN([Date4].[DDate]) FROM [Date4] )
          )
          OR
          (
              CASE
                  WHEN [Date3].[CDate] IS NULL THEN
                      [Date4].[DDate]
                  ELSE
                      [Date3].[CDate]
              END = (SELECT MIN([Date4].[DDate]) FROM [Date4] )
              AND
              (
                  CASE
                      WHEN [Time3].[CTime] IS NULL THEN
                          [Time4].[DTime]
                      ELSE
                          [Time3].[CTime]
                  END &amp;gt;= (SELECT MIN([Time4].[DTime]) FROM [Time4] )
                  OR
                  (
                      [Time3].[CTime] IS NULL
                      AND [Time4].[DTime] IS NULL
                  )
              )
          )
      );&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;You could also use a CTE&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;WITH MaxDate2 AS (
    SELECT MAX([BDate]) AS MaxBDate FROM [Date2]
),
MaxTime2 AS (
    SELECT MAX([BTime]) AS MaxBTime FROM [Time2]
),
MinDate4 AS (
    SELECT MIN([DDate]) AS MinDDate FROM [Date4]
),
MinTime4 AS (
    SELECT MIN([DTime]) AS MinDTime FROM [Time4]
)
SELECT 
    COUNT([Req].[Number_of_Req]) AS [Number_of_Req]
FROM
    [Req]
    INNER JOIN [Date1] ON [Req].[Date1ID] = [Date1].[ID]
    INNER JOIN [Date2] ON [Req].[Date2ID] = [Date2].[ID]
    INNER JOIN [Time1] ON [Req].[Time1ID] = [Time1].[ID]
    INNER JOIN [Time2] ON [Req].[Time2ID] = [Time2].[ID]
    LEFT JOIN [Date3] ON [Req].[Date3ID] = [Date3].[ID]
    INNER JOIN [Date4] ON [Req].[Date4ID] = [Date4].[ID]
    LEFT JOIN [Time3] ON [Req].[Time3ID] = [Time3].[ID]
    INNER JOIN [Time4] ON [Req].[Time4ID] = [Time4].[ID]
WHERE 
    (
        [Date1].[ADate] &amp;lt; (SELECT MaxBDate FROM MaxDate2)
        OR
        (
            [Date1].[ADate] = (SELECT MaxBDate FROM MaxDate2)
            AND [Time1].[ATime] &amp;lt;= (SELECT MaxBTime FROM MaxTime2)
        )
    )
    AND
    (
        (
            ISNULL([Date3].[CDate], [Date4].[DDate]) &amp;gt; (SELECT MinDDate FROM MinDate4)
        )
        OR
        (
            ISNULL([Date3].[CDate], [Date4].[DDate]) = (SELECT MinDDate FROM MinDate4)
            AND
            (
                ISNULL([Time3].[CTime], [Time4].[DTime]) &amp;gt;= (SELECT MinDTime FROM MinTime4)
                OR
                (
                    [Time3].[CTime] IS NULL
                    AND [Time4].[DTime] IS NULL
                )
            )
        )
    );&lt;/LI-CODE&gt;&lt;P&gt;Can you accept my reply as a solution if it works for you?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Sat, 06 Jul 2024 03:20:29 GMT</pubDate>
    <dc:creator>aduguid</dc:creator>
    <dc:date>2024-07-06T03:20:29Z</dc:date>
    <item>
      <title>Convert DAX query to SQL</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Convert-DAX-query-to-SQL/m-p/4027758#M159115</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;Can anyne help me to convert the below DAX query to SQL to run it in SSMS?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN class=""&gt;CALCULATE('Req'[Number of Req],&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; FILTER(Req ((RELATED( 'Date1'[ADate])&amp;lt; LASTDATE('Date2'[BDate])&amp;nbsp; || (RELATED('Date1'[ADate])=LASTDATE('Date2'[BDate]) &amp;amp;&amp;amp; RELATED('Time1'[ATime])&amp;lt;=MAX('Time2'[BTime])))&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;SPAN class=""&gt;&amp;amp;&amp;amp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN class=""&gt;((IF(ISBLANK(RELATED('Date3'[CDate])),RELATED('Date4'[DDate]),RELATED('Date3'[CDate))&amp;gt; FIRSTDATE('Date4'[DDate])&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; || (IF(ISBLANK(RELATED('Date3'[CDate])),RELATED('Date4'[DDate]),RELATED(('Date3'[CDate]))=FIRSTDATE(('Date4'[DDate]) &amp;amp;&amp;amp; IF(ISBLANK(RELATED('Time3'[CTime])),RELATED('Time4'[DTime]),RELATED('Time3'[CTime])&amp;gt;=MIN('Time4'[DTime])))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; || (ISBLANK(RELATED('Time3'[CTime]))&lt;BR /&gt;&amp;amp;&amp;amp; ISBLANK(RELATED('Time4'[DTime]))))))))&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank You &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Sat, 06 Jul 2024 01:49:53 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Convert-DAX-query-to-SQL/m-p/4027758#M159115</guid>
      <dc:creator>Devi_AK</dc:creator>
      <dc:date>2024-07-06T01:49:53Z</dc:date>
    </item>
    <item>
      <title>Re: Convert DAX query to SQL</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Convert-DAX-query-to-SQL/m-p/4027769#M159117</link>
      <description>&lt;P&gt;I used Apex Refactor to format the SQL.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;SELECT 
    [Number_of_Req] = COUNT([Req].[Number_of_Req])
FROM
    [Req]
    INNER JOIN [Date1] ON [Req].[Date1ID] = [Date1].[ID]
    INNER JOIN [Date2] ON [Req].[Date2ID] = [Date2].[ID]
    INNER JOIN [Time1] ON [Req].[Time1ID] = [Time1].[ID]
    INNER JOIN [Time2] ON [Req].[Time2ID] = [Time2].[ID]
    LEFT JOIN [Date3] ON [Req].[Date3ID] = [Date3].[ID]
    INNER JOIN [Date4] ON [Req].[Date4ID] = [Date4].[ID]
    LEFT JOIN [Time3] ON [Req].[Time3ID] = [Time3].[ID]
    INNER JOIN [Time4] ON [Req].[Time4ID] = [Time4].[ID]
WHERE 
    (
          [Date1].[ADate] &amp;lt; (SELECT MAX([Date2].[BDate]) FROM [Date2])
          OR
          (
              [Date1].[ADate] = (SELECT MAX([Date2].[BDate]) FROM [Date2])
              AND [Time1].[ATime] &amp;lt;= (SELECT MAX([Time2].[BTime]) FROM [Time2] )
          )
      )
      AND
      (
          (CASE
               WHEN [Date3].[CDate] IS NULL THEN
                   [Date4].[DDate]
               ELSE
                   [Date3].[CDate]
           END &amp;gt; (SELECT MIN([Date4].[DDate]) FROM [Date4] )
          )
          OR
          (
              CASE
                  WHEN [Date3].[CDate] IS NULL THEN
                      [Date4].[DDate]
                  ELSE
                      [Date3].[CDate]
              END = (SELECT MIN([Date4].[DDate]) FROM [Date4] )
              AND
              (
                  CASE
                      WHEN [Time3].[CTime] IS NULL THEN
                          [Time4].[DTime]
                      ELSE
                          [Time3].[CTime]
                  END &amp;gt;= (SELECT MIN([Time4].[DTime]) FROM [Time4] )
                  OR
                  (
                      [Time3].[CTime] IS NULL
                      AND [Time4].[DTime] IS NULL
                  )
              )
          )
      );&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;You could also use a CTE&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;WITH MaxDate2 AS (
    SELECT MAX([BDate]) AS MaxBDate FROM [Date2]
),
MaxTime2 AS (
    SELECT MAX([BTime]) AS MaxBTime FROM [Time2]
),
MinDate4 AS (
    SELECT MIN([DDate]) AS MinDDate FROM [Date4]
),
MinTime4 AS (
    SELECT MIN([DTime]) AS MinDTime FROM [Time4]
)
SELECT 
    COUNT([Req].[Number_of_Req]) AS [Number_of_Req]
FROM
    [Req]
    INNER JOIN [Date1] ON [Req].[Date1ID] = [Date1].[ID]
    INNER JOIN [Date2] ON [Req].[Date2ID] = [Date2].[ID]
    INNER JOIN [Time1] ON [Req].[Time1ID] = [Time1].[ID]
    INNER JOIN [Time2] ON [Req].[Time2ID] = [Time2].[ID]
    LEFT JOIN [Date3] ON [Req].[Date3ID] = [Date3].[ID]
    INNER JOIN [Date4] ON [Req].[Date4ID] = [Date4].[ID]
    LEFT JOIN [Time3] ON [Req].[Time3ID] = [Time3].[ID]
    INNER JOIN [Time4] ON [Req].[Time4ID] = [Time4].[ID]
WHERE 
    (
        [Date1].[ADate] &amp;lt; (SELECT MaxBDate FROM MaxDate2)
        OR
        (
            [Date1].[ADate] = (SELECT MaxBDate FROM MaxDate2)
            AND [Time1].[ATime] &amp;lt;= (SELECT MaxBTime FROM MaxTime2)
        )
    )
    AND
    (
        (
            ISNULL([Date3].[CDate], [Date4].[DDate]) &amp;gt; (SELECT MinDDate FROM MinDate4)
        )
        OR
        (
            ISNULL([Date3].[CDate], [Date4].[DDate]) = (SELECT MinDDate FROM MinDate4)
            AND
            (
                ISNULL([Time3].[CTime], [Time4].[DTime]) &amp;gt;= (SELECT MinDTime FROM MinTime4)
                OR
                (
                    [Time3].[CTime] IS NULL
                    AND [Time4].[DTime] IS NULL
                )
            )
        )
    );&lt;/LI-CODE&gt;&lt;P&gt;Can you accept my reply as a solution if it works for you?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 06 Jul 2024 03:20:29 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Convert-DAX-query-to-SQL/m-p/4027769#M159117</guid>
      <dc:creator>aduguid</dc:creator>
      <dc:date>2024-07-06T03:20:29Z</dc:date>
    </item>
  </channel>
</rss>

