Companion contentInsert your email address and press Download for access to the files used in this book.
To ensure the ongoing accuracy of this book and its companion content, we have reviewed and confirmed the errors listed below. If you find a new oversight, please report it to us.
Page 40: Fact table instead of dimension
Replace “dimension” with “fact table” in the second-last paragraph in the page. It should be:
In the previous example, you learned the basics of multiple fact table handling. There, you had two over-denormalized fact tables and, to make the model a better one, you had to revert to a simpler star schema. In this next example, we analyze a different scenario, again using Sales and Purchases.
Page 79: Date in Figure 4-31
In Figure 4-31 the date for the first row (Easter 2009) should be April 12, 2009 (it is now December 4, 2009).
Page 94: Incorrect reference to Customer table instead of Sales table.
The paragraph after Figure 5-4 references the Customer table, but it should reference the Sales table instead.
The correct paragraph is:
The scenario suddenly becomes much more complex, but there are multiple ways to manage this. In this chapter, we will show a few of them that help in building an analytical report that can track who the manager was at the time of the sale. Imagine the model has already been created by the IT department managing the data warehouse and submitted to you. If done correctly, the Sales table you receive will contain the following two columns:
Page 191: Inverted arguments in TREATAS function
The code in the page has inverted arguments for TREATAS.
The following code:
Budget 2009 := CALCULATE ( SUM ( Budget[Budget] ), TREATAS ( VALUES ( Budget[Brand] ), 'Product'[Brand] ), TREATAS ( VALUES ( Budget[CountryRegion] ), Store[CountryRegion] ) )
Must be fixed to:
Budget 2009 := CALCULATE ( SUM ( Budget[Budget] ), TREATAS ( VALUES ( 'Product'[Brand] ), Budget[Brand] ), TREATAS ( VALUES ( Store[CountryRegion] ), Budget[CountryRegion] ) )
Page 193: Code error, ISBLANK should be used instead of ISEMPTY
The right code of the PriceRange calculated column is the following:
Sales[PriceRange] = VAR ResultValue = CALCULATE ( IFERROR ( VALUES ( PriceRanges[PriceRange] ), "Overlapping Configuration" ), FILTER ( PriceRanges, AND ( PriceRanges[MinPrice] <= Sales[Net Price], PriceRanges[MaxPrice] > Sales[Net Price] ) ) ) RETURN IF ( ISBLANK ( ResultValue ), "Wrong Configuration", ResultValue )
In the paragraph after the code sample the function name ISEMPTY must be replaced with ISBLANK.