Understanding virtual tables
The concept of virtual tables in DAX is somewhat confusing and misunderstood, and yet is one of the most powerful and important concepts of DAX. When we talk about virtual tables, we are referring to in-memory tables that we build using certain DAX functions or constructors. The data in a virtual table is either derived from the data within the data model or the data that we construct for specific purposes.
Remember, whenever we use a DAX function that results in a table of values, we are creating a virtual table.
At this point, you may ask, so when I use a DAX function to create a calculated table, am I creating a virtual table? The answer is it depends. If you simply use a set of DAX functions that generate data or selectively load data from other tables into a calculated table, the answer is no: you have not created any virtual tables. Nevertheless, suppose you generate or load the data from other tables. In that case, you do some table operations...