I can aggregate time using MDX like this:

--member TimeByHour.Agg as 'AGGREGATE({ [TimeByHour].[All TimeByHour].[2005].[July].[19] : [TimeByHour].[All TimeByHour].[2005].[July].[20] })'

{[Measures].[Calls], [Measures].[Is Abandon In Ivr],[Measures].[Abandoned In IVR Rate] , [Measures].[Is Queued], [Measures].[Is Abandon Pre Answered] , [Measures].[Abandoned PreAns Rate] , [Measures].[Total Abandoned Rate] , [Measures].[Is Answered] , [Measures].[Is Answered And Attributed] , [Measures].[Main Sales] , [Measures].[Conv] , [Measures].[AveCallTime], [Measures].[Call Time] , [Measures].[IsDefaultExt] } on columns,
nonemptycrossjoin( [IACD_InboundTypes].[Inbound Number].members, [MediaCampaigns].[CampaignID].members) on rows
from acd_calls
where [TimeByHour].[All TimeByHour].[2005].[July].[19]
--where TimeByHour.Agg
The uncommented out code allows the nonemptycrossjoin to function correctly, but when I switch the code to use the aggregate, the nonemptycrossjoin stops working and returns all rows which is really bad.
Any help for me here?