Non-additive time dimension
Hi, I have an issue modelling the time dimension for one of our facts (employee counts). The problem is this - when a user says "I want to see the count of employees for a given time period" - what they mean is that they want to see the count of employees as of the last day in that time period. i.e. "June employee counts" means employee counts as of 6/30, "Year 2000" employee counts means as of 12/31/2000.
This is very similar to modelling a "ending balance" inventory type problem in OBIEE.
I've solved this (poorly) in OBIEE by changing the aggregation to use "LAST" for the time dimension and "count(distinct(emplid))" for everything else. This works....but....the performance is horrible. If I ask for employee counts for year 2000, it appears to bring down employee counts for all 365 days in the year, then sorting them by date, then throwing away all except the last date. In other words, it brings back 364 days worth of records and then throws them away. This makes the query perform absolutely terrible. A 2 or 3 second query ends up running for minutes.
Does anyone have a different way to solve this issue?
Thanks,
Scott