• If you're just doing a comparison between two data sources that have the same attributes and the only difference is the source, then why not combine both of these attributes into one and add the SourceCode in the dimension not the fact?

    For example:

    DimProducts

    ProductID

    SourceCode

    ProductName

    The SourceCode would be:

    N = No Source

    C = Client Source

    S = System Source

    Then you can remove some of those other Key fields from your Fact and just focus on assigning your new dim like DimProducts back onto the table with the unique identifier like ProductID? This should allow you to query the Fact and filter between Client and System by filtering the dimension like SourceCode = C.

    The only problems in my example is what happens if you have 100,000 products? This gets duplicated per source. If you have 2 sources, then that dimension now has 200,000 records. For each source you add, it will add 100,000 records to that table.