If you can't do it with dim structures, perhaps by calculated members and / or named set(s). If you can restate the problem using data in the Adventure Works sample (returning a dataset similar to what you have with a sample query) I might be able to help further ...