<?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 Calculation errors when using nested SUMX vs. naturalleftouterjoin in DAX Commands and Tips</title>
    <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Calculation-errors-when-using-nested-SUMX-vs/m-p/1964044#M43047</link>
    <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;Sorry for long post but I am trying to build up my dax knowledge by really focusing on row context and iterator functions. As I was trying to replicate the virtual tables that are created when using nested iterator functions I came across some interesting discrepancies which hopefully someone can help me understand.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Please note that these queries are meaningless and I know there are more efficient ways to write these queries. I am focused on why combining different tables (but not changing the rows, filter context, context transition,etc) different results (only off on the rounding).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am using the Adventure Works 2020 model for my data and I start with the following query in DAX Guide:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;EVALUATE&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;format(&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SUMX (&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;customer,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SUMX (&lt;/P&gt;&lt;P&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;RELATEDTABLE ( sales ),&lt;/P&gt;&lt;P&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;SUMX (&lt;/P&gt;&lt;P&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;&amp;nbsp;RELATEDTABLE ( 'Product' ),&lt;/P&gt;&lt;P&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;&amp;nbsp;'Product'[list price] * Sales[Unit Price] * sales[Order Quantity]&lt;/P&gt;&lt;P&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;)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;),"$#,##0.00000")&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Dax Guide Result: $209,586,475,652.&lt;STRONG&gt;&lt;U&gt;57000&lt;/U&gt; (emphasis added by me)&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;When I look at the Vertipaq try to see how these nested sumx tables are being formed, I see the below:&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;SET DC_KIND="AUTO";&lt;/P&gt;&lt;P&gt;SELECT&lt;/P&gt;&lt;P&gt;'Customer'[CustomerKey], 'Product'[ProductKey], 'Internet Sales'[Order Quantity], 'Internet Sales'[Unit Price]&lt;/P&gt;&lt;P&gt;FROM 'Internet Sales'&lt;/P&gt;&lt;P&gt;LEFT OUTER JOIN 'Customer' ON 'Internet Sales'[CustomerKey]='Customer'[CustomerKey]&lt;/P&gt;&lt;P&gt;LEFT OUTER JOIN 'Product' ON 'Internet Sales'[ProductKey]='Product'[ProductKey];&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Based on my limited understanding, I&amp;nbsp; used the NATURALLEFTOUTERJOIN() function to try visualize the table. I created the below query in DAX Guide and Excel (using the tabular services trick to connect to Power BI then use the pivot table to create a table and then insert the DAX into the table).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;EVALUATE&lt;/P&gt;&lt;P&gt;NATURALLEFTOUTERJOIN(&lt;/P&gt;&lt;P&gt;NATURALLEFTOUTERJOIN(customer,sales),'Product')&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Checking the vertipaq enging I see it performs the similar left outerjoin as the original sumx query (see below).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;LEFT OUTER JOIN 'Customer' ON 'Internet Sales'[CustomerKey]='Customer'[CustomerKey]&lt;/P&gt;&lt;P&gt;LEFT OUTER JOIN 'Product' ON 'Internet Sales'[ProductKey]='Product'[ProductKey];&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;However, when I try to validate the result of the original sumx function by either either manually multipling and sum up the columns&amp;nbsp; or applying sumx function to that newly created table, I get a different answer:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Query 1:Dax Guide Result: $209,586,475,652.53600&lt;/P&gt;&lt;P&gt;Query 1: Excel Result: $209,586,475,652.&lt;U&gt;&lt;STRONG&gt;53600&lt;/STRONG&gt;&lt;/U&gt;&lt;/P&gt;&lt;P&gt;Original SUMX Result:$209,586,475,652.&lt;EM&gt;&lt;STRONG&gt;57000&lt;/STRONG&gt;&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;Variance between original SUMX result and Query 1: ($0.03366)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I know the variance is small, but I'm totally confused why I have one?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;When I try to further simplify the query and remove the customer table as its not really doing anything other than confusing things, unfortunately things get a bit more confusing. For example:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;EVALUATE&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;format(&lt;/P&gt;&lt;P&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;&amp;nbsp;&amp;nbsp;SUMX (&lt;/P&gt;&lt;P&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;'Product',&lt;/P&gt;&lt;P&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;SUMX (&lt;/P&gt;&lt;P&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;&amp;nbsp;RELATEDTABLE ( Sales),&lt;/P&gt;&lt;P&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;&amp;nbsp;'Product'[list price] * Sales[Unit Price] * sales[Order Quantity]&lt;/P&gt;&lt;P&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;)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;,"$#,##0.00000")&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Result= $209,586,475,652.&lt;U&gt;&lt;STRONG&gt;56900&lt;/STRONG&gt;&lt;/U&gt;&lt;/P&gt;&lt;P&gt;Original SUMX Result:$209,586,475,652.&lt;U&gt;&lt;STRONG&gt;57000&lt;/STRONG&gt;&lt;/U&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;And if I switch the order of the tables (Product and Sales)&lt;/P&gt;&lt;P&gt;EVALUATE&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;format(&lt;/P&gt;&lt;P&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;&amp;nbsp;&amp;nbsp;SUMX (&lt;/P&gt;&lt;P&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;Sales,&lt;/P&gt;&lt;P&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;SUMX (&lt;/P&gt;&lt;P&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;&amp;nbsp;RELATEDTABLE ( 'Product'),&lt;/P&gt;&lt;P&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;&amp;nbsp;'Product'[list price] * Sales[Unit Price] * sales[Order Quantity]&lt;/P&gt;&lt;P&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;)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;,"$#,##0.00000")&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Result :$209,586,475,652.57000&lt;/P&gt;&lt;P&gt;Original SUMX Result:$209,586,475,652.57000&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Similar to above, when I try to visualize the two tables using the naturalleftouterjoin I get a different result from both the 3 table query or the original sumx query&lt;/P&gt;&lt;P&gt;EVALUATE&lt;/P&gt;&lt;P&gt;NATURALLEFTOUTERJOIN&amp;nbsp;&amp;nbsp;(Sales,'Product'&amp;nbsp;)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Dax Guide Result: $209,586,475,652.&lt;U&gt;&lt;STRONG&gt;49300&lt;/STRONG&gt;&lt;/U&gt;&lt;/P&gt;&lt;P&gt;Excel Result: $209,586,475,652.49300&lt;/P&gt;&lt;P&gt;Original SUMX Result:$209,586,475,652.&lt;EM&gt;&lt;STRONG&gt;57000&lt;/STRONG&gt;&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;And if I switch the order of the tables&lt;/P&gt;&lt;P&gt;EVALUATE&lt;/P&gt;&lt;P&gt;NATURALLEFTOUTERJOIN(sales,'Product')&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;Excel: 209,586,475,652.&lt;U&gt;&lt;STRONG&gt;43800&lt;/STRONG&gt;&lt;/U&gt;&lt;/P&gt;&lt;P&gt;DAX Editor:$209,586,475,652.43800&lt;/P&gt;&lt;P&gt;Original SUMX Result:$209,586,475,652.&lt;U&gt;&lt;STRONG&gt;57000&lt;/STRONG&gt;&lt;/U&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I do notice something odd in dax studio when I hover over certain values, I see some extra decimals that I guess could add up over many rows to produce the extra rounding impacts:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;For example, a value that shows as 3.14646 changes to 3.&lt;U&gt;&lt;STRONG&gt;146460000000003&lt;/STRONG&gt;&lt;/U&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;While I recognize it is a small variance, I'm still interested why there is any variance at all? Does the sumx have a rounding limitation / logic? Or does the naturalleftouterjoin() somehow add extensions to numbers which then changes the overall number? Also why does the table order and number of the joins change the results when the rows (with the relevant data) remain the same?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Hoping someone knows the right answer &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;</description>
    <pubDate>Sun, 18 Jul 2021 16:04:05 GMT</pubDate>
    <dc:creator>haganistic</dc:creator>
    <dc:date>2021-07-18T16:04:05Z</dc:date>
    <item>
      <title>Calculation errors when using nested SUMX vs. naturalleftouterjoin</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Calculation-errors-when-using-nested-SUMX-vs/m-p/1964044#M43047</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;Sorry for long post but I am trying to build up my dax knowledge by really focusing on row context and iterator functions. As I was trying to replicate the virtual tables that are created when using nested iterator functions I came across some interesting discrepancies which hopefully someone can help me understand.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Please note that these queries are meaningless and I know there are more efficient ways to write these queries. I am focused on why combining different tables (but not changing the rows, filter context, context transition,etc) different results (only off on the rounding).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am using the Adventure Works 2020 model for my data and I start with the following query in DAX Guide:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;EVALUATE&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;format(&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SUMX (&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;customer,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SUMX (&lt;/P&gt;&lt;P&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;RELATEDTABLE ( sales ),&lt;/P&gt;&lt;P&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;SUMX (&lt;/P&gt;&lt;P&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;&amp;nbsp;RELATEDTABLE ( 'Product' ),&lt;/P&gt;&lt;P&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;&amp;nbsp;'Product'[list price] * Sales[Unit Price] * sales[Order Quantity]&lt;/P&gt;&lt;P&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;)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;),"$#,##0.00000")&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Dax Guide Result: $209,586,475,652.&lt;STRONG&gt;&lt;U&gt;57000&lt;/U&gt; (emphasis added by me)&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;When I look at the Vertipaq try to see how these nested sumx tables are being formed, I see the below:&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;SET DC_KIND="AUTO";&lt;/P&gt;&lt;P&gt;SELECT&lt;/P&gt;&lt;P&gt;'Customer'[CustomerKey], 'Product'[ProductKey], 'Internet Sales'[Order Quantity], 'Internet Sales'[Unit Price]&lt;/P&gt;&lt;P&gt;FROM 'Internet Sales'&lt;/P&gt;&lt;P&gt;LEFT OUTER JOIN 'Customer' ON 'Internet Sales'[CustomerKey]='Customer'[CustomerKey]&lt;/P&gt;&lt;P&gt;LEFT OUTER JOIN 'Product' ON 'Internet Sales'[ProductKey]='Product'[ProductKey];&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Based on my limited understanding, I&amp;nbsp; used the NATURALLEFTOUTERJOIN() function to try visualize the table. I created the below query in DAX Guide and Excel (using the tabular services trick to connect to Power BI then use the pivot table to create a table and then insert the DAX into the table).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;EVALUATE&lt;/P&gt;&lt;P&gt;NATURALLEFTOUTERJOIN(&lt;/P&gt;&lt;P&gt;NATURALLEFTOUTERJOIN(customer,sales),'Product')&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Checking the vertipaq enging I see it performs the similar left outerjoin as the original sumx query (see below).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;LEFT OUTER JOIN 'Customer' ON 'Internet Sales'[CustomerKey]='Customer'[CustomerKey]&lt;/P&gt;&lt;P&gt;LEFT OUTER JOIN 'Product' ON 'Internet Sales'[ProductKey]='Product'[ProductKey];&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;However, when I try to validate the result of the original sumx function by either either manually multipling and sum up the columns&amp;nbsp; or applying sumx function to that newly created table, I get a different answer:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Query 1:Dax Guide Result: $209,586,475,652.53600&lt;/P&gt;&lt;P&gt;Query 1: Excel Result: $209,586,475,652.&lt;U&gt;&lt;STRONG&gt;53600&lt;/STRONG&gt;&lt;/U&gt;&lt;/P&gt;&lt;P&gt;Original SUMX Result:$209,586,475,652.&lt;EM&gt;&lt;STRONG&gt;57000&lt;/STRONG&gt;&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;Variance between original SUMX result and Query 1: ($0.03366)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I know the variance is small, but I'm totally confused why I have one?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;When I try to further simplify the query and remove the customer table as its not really doing anything other than confusing things, unfortunately things get a bit more confusing. For example:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;EVALUATE&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;format(&lt;/P&gt;&lt;P&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;&amp;nbsp;&amp;nbsp;SUMX (&lt;/P&gt;&lt;P&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;'Product',&lt;/P&gt;&lt;P&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;SUMX (&lt;/P&gt;&lt;P&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;&amp;nbsp;RELATEDTABLE ( Sales),&lt;/P&gt;&lt;P&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;&amp;nbsp;'Product'[list price] * Sales[Unit Price] * sales[Order Quantity]&lt;/P&gt;&lt;P&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;)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;,"$#,##0.00000")&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Result= $209,586,475,652.&lt;U&gt;&lt;STRONG&gt;56900&lt;/STRONG&gt;&lt;/U&gt;&lt;/P&gt;&lt;P&gt;Original SUMX Result:$209,586,475,652.&lt;U&gt;&lt;STRONG&gt;57000&lt;/STRONG&gt;&lt;/U&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;And if I switch the order of the tables (Product and Sales)&lt;/P&gt;&lt;P&gt;EVALUATE&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;format(&lt;/P&gt;&lt;P&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;&amp;nbsp;&amp;nbsp;SUMX (&lt;/P&gt;&lt;P&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;Sales,&lt;/P&gt;&lt;P&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;SUMX (&lt;/P&gt;&lt;P&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;&amp;nbsp;RELATEDTABLE ( 'Product'),&lt;/P&gt;&lt;P&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;&amp;nbsp;'Product'[list price] * Sales[Unit Price] * sales[Order Quantity]&lt;/P&gt;&lt;P&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;)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;,"$#,##0.00000")&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Result :$209,586,475,652.57000&lt;/P&gt;&lt;P&gt;Original SUMX Result:$209,586,475,652.57000&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Similar to above, when I try to visualize the two tables using the naturalleftouterjoin I get a different result from both the 3 table query or the original sumx query&lt;/P&gt;&lt;P&gt;EVALUATE&lt;/P&gt;&lt;P&gt;NATURALLEFTOUTERJOIN&amp;nbsp;&amp;nbsp;(Sales,'Product'&amp;nbsp;)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Dax Guide Result: $209,586,475,652.&lt;U&gt;&lt;STRONG&gt;49300&lt;/STRONG&gt;&lt;/U&gt;&lt;/P&gt;&lt;P&gt;Excel Result: $209,586,475,652.49300&lt;/P&gt;&lt;P&gt;Original SUMX Result:$209,586,475,652.&lt;EM&gt;&lt;STRONG&gt;57000&lt;/STRONG&gt;&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;And if I switch the order of the tables&lt;/P&gt;&lt;P&gt;EVALUATE&lt;/P&gt;&lt;P&gt;NATURALLEFTOUTERJOIN(sales,'Product')&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;Excel: 209,586,475,652.&lt;U&gt;&lt;STRONG&gt;43800&lt;/STRONG&gt;&lt;/U&gt;&lt;/P&gt;&lt;P&gt;DAX Editor:$209,586,475,652.43800&lt;/P&gt;&lt;P&gt;Original SUMX Result:$209,586,475,652.&lt;U&gt;&lt;STRONG&gt;57000&lt;/STRONG&gt;&lt;/U&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I do notice something odd in dax studio when I hover over certain values, I see some extra decimals that I guess could add up over many rows to produce the extra rounding impacts:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;For example, a value that shows as 3.14646 changes to 3.&lt;U&gt;&lt;STRONG&gt;146460000000003&lt;/STRONG&gt;&lt;/U&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;While I recognize it is a small variance, I'm still interested why there is any variance at all? Does the sumx have a rounding limitation / logic? Or does the naturalleftouterjoin() somehow add extensions to numbers which then changes the overall number? Also why does the table order and number of the joins change the results when the rows (with the relevant data) remain the same?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Hoping someone knows the right answer &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Sun, 18 Jul 2021 16:04:05 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Calculation-errors-when-using-nested-SUMX-vs/m-p/1964044#M43047</guid>
      <dc:creator>haganistic</dc:creator>
      <dc:date>2021-07-18T16:04:05Z</dc:date>
    </item>
    <item>
      <title>Re: Calculation errors when using nested SUMX vs. naturalleftouterjoin</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Calculation-errors-when-using-nested-SUMX-vs/m-p/1969087#M43213</link>
      <description>&lt;P&gt;Small differences add up and you're dealing with imprecise numbers - floats. That's normal.&lt;/P&gt;</description>
      <pubDate>Tue, 20 Jul 2021 20:00:52 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Calculation-errors-when-using-nested-SUMX-vs/m-p/1969087#M43213</guid>
      <dc:creator>daxer-almighty</dc:creator>
      <dc:date>2021-07-20T20:00:52Z</dc:date>
    </item>
    <item>
      <title>Re: Calculation errors when using nested SUMX vs. naturalleftouterjoin</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Calculation-errors-when-using-nested-SUMX-vs/m-p/1970674#M43279</link>
      <description>&lt;P&gt;Hi Daxter, thank you for the perspective and reference. Is there a way to ensure we deal with only precise numbers without floats?&lt;/P&gt;</description>
      <pubDate>Wed, 21 Jul 2021 14:02:11 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Calculation-errors-when-using-nested-SUMX-vs/m-p/1970674#M43279</guid>
      <dc:creator>haganistic</dc:creator>
      <dc:date>2021-07-21T14:02:11Z</dc:date>
    </item>
    <item>
      <title>Re: Calculation errors when using nested SUMX vs. naturalleftouterjoin</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Calculation-errors-when-using-nested-SUMX-vs/m-p/1971266#M43322</link>
      <description>&lt;P&gt;You can use the currency type (4 decimal places) but if you divide one number by another you'll still be dealing with rounding.&lt;/P&gt;</description>
      <pubDate>Wed, 21 Jul 2021 19:56:40 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Calculation-errors-when-using-nested-SUMX-vs/m-p/1971266#M43322</guid>
      <dc:creator>daxer-almighty</dc:creator>
      <dc:date>2021-07-21T19:56:40Z</dc:date>
    </item>
  </channel>
</rss>

