Hi, I would need to know more about what data stores each table, wich what I see in the sample I would do a Join between A and D tables, then add table B to the join.
If needed, you can oly join the key fields, and from the joined table you can create combined keys to relate to the facts of tables A, B or D
Table C is not an issue as it ony has one key so it can be also joined or stay as independent table... if joining with the alredy joined table creates duplicates of data, it will be better to keep as independent table.